Patch:Creature Question

From KeenWiki
Jump to navigation Jump to search

The 'creature question' in Keen 6 is a test given to the player before they may start a new game or load a saved game. It is to ensure that the player has read the game manual and actually knows how to play the game, as well as to prevent piracy, though it becomes tiring quite quickly.

Skip question

These patches skip over the creature question entirely, removing it from the game. Both are included as, for unknown reasons, one of the patches may fail to work in some circumstances.

Keen 6

#Skip creature question 1(Frees $1CC7F - $1CF38)
%patch $1CC7B $B8 $0001W $CB

#Skip creature question 2(Frees $1CC93 - $1CF38)
%patch $1CC88 $90 $90

Question windows setup

Question window

There are two windows involved in the question, the question window itself and the 'wrong answer' window. The question window has a 'sub window' or 'answer box' inside it in which the player may type an answer of a certain length.

While the windows height requires two patches to alter, the width requires only one, as the window is automatically centered horizontally. The creature displayed (and thus the answer required) changes depending on the time via an 'image rota' The second answer is used at midnight, with the next answer being used every hour.

The screen on which the question box is displayed is colored dark grey, actually a 320x200 dark grey box, whose location and color can also be patched. Note that since it starts at 0,0 it is not simple to change the start location (As specially compact code is used.)

The answer box is drawn in the question window and thus its' location is relative to the question window. It is a different color from the window, has a line at the bottom of it (Where the answer is typed) and can accept an answer of a length no greater than a certain value.

Keen 6

#Creature window:
%patch $1CD60 [$001EW] #Width
%patch $1CD46 [$0012W] #Window top
%patch $1CD55 [$0029W] #Window bottom
%patch $1CCBC [$0C]    #Number of answers
%patch $1CD30 [$0012W] #Unknown image rota patch

#Screen background
%patch $1CD15 [$0008W]  #Screen color (Dark grey)
%patch $1CD19 [$00C8W]  #Color height (200)
%patch $1CD1D [$0140W]  #Color width (320)

%patch $1CD75 [$497BW]  #Text read from
%patch $356AB "What is the name of this creature?" $00

#Answer sub-box
%patch $1CDDF [$0064W] #Answer box start (From window left)
%patch $1CDE5 [$0064W] #Answer box end (From window right)
%patch $1CDF6 [$000EW] ##Answer box height
%patch $1CE0D [$000CW] #Draw line at box bottom (height - this) lines thick
%patch $1CE09 [$000FW] #Answer box color
%patch $1CE3E [$0010W] #Max answer length (Chars)

Wrong Answer box

The wrong answer box appears when the answer given is not correct. It is a single window centered both vertically and horizontally (meaning only one variable is needed for width and height.) containing two lines of text at different locations. Pressing any key returns the player to the main menu.

Again the screen background can be patched as with the question window above.

Keen 6

#Sorry, wrong answer window:
%patch $1CEDA [$0005W] #Window height
%patch $1CEDE [$0023W] #Window width

%patch $1CEEF [$499EW] #First line read from
%patch $1CEFB [$49BDW] #Second line read from
%patch $356CE "Sorry, that's not quite right." $00
%patch $356ED "Please check your manual and try again." $00

#Screen background
%patch $1CEC2 [$0008W]  #Screen color (Dark grey)
%patch $1CECD $B0 [$00] #Start of screen color (0,0)
%patch $1CEC6 [$00C8W]  #Color height (200)
%patch $1CECA [$0140W]  #Color width (320)


The list of answers consists of two parts; the first is a series of values used to display each image; the second is a list of the actual answers.

The data list consists of 12 entries of 5 variables. The first is where the text of the answer is read from, the second is unknown and always the same value, the third is the image used, the fourth and fifth are the horizontal and vertical shifts of the image displayed, to make sure it fits in the window nicely.

Thus the first entry, for the Bip uses text at $4927 (= $35657) displaying image $010D (The left facing Bipship) that is moved -2,0 to the center of the window. A modder will likely need to edit most of these values if they do any significant sprite work and still wish to use the question.

The answer list entries must be in capital letters, but the answer the player gives can be in any mix of upper and lower case.

Keen 6

#Creature image data
%patch $1CCD3 [$417EW] #Creature data read from
%patch $34EAE [$4927W] $3748W [$010DW] [$FFFEW] [$0000W] #Bip
              [$492BW] $3748W [$0120W] [$0000W] [$0000W] #Babobba
              [$4933W] $3748W [$018FW] [$FFFEW] [$0000W] #Blorb
              [$4939W] $3748W [$0183W] [$FFFFW] [$0000W] #Gik
              [$493DW] $3748W [$00F6W] [$0000W] [$0000W] #Ceilick
              [$4945W] $3748W [$015FW] [$FFFEW] [$0000W] #Blooglet
              [$494EW] $3748W [$00FEW] [$FFFDW] [$FFFFW] #Blooguard
              [$4958W] $3748W [$013DW] [$FFFFW] [$0000W] #Flect
              [$495EW] $3748W [$0195W] [$FFFEW] [$0000W] #Bobba
              [$4964W] $3748W [$012AW] [$FFFEW] [$0000W] #Nospike
              [$496CW] $3748W [$014FW] [$FFFEW] [$0001W] #Orbatrix
              [$4975W] $3748W [$00EFW] [$FFFEW] [$0000W] #Fleex

#Creature name answers
%patch $35657 "BIP" $00
              "BABOBBA" $00
              "BLORB" $00
              "GIK" $00
              "CEILICK" $00
              "BLOOGLET" $00
              "BLOOGUARD" $00
              "FLECT" $00
              "BOBBA" $00
              "NOSPIKE" $00
              "ORBATRIX" $00
              "FLEEX" $00

See also