SPACEHULK-SP LOG
=================


SpaceHulk-SP was started sometime in August 1996.


<< about 2 months of work here... >>


<< David wrote Mapper and designed Stealer pathing AI >>

<< Rod worked on initial gameplay and basic graphics >>



- 29/9/96
	Flamer now kills on last shot of mag before igniting.

	All SIN OF DAMNATION maps are numbered and safely placed.

	Setup routines in place for all SIN OF DAMNATION missions.

- 1/10/96
	Stealer kills animated.

	Mission-variable blip reinforcement levels added.

	Turn counter added.

	Now possible to win Mission 1:2 (Exterminate).

- 2/10/96
	Doors opened by blips and stealers make dooropen sound.

	Up to two squads can be placed in Mapper (maps updated).

	Sustained fire working correctly.

	Flamer reload button turned off immediately if flamer firing
	takes APs below 4.

	Blips flip if revealed by disappearing flames.

	Now possible to win Mission 1:4 (Cleanse & Burn).

- 4/10/96
	Doors make sound when smashed.

	Stealers have mission-adjustable overwatch fear level.
		  0 = no fear - normal behaviour
		  1 = dodge in rooms - works OK so far
		  2 = less aggressive, dodge whenever possible
		> 2 = hapless water buffalo - do not use !
	Fear level 2 tends to build up large numbers of stealers, but
		they stand around a bit, and are easy flamer targets.

- 5/10/96
	Blip reinforcements now working correctly.
	
- 7/10/96
	Blips use same path AI as stealers.

	Path AI modified, as straight-line (n/s/e/w) directions had
	no penalties for the wrong direction.

	Blips flip over when close to ANY marine, not just the one
	they are targeting.

	Fixed bug which allowed overwatch to fire into entry areas.


- 8/10/96
	Added marine exit points to mapper and game.  Now possible to
	complete Mission 1:5 (Decoy).

	Updated maps for Missions 1:3 and 1:5 with exit points.

	Changed placement order of marines in Mission 1:5, to make them
	select in a logical order.

	Added a check of victory conditions when all marines are dead
	or have left the map.  Possible to win on the final turn.


- 9/10/96
	All SPAWN OF EXECRATION maps drawn and numbered.


- 10/10/96
	Started on HARBINGER OF DESPAIR maps.


- 11/10/96 
	Finished HARBINGER OF DESPAIR maps.


- 13/10/96
	Changed the map editor to allow you to place the CAT and
	some other stuff.

	Changed Drawscrn and DrawTile to draw extra objects.
	There's some quick and dirty code in there to avoid problems
	with current maps.

	Put in a CAT button and the code for CAT transfers.

	Put in a victory condition for 1:3, but the mission is so
	difficult I couldn't get close!

	Added the Sounder OCX to play sounds in the background.

	You can click on a marine and it will select him as the
	current marine (This is sometimes confusing, but it works).

	Added a Set Overwatch sound.


- 15/10/96
	Removed Sounder OCX due to registration problems.

	Relocated CAT button.  Now only appears on screen when required,
	and caption changes to suit situation.

	Improved CAT movement routine.  Now much more mobile,
	and can open doors.

	Fixed bug in 1:3 marine targeting.  If CAT was transferred
	to a new marine, he was not set as the new target.

	Changed placement order of marines in Mission 1:3, to make them
	select in a logical order.

	Fixed 1:3 setup to get sergeant's name on the right marine.


- 17/10/96
	Tested 1:3 marine victory conditions - OK.

	Stealers and Blips which cannot get onto the map will lurk.

	Fixed required ammo count error in Mission 1:4 stealer
	victory conditions.


- 18/10/96
	Minor fixes.


- 21/10/96
	Fixed bug in Path routine which did not select best option.

	Added routine to assign blips which were pre-drawn on the map.


- 22/10/96
	Added target objects.

	Now possible to win/lose Mission 1:6.


- 23/10/96
	Randomised marine placement in Mission 1:2.

	Fixed another bug in blip reinforcements. NOW it works.

	Added One-blip-per-entry flag.

	Now possible to complete Missions 2:2 (Forge Ahead)
	and 2:3 (Regroup).


- 24/10/96
	Merged David's new drawing routines into master copy.
	Selected marine now outlined.

	Fixed bug in drawing routines which did not properly display
	flamer when selected.

	Added Mission 2:4 (Capture).


- 25/10/96
	Fixed Overkill bug.

	Fixed bug which allowed flamer to reload while firing.

	Added Hulk Archive and Toxin Canisters to DrawTile routine.

	Bolters fixed to not fire if no target in clicked square.


- 15/11/96
	Modified Mapper to allow drawing of "Scenery" tiles (walls).

	Modified all SIN OF DAMNATION maps to include walls.


- 16/11/96
	Modified game to display walls from maps.


- 18/11/96
	Allow player placement of Marines before mission.

	Fixed bug caused by wall code if player carried CAT into
	marine exit point.


- 22/11/96
	Modified SPAWN OF EXECRATION maps to include walls.


- 27/11/96
	Allow player to change facing of marines in setup.

	Display yes/no dialog box for parrying.


<< 8-month break >>


- 19/7/97
	Wow! It HAS been a long time!

	Replaced MMC sound routines with sndPlaySound.
	Much better. Especially Overwatch, Flamer and Doors.


- 22/7/97
	Redraw maps for 3:4, 3:5 amd 3:6, which had gone missing.


- 23/7/97
	Finish moving sounds over to API routine.


- 24/7/97
	Improve stealer AI for target-flamer type missions.  Stealers
	will not target flamer if the flamer does not have enough
	ammo to take out a target room.

	Found and fixed a bug in LOS check for left diagonal firing.


- 25/7/97
	Flash message box and show turn number at start of Marine
	movement phase.

	Added sounds to Next Marine and Next Turn buttons.


- 31/7/97
	Changed control panel buttons a bit.

	Added 'About Face' button.


- 1/8/97
	Linked 'About Face' to 'Move And Fire'.
	
	Added About box.  Call it Version 1.0


<< 4 month break >>


- 27/11/97
	Greg Mackness started work on graphics overhaul, planning
	to use 3d-rendered tiles.  About time for a decent look...


- 28/11/97
	Fixed bug in keyboard command routine.  Was not checking that
	requested button was enabled.

	Fix to marine placement - cargo now moves with marine.

	Added program icons to Mapper and main game.


- 1/12/97
	Mapper loads all images at run-time.  So Greg can experiment
	with new graphics.


- 3/12/97
	Main game loads all images at run-time so it is easier to add
	new graphics.

	Added separate bmp files for fire and splatter.


- 4/12/97
	Version 1.1
	
	Added basic mission goal reports to all SIN OF DAMNATION missions
	Displays in message box at start of each turn, and when Mission
	Status button is pressed.
	
	About Face now breaks Overwatch correctly.

	Removed GSstatus menu option and updates.

	Changed to clearer text colours on Launch screen.

	Added program icons to both Launch programs.

	Flash message box when announcing overkill, to get your attention.

	Stop sergeants parrying behind and to the side.


5/12/97
	New floor, wall and door graphics from Greg.  Huge improvement!
	Great 3D look, with nice shadows on the floors.

	Modified game to allow for four sets of door images, rather than
	the previous two.  3D look uses doors for N/S/E/W instead
	of just horizontal and vertical.


7/12/97
	Put code for new doors into Mapper.

	Updated map for mission 2:1 while testing Mapper.

	Added about box to Mapper.  Call it Version 1.1

	Added Greg to game credits.  Call it Version 2.0 in honour of
	new look.

	Updated maps for missions 2:2 and 2:3

	Added Mission 3:1 (Seize And Secure)

	Updated game to Version 2.01

	Updated map for 3:1


8/12/97

	Added mission variable StopBlipsTurn which stops Genestealer
	reinforcements after a given number of turns.

	Added Mission 3:2 (Menace), and updated map.

	Added mission goal descriptions for all missions

	Version 2.02 - sent to David and Greg

	Updated	maps for 3:3, 3:4 and 3:5

	Grabbed 3 required sound API lines from Win32api.txt and 
	ditched the rest.

	Switched to Visual Basic 5.  Stealer phase speed increased, but
	screen redraw seems flickery - especially after bolter fired.

	About Face now reveals blips.

	Did a bit of screen redraw optimisation.  Avoid using Drawscrn
	wherever possible.  Use DrawTile and SetButtons.  Tested a fair
	bit, and the buttons appear to be updating correctly.  Screen
	update is quite a bit better now.

	Version 2.03.


9/12/97
	Fixed that recurring bug which crashes game when CAT is taken
	into the exit point.  (Drawscrn)

	CAT button was not counting APs correctly.

	Version 2.04.


10/12/97
	If a marine has only one stealer in his arc of fire, he will
	automatically fire at that stealer when you press the "Fire
	Bolter" button.  Works with move and fire OK.
	Overkill works similarly - if a marine gets overkill, and
	there is one stealer in a valid location, that stealer is
	killed.  This also works OK if a blip is flipped due to the
	first kill.  Doors are not currently included as targets, and
	may need to be - we'll see.

	Slightly streamlined the code where stealers are killed.

	Version 2.05.

	I am handing over the source to Greg for interface mods.


<< Well, Greg vanished about this time >>



<< 4 years & 9 months later..>>


20/9/02

	Changed to windowed mode rather than fullscreen.

	Fixed Stealer movement pause.  Much better now.


24/9/02 
       
        Added code for computer console in mission 2:1.

        Added constants for facing.

        Split out the code that sets up the standard squad weapons
        from the mission setup functions.


25/9/02
	CAT is no longer damaged by being dropped.  The 2nd editon rules
	are a bit vague about this.  

	Centre screen on CAT when it moves.  Slow down CAT movement
	to make it visible.

	More info shown between turns for all missions.

	Fixed bug in close assault where a tie after a parry would
	kill the marine.


25/9/02 
        Added code for mission 2:5. This includes shooting the
        damping controls and limiting the stealer reinforcement
        numbers depending on the number of open bulkheads.


26/09/02

	Fixed some bulkhead stuff. 

	Added target to map for mission 3:3.
	Can use the same code as 2:1 later.

	Launch program now has menus for all campaigns.
	Removed Launch2  - not required.

	Changed launch.bmp to a .jpg to save space.

	Mission 2:5 - Sound effect when Damping controls are hit.
	Controls explode on second hit.

	Fixed minor bug where move-and-fire flag was not cleared if
	the shot was invalid.

	Mission 2:6 - Check victory conditions as last marine exits.

	Added kill count on info display for missions that need it.

	Flames display over door graphics.  Looks better now when
	flamer shoots into broken doorway.

	Bulkheads are displayed when closed.

	Playtested missions 1:1 to 3:2.  Looking good.
	Missions 2:6 and 3:1 can be tricky!

	Fixed bug in new marine setup routine which was causing
	flamers to be targeted in all missions.  Poor bastards.
	Also modifed so flamers get no reloads in mission 1:6.

	Increased view area from 16x16 to 23x22. 
	Changed X,Y and midpoint constants. No other code required!

	Added sound effect to end of mission 2:1 (cargo doors opening).

	Merged code for target button in 2:1 and 3:3 into CAT button
	setting code.
	Commented out Set_Cargo_button routine.

	Adjusted some sound timings.


27/09/02

	Tested new CAT button code for 2:1 successfully.

	Setup and victory conditions for mission 3:3 in place.
	Removed hard-coded blips from 3:3 map.
	Mission 3:3 now playable.

	Added lots of new sound events.  Also more sound variety.

	Version 2.10


1/10/02

	Tested exploding target in mission 2:5

	Fixed display of variable entry points in mission 2:6



<< 3 month break >>



4/1/03

	Exploding marines. About time, too.

	Bolter Flames when firing.

	Version 2.11


6/1/03

	Started work on movement animation.  Created transition images
	for Bolter Marine forward/back move.

	Started mapping missions for Sword of Halcyon campaign.


<< 5 month break >>

<< Okay, this time it's getting released.  This month for sure >>


5/6/03

	Moved all images into imagelists.  This removes about 150 image
	controls we were using to store image bits in.

	Version 2.12

	Will now begin overhaul of graphics engine...


6/6/03

	Main map display now a single PictureBox.
	Ditched the 23x22 array	of images (that's 505 less controls!)
	All map tiles and pieces are drawn direct to the PictureBox's
	device context.  Mouseclicks are located by x,y coordinate.
	Should have done it this way all along.

	Started work on animation - blips now have 2 frames, which
	alternate every time a blip is drawn.

	Adjusted timings and sounds, especially in close combat.

	Added a "clear" functon to the HulkMessage control.
	Trying to keep the messages from getting messy, and
	removing old messages.

	Fixed "About Face" timing.  Now it looks smoother.

	Version 2.13


7/6/03

	Vertical bulkheads were not displaying correctly when closed.
	Fixed that.

	Better sounds for bolter jams, sword attacks and Stealer deaths.

	Marines with jammed bolters will attempt to attack on overwatch
	(click, click, click...)
	This might get annoying.  Might take it out again.

	Marines, Stealers and Blips now move smoothly from one location to the next.

	Blips have 6 frames of animation, and animate while they are moving,
	but the frames I've drawn look crap.


9/6/03

	Added animation timer for blips.  Blips now 'flash' constantly.
	Only 3 frames at the moment, and slow timer interval.
	Faster interval interfered with player controls too much.
	Is there a way to run this in another thread?

	Drew slightly better frames for blips.

	Walking animation for Stealers. Will need new pics, as the animation is
	hard to spot at the moment, but it's working well.

	Version 2.14


10/6/03

	Animated Stealer attacks.

	Changed Blips to only animate while moving.  Maybe look at doing
	background updates later.

	Stealers use doors as cover.

	Changed some Overwatch fear levels, trying to tune stealers a bit.

	Version 2.15


13/6/03

	Code for Missions 3:4 and 3:5 - both playable now

	Fixed timing of door animation.


16/6/03

	Forced Lurking. 

	Sounds added to Launch menus.

	Version 2.16


19/6/03

	Mission 3:6 now playable.  It's a good one.

	Big flamer hits!  Flames are bigger than the the map square.
	Looks good when flamer hits merge together.

	Version 2.17


20/6/03

	Airpump graphics for 3:6

	Console graphics for 3:4

	Doors and DampingControls added to autofire targets

	If autofire sees multiple targets, targets are highlighted on map
	to allow manual target choice.  Nice.

	Radar shows bounding box of current view.

	Disable all buttons during stealer turn.  Should have done this ages ago.

	Disable Bolter button while calculating hits.  If pressed too quickly,
	can cause really wierd things to happen, like bullets going round corners.


21/6/03

	Improved stealer pathing a bit.  They fill up rooms and	intersections
	a bit better now.  They seem a bit hyperactive sometimes though.

	Entry point choice in a couple of SIN OF DAMNATION maps was
	modified so that blips are spread around a bit more.
	1:4 is definitely better.

	Cleaned up all invalid button pressing situations (I think)

	Doors now added to auto overkill targets

	Auto Overkill now works like autofire - if there are multiple possible
	targets for the overkill shot, they will be displayed highlighted.
	Not tested yet, but I saw an instance of a door being auto-overkilled.

	Better blip animation.

	Current marine highlighted by overlaid circle.  Removed specific
	marine images for "current" marine.

	Cleaned up some stuff inolving redrawing of overlaid "big" images.

	Version 2.18


24/6/03
	Mission briefings before start of mission.


25/6/03
	Finished all the mission briefings.

	Fixed default facing of Squad 1 in 3:3

	View centres on map during Stealer turn if nobody is killing anybody else.
	Recentres on active Marine at end of Stealer phase.

	Special lurking rule for mission 3:3 added - no forced lurking on turn 1

	Stopped opening and closing doors erasing part of the "selected" overlay image.

	Version 2.19

26/6/03
	Some tweaks to Blip movement, to stop them bunching up.

	Some tweaks to Stealer movement, to stop them getting mowed down by overwatch.

	Cleaned up blip placement code.

	Cleaned up Setup_B code.  See FinishSetup() instead.

27/6/03

	Changed Sleep() to use API Sleep routine.

	Removed extra baggage from API Declares

	Changed blip sound

	Added GPL and copyright stuff

	Set name to SpaceHulk-SP   ("Single Player")

	Fixed marine weapon assignments in 2:6

	Constrain screen centering to avoid mostly-black views

	Version 0.2.3  - First Release

6/7/03
	
	More detailed scanner display

	Added Jam & Overwatch indicators to marines on the main display

	Mouse movement:
	- Click to move/open doors.
	- Right-click to turn.
	- Shift-click to Move-and-Fire
	- Shift-right-click to Turn-and-Fire
	- Click on current marine to fire weapon
	- Right-click on current marine to set overwatch/clear jam
	- Click on non-current marine to select

8/7/03

	Moved controls to bottom of screen and improved layout
	
	Removed (hid) movement controls.  Not required now that mouse is working.

	Pop-up radar display to save space.  Right-click to raise/lower.

	Version 0.2.4 


10/7/03

	Clear overwatch indicator on map when marine fires at mutiple targets,
	breaking overwatch.

	Arrow keys scroll map display

	Drag with left mouse button to scroll map display

	Stealers not afraid of jammed bolters

	Empty flamers show "Jammed" indicator on map

	Controls Help (F1)

	Can recall mission briefing during mission (F2)

	Added more keyboard controls

	Fixed Marine Placement phase to work with new mouse controls

	Fixed 3:3 special lurking rule (no forced lurking on turn 1)

	Removed old control functions no longer used

	Version 0.2.5


15/7/03

	Added cryo chamber targets to mapper.

	Mission 3:5 now has basic cryo chamber images.
	Bolters target and damage cryo chambers correctly.

	Problem with drag-scroll of map (from 0.2.5) causing marines to move
	seems to be fixed.  Might still miss the odd click though.

	Selecting a Marine with the mouse will not cause the screen to
	re-centre automatically.  Selecting "Next Marine" with the keyboard
	will re-centre if the new Marine was off-screen.

	Radar display pops up during Stealer movement phase, if it was reduced.

	Added some extra smarts to the Stealers in 3:5
	
	Changed HulkMessageBox so it will compile in VB6.

	Version 0.2.6


26/7/03

        Fixed 773603 - Toxins in Mission 1:6

        Fixed 776497 - Open map problem

        Fixed 776500 - Game re-initialisation problem

        Fixed 776502 - Mission 1:2 startup problem

        Added code so you can use the "Cancel" button on the File Open
        dialog.

        Version 0.2.7


31/7/03

	Fixed 778462 - Mission 1:6 toxins on deployment

	RFE   779260 - Zoom to moving stealer or blip


4/8/03

	Stealers a bit smarter in mission 2:5 (Sabotage)

	Version 0.2.8


10/8/03

	Clarified mission objective in 2:6 (Race Against Time)


23/8/03

	Fixed 792928 - Keyboard movement commands while firing flamer.


27/8/03

	Added option to swap between heavy flamer and assault cannon.

	Fixed display of Marine exit point on radar.  

	Better redraw of entry points on radar when blips arrive.

	Fixed 794807 - Flames at entry point should force blips to lurk.

	Added a hiss sound to the stealer move.

1/9/03

	Version 1.0.0

	(and there were bugs straight away.  Figures.)

	Fixed 798509 - Overwatch not always firing

	Fixed 798505 - Could move-and-fire with jammed bolter

	Version 1.0.1

17/9/03

	Fixed 807085 - Punch was allowed even when out of CPs

	Version 1.0.2

18/9/03

	Fixed all the typos in the mission briefings.

20/9/03
	
	Added campaign background link to launch screen.

	Changed close buttons on html popups to clickable labels.

	Less Windowsy colours for scrollbars in html pages.

27/10/03

	Fixed 827624 - Toxins could be duplicated during marine setup
	in mission 3:6.

	Fixed 830587 - AI problem in 1:2 - marines could "hide" in
	a certain room, and stealers would not attack.

	Version 1.0.3

7/2/04

	Fixed 889983 - Marines could not open doors in their front 3 squares
	unless they were facing the same direction as the door.
	This was an error in our interpretation of the rules.

	Corrected Clear Jam costs in readme file.

9/2/04

	Fixed 893341 - Picking up Toxin Canister should break Overwatch.

	Partly Fixed 893342 - No longer possible to deliberately drop multiple Toxins 
	in same square.  Can still happen if carrying Marine gets killed though.

	Fixed a small bug in BreakOverwatch() that I don't think was a problem for anyone.

16/2/04

	Count of escaped marines is updated immediately, not at end of turn.

	Mission status shown each time a marine escapes, instead of only
	at the end of each turn.

20/2/04

	RFE   891497 - Added After Action report to show mission result and stats.

	Version 1.0.4

21/2/04
	
	Fixed 901456 - Toxin changes had made it impossible to drop the Toxins

	Changes were made to the way all marine cargo is handled by the display routines,
	mainly due to the bug above.

	Fixed a bug in mouse control that was allowing Toxin carriers to 
	move-and-fire, and sometimes open doors.

	Version 1.0.5

22/2/04

	Fixed 901666 - After Action report did not appear if Mission 3:2 was completed.

	RFE   836175 - Remains of dead Marines are left on the map.

	Change display priorities so dead marines don't cover flamer markers.

	Version 1.0.6

23/2/04

	Fixed 902368 - Dropped CAT duplicated when picked up.

	Stopped Stealers closing doors on CAT and other target objects.

	RFE   785914 - Added Undo button.  Will undo last action.
        Only works if last action did not reveal a blip or fire a weapon.
	This means you can undo reloads, overwatch, unjams, pickups, drops and any
	move that did not reveal a blip.
	You cannot undo opening or closing of doors, because I am too lazy.

	Slowed the CAT movement down a bit.

	Version 1.0.7

26/3/04

	Fixed 906660 - Stealer opened sealed entry.

	Fixed 921501 - Stealer freezes next to marine.

	RFE 923743 - Added a "blips per turn" multiplier.

	Version 1.0.8

31/3/04

	Fixed bug in blips modifier - default was using 2x

	Added more safety checks to blip discard counting, to allow for the 
	large numbers of blips on the maps.
	This should fix Bug 924793.  We will see...

	Fixed 924792 - Could place Marines on closed doors

	Fixed 925143 - Could not choose which door would open if there were 
	two doors available.  Opening (by clicking on the door) is now OK.
	NOTE:
	Opening using the Door Button will still choose one door only.
	Closing doors has the same limitation, since the Door Button is the
	only way to close the doors.  You still have to close doors from a 
	non-ambiguous position.
	
	Version 1.0.9


======================================================================

TODO:

	Mission 1:2 - Doesn't go into marine placement mode because it
	has very different placement requirements from other missions.
	This means you cannot select the Assault Cannon at the beginning.
	Oh well, you'll just have to make do with the Flamer.


	Mission 1:2 - blips may not use any entry point within 6 squares
	of a marine.  Better put that in.    Cannot lurk in this mission.

	Voluntary lurking and limited lurking.

	Multiple path code.
	This would require a full rewrite of pathing.  Bleh.

	DFM to be redefined as the number of path squares.
	This would slow the stealer phase considerably, as it would
	involve computing the full path twice for each stealer/blip.

	Multiple blips in an entry area work OK, but if they all
	flip over and create lots of stealers, some stealers are not
	next to the entry area, and so will not move.

	Modify stealers' movement order to try to move as many as
	possible.  Currently, if a stealer has tried once, but
	could not move, it will not try again this turn.
	This causes problems when specific targeting is turned on.

MISSION STATUS:

	1:1 - Suicide Mission	- OK
	1:2 - Exterminate	- OK
	1:3 - Rescue		- OK
	1:4 - Cleanse and Burn	- OK
	1:5 - Decoy		- OK
	1:6 - Defend		- OK-ish (see bug, above)

	2:1 - Break Through	- OK
	2:2 - Forge Ahead	- OK
	2:3 - Regroup		- OK
	2:4 - Capture		- OK
	2:5 - Sabotage		- OK
	2:6 - Race Against Time	- OK

	3:1 - Seize and Secure	- OK
	3:2 - Menace		- OK
	3:3 - Data Download	- OK
	3:4 - Isolate		- OK
	3:5 - Annihilate	- OK, cryo damage code may have bugs.
	3:6 - Retribution	- OK

	4:1 - Impact		- mapped
	4:2 - Salvage the Bridge	- mapped
	4:3 - Shut Down		- mapped
	4:4 - Purify		- mapped
	4:5 - Inner Sanctum	- 

======================================================================
