1 KEEN 4 RECREATION TIMELINE:
\r
2 ---------------------------
\r
6 - started implementation
\r
7 - started & finished CK_MAIN.C (except for variables)
\r
8 - started & finished CK_DEMO.C (except for variables and fancy intro stuff)
\r
9 - started CK_GAME.C, CK_PLAY.C, CK_TEXT.C, CK_STATE.C
\r
14 - finished CK_GAME.C (except for variables)
\r
15 - finished CK_PLAY.C (except for variables)
\r
16 - finished CK_TEXT.C (except for variables)
\r
17 - finished CK_STATE.C (except for variables)
\r
23 - finished CK_KEEN.C (except for variables)
\r
24 - started & finished CK_KEEN2.C (except for variables)
\r
25 - started & finished K4_LEVEL.C (except for variables)
\r
26 - started K4_ACT1.C, K4_ACT2.C
\r
31 - finished K4_ACT1.C (except for variables)
\r
32 - finished K4_ACT2.C (except for variables)
\r
33 - started & finished K4_ACT3.C (except for variables)
\r
34 - added crawl text in K4_LEVEL.C
\r
35 - added states in K4_ACT1.C
\r
40 - added states in K4_LEVEL.C
\r
41 - added states and initialized variables in CK_KEEN.C
\r
42 - added states and initialized variables in CK_KEEN2.C
\r
43 - added states in K4_ACT2.C
\r
44 - added states in K4_ACT3.C
\r
49 - added ID Engine (taken from Catacomb 3D)
\r
50 - started creating header files to put it all together
\r
51 - fixed tons of typos...
\r
56 - finished header files
\r
57 - fixed remaining typos & compiler errors
\r
58 - code compiles, but linking fails because of missing data that needs to be
\r
59 included in EXE (AUDIOHED, AUDIODICT, EGAHEAD, EGADICT, MAPHEAD)
\r
60 - first builds - lots of memory(?) issues, quitting freezes DOSBox
\r
61 - fixed menu colors in ID_US_2.C
\r
62 - renamed "SKULL 'N' BONES" to "PADDLE WAR" (still need to fix speed issues in pong)
\r
63 - fixed error in GFXINFO (wrong number of tile16's) now help texts and quitting work
\r
64 - fixed memory issue by increasing number of memory block to 1200 (Cat3D used only 600)
\r
65 - first level loads now, but RF_Refresh() locks up/takes forever
\r
70 - modified VW_ClearVideo to match Keen4 behavior (also adding in the bug)
\r
71 - modified USL_TearDownCtlPanel to use VW_ClearVideo instead of VW_Bar
\r
72 - fixed error in DrawCacheBox -> animation plays correctly now
\r
73 (but RF_Refresh still locks up/takes forever)
\r
74 - fixed error in ID_CA.H (Keen4 uses tile info order SPEED, ANIM, NORTHWALL, ...)
\r
75 -> RF_Refresh doesn't lock up anymore
\r
76 - fixed error in GameLoop -> can now enter sub-levels from world map
\r
77 - fixed error in KeenAirReact -> can now land
\r
78 - fixed bug in score box (used ammo number for lives)
\r
79 - status freezes the game
\r
80 - fixed signed/unsigned division bug in KeenStandThink
\r
81 - fixed spawn position for slugstain
\r
82 - fixed error in PlatformThink (platforms got stuck at the top/right end of the path)
\r
83 - added Keen4 Highscore defaults
\r
84 - fixed error in StatusWindow -> status window doesn't cause an endless loop anymore
\r
85 - fixed error in DrawStatus (bad positions for a few things)
\r
86 - fixed bug in CheckGrabPole -> can climb on poles now
\r
87 - fixed error in KeenAirReact -> grab edge with correct y position
\r
88 - fixed error in KeenClimbEdge1Think -> climbing left works correctly now
\r
89 - fixed bugs in SpawnFlag (darn typecasts...)
\r
90 - fixed error in ScrollScreenWorld
\r
91 - fixed error in KeenPoleTihink -> won't fall off when pressing left/right
\r
96 - fixed lindsey floating bug (typecasts)
\r
97 - fixed mimrock walking
\r
98 - fixed arachnut contact
\r
99 - fixed riding the foot
\r
100 - fixed thundercloud not randomly turning towards player
\r
101 - fixed missing VW_UpdateScreen in LindseyDialog
\r
102 - fixed KeenAirReact
\r
104 - fixed controls for scuba keen
\r
109 - fixed Sprite, Dopefish and Schoolfish
\r
110 - seems fully playable now...
\r
115 - renamed PlayDemo to RunDemo, since that's the name that is used in the Keen 4 Demo
\r
116 - fixed Dopefish contact code (used to check 'ob' instead of 'hit' for a keenobj)
\r
121 - fixed bug in PatchWorldMap (info layer value wasn't set to 0 for completed levels)
\r
126 - replaced all sprite numbers with enum names
\r
127 - fixed error in WormouthLookLeftThink -> changes state to s_wormouth now
\r
132 - replaced some more numbers with enum names
\r
137 - fixed error in MergeTile16M
\r
142 - fixed bug in WormouthThink (used PIXGLOBAL instead of TILEGLOBAL for xdist)
\r
147 - actually moved all far strings into far memory
\r
152 - fixed a minor error in PageLayout (skip anything <= space character, not just space char)
\r
157 - fixed a bug in control panel (had to adjust indices because options menu was added back in)
\r
162 - started implementation of Keen 5 stuff (K5_*.C)
\r
167 - started implementation of Keen 6 stuff (K6_*.C)
\r
172 - finished implementation of Keen 5 & 6 stuff
\r
177 - reorganized KEEN4 project to add support for Keen 5 & 6 without too much redunancy
\r
178 - added code specific to Keen 5 and Keen 6 to the main codebase (CK_*.C)
\r
179 - excluded code specific to Keen 4 from the other builds (lots of #if & #ifdef)
\r
180 - Keen 4 still compiles fine, 5 & 6 still need some header files
\r
185 - created header files for Keen 5 and Keen 6
\r
186 - all 3 projects compile, but still some bugfixing to do and features to add:
\r
187 - refresh manager constants must be adjusted
\r
188 - copy protection for Keen 6 isn't implemented
\r
189 - sounds for animated tiles (Keen 6) aren't implemented
\r
190 - fixed a few bugs, first couple of levels in Keen 6 are playable now
\r
195 - adjusted refresh manager constants (now Keen 5 levels are playable, too)
\r
196 - adjusted position of the "PRESS A KEY" graphic in the status window
\r
197 (position in Keen 4 differs from 5 & 6 because of the wetsuit box)
\r
198 - added RF_MaskBlockWhite and a few other things
\r
199 - studied Terminator-related code in depth, trying to understand it all and
\r
200 find names for all those variables
\r
205 - finally found and fixed a bug with the turret shots in Keen 5
\r
206 - fixed wrong pole shooting sprites (left and right sprites were swapped)
\r
207 - fixed demo-breaking bugs in Spindred and RoboRed (Keen 5)
\r
208 - fixed worldmap elevator door code (Keen 5)
\r
209 - fixed worldmap rope and rocket bugs (Keen 6)
\r
210 - still a demo-breaking bug somewhere (Nospike / Bloogdome, Keen 6 obviously)
\r
211 - fixed pole check for shikadi pole sparks
\r
216 - FUCLING FINALLY found and fixed the demo-breaking bug in Keen 6
\r
217 (was in NospikeRunThink)
\r
218 - fixed bug in Shikadi Master spawn (y offset used tile units instead of pixels)
\r
219 - started implementation of the Terminator intro and the Star Wars text crawl
\r
224 - finished implementation of the Terminator and Star Wars stuff, but now the
\r
225 compiler crashes...
\r
226 - found and fixed the issue that crashed the compiler
\r
227 - fixed all bugs in the Staw Wars text crawl
\r
228 - fixed all bugs in the Terminator intro
\r
232 - added tile animation sounds for Keen 6
\r
237 - implemented Keen 4-6 version of VW_SetScreen (in _ID_VW_AE.ASM) and my
\r
238 customized version of the routine (in ID_VW_AE.ASM). swap the files if you
\r
239 want to use the original code
\r
240 - added support for the NOPAN parameter
\r
241 - added US_CheckArg in ID_US_1.C
\r
242 - added Quiet AdLib mode
\r
243 - added Gravis Gamepad support
\r
248 - fixed CheckHighScore bug (each episode uses a different map number)
\r
249 - fixed shockshund bugs (blast direction, stun jump)
\r
254 - fixed EagleWalkThink (condition for starting to fly, Keen 4 obviously)
\r
255 - fixed tile-based item stealing for TreasureEater (Keen 4)
\r
256 - fixed force field toggling (Keen 6)
\r
261 - fixed bug in EagleFlyReact (Keen 4)
\r
262 - changed ConfigVersion in ID_US_1.C for full compatibility with version 1.4
\r
263 (saved games are still incompatible, though)
\r
268 - modified PaddleWar code to match the code from Keen 4-6
\r
273 - moved minimum memory requirement into the episode headers
\r
274 (Keen 4 & 5 need 310,000 bytes, Keen 6 needs 300,000 bytes)
\r
275 - added missing code in SD_Default() (also marked the bug in there)
\r
280 - fixed a minor issue in ID_RF.C related to the tile animation sounds in Keen 6
\r
285 - fixed a bug in Bipship movement code (Keen 6)
\r
286 - modified sound engine to avoid SDL_Delay entirely and read port 0x388 instead
\r
287 (which is exactly how version 1.4 and above work)
\r
292 - fixed bug in Ampton walk code
\r
297 - added the title screen in DemoLoop() (after high scores)
\r
298 - replaced some chunk numbers with their enum names in K4_LEVEL.C (smoke sprites)
\r
303 - SpawnEnemyShot now makes the object removable (KEEN5)
\r
308 - fixed bug in PageLayout (negative top row index)
\r
313 - fixed bug in JanitorDialog (bad picture position for KEENMADPIC)
\r
316 2021-06-06 to 2021-06-23:
\r
318 - renamed things in Keen 4 & 5 to what is believed to be the original naming
\r
319 scheme - Keen 6 stuff is still guesswork
\r
320 - adapted code to make it compile with Borland C++ 2.0 and 3.0
\r
321 - adjusted compiler settings and code to recreate the original executables as
\r
322 closely as possible (for automated comparison and verification)
\r
323 - found and fixed a few bugs along the way
\r
328 - tracked down and fixed any remaining differences
\r
329 - compiling (with source debugging enabled) and then compressing the EXE files
\r
330 with LZEXE Version 0.91 creates EXACTLY the same files as the original v1.4
\r
331 releases shipped with
\r
332 - Mission accomplished, I guess...
\r
337 - first public release of this source code
\r
342 - Keen 6 EGA v1.5 can now be recreated with this source code thanks to NY00123
\r
343 - added some more comments to the source code, mostly explaining what the temp
\r
344 variables are used for in each actor's code
\r
345 - changed the function names in the Keen 6 code from ...Think, ...Contact and
\r
346 ...React to T_..., C_... and R_... for more consistency with the Keen 4 and
\r
347 Keen 5 code, also changed some state and sprite names for more consistency
\r
350 - all CGA executables of versions 1.4 and 1.5 can now be recreated with this
\r
352 - added a few more comments
\r