History of the Midnight Engine

Version 0.0016 21/05/00

Library: libraryhw.dll
1.  Fixed potential crash bugs in the windows OnActiveApp system. There
    was a potential to be called prior to initialisation which would
break the initialisation.
2.  Fixed a potential crash bug in the windows OnPaint system. Some
    machines maybe sending a paint message during the DirectX
    initialisation but before it is finished.

Scenario: default.mxs
3.  Added default scenario

Scenario: lom_spanish.mxs
4.  Added lom_spanish scenario

Launcher: MidnightEngine.exe
5.  Finalised the scenario and frontend loading code. This has also
    affected all other modules.

Frontend: default frontend.dll
6.  Fixed compass being pressed error. ie: It was not showing the
    compass going down.

Engine: MidnightX.dll
7.  Moved all configurable variables into the main database. 

Version 0.0015 05/03/00

Engine: MidnightX.dll
1.  Fixed character not losing his horse.
2.  Fixed COMMA in guidance call.
3.  Seek messages now implemented fully. A list of messages can be used
    to give general information.
4.  Strongholds could reduce to zero when the winning army was already
    guarding the stronghold. This is now fixed.
5.  Game now exits to the launcher after game over message.
6.  Added a missing army count check that may reduce the battle numbers.
7.  Added character memories. This is stage one, as it only records info
    needed by LOM.

Frontend: default frontend.dll
8.  Moved "ahead" and "here" text into the database.
9.  Fixed TOOLTIP being left behind after scrolling map with cursor keys.

Version 0.0014 16/02/00

Library: libraryhw.dll
1.  Fixed a deinitialisation problem which caused a crash when exiting 
    using the windows close icon.
2.  Added some extra clipping for rectangle fills. This stops the pass 
    through to the windows FILL from creating brushes for now reason.

Engine: MidnightX.dll
3.  Fixed an ordering error on the night message for "days have".
4.  Armies occupying one of doomdark's owned strongholds now displays as 
    being loyal to character.

Frontend: default frontend.dll
5.  Fixed crash bug when displaying more than 7 characters at a location
6.  Removed debug information from AUTOMAP
7.  Hopefully sped up the zoomed AUTOMAP tooltips.

Version 0.0013 10/02/00

Engine: MidnightX.dll
1.  Cmd_Fight describes with what object the wolves etc, were slain with.
2.  More text moved into the DATABASE
3.  Fixed bug in CMap::MakeAreaVisible, now considers locations correctly
    for AUTOMAP.
4.  Increased viewing radius for CMap::MakeAreaVisible from 3 to 4. This
    now emulates characters visible area more consistently in AUTOMAP.
5.  Fixed reporting of the ICE FEAR and COURAGE in CTextprocessor. This is
    now calculated as required instead cached per character. 
    This was showing inconsistencies on the think screens.
6.  CTextProcessor::DescribeStronhold no longer crashes when a stronghold
    is recaptured by the FREE
7.  Strongholds owned by DOOMDARK at the beginning of the game can now be 
    occupied by the lords capturing the stronghold
8.  Area "The Moon" and "Moon" are now destinct.
9.  Night description now describes battle areas with the correct prefix.
10. Some Ownership of keeps tidied up.
11. Regiments with command OD_GOTO now correctly only move if there is 
    something interesting at their desired location.
    This could be seen with regiments on the plains of despair clumping 
    into the keeps and citadels instead of guarding the plains.
12. Tidied up regiments routing code.

Library: libraryhw.dll
13. Fixed CGraphicsX::Blit8A from not clipping the alpha the same as the 
    image. Noticable on the mouse pointer at the top of the window.

Frontend: default frontend.dll
14. new graphics for the Moon phases
15. additional graphical updates
16. ID_THINK is now correctly available during waiting modes
17. ID_WAITMODE is now tooltipped correctly
18. Right mouse click defaults to returning the LOOK screen
19. Now handles SHIFT,CTRL,ALT modifiers for the accelerators. this stops 
    things like ALT+ESCAPE being interpreted as ESCAPE.
    However I cant stop windows taking system shortcuts like ALT+TAB, 
    ALT+ESCAPE, CTRL+ESCAPE at the moment so windows gets preference on 
20. Wide characters like FARFLAME no longer overlaps with the character to 
    the right of them. This can mean one less character being displayed.
21. Fixed some scrolling issues in the AUTOMAP.
22. Fixed a mouse display problem after scrolling.
23. Fixed mouse up from sometimes selecting a character on the AUTOMAP 
    scroll gadgets
24. Characters now show up on the AUTOMAP even when dead or hidden.
25. Free and Doomdarks armies icons are now distinguishable on the 
26. After selecting dawn, the game now returns to the screen active before 
    pressing night - if it can.

Version 0.0012 06/01/00

Frontend: default frontend.dll
1.  Fixed SAVEGAME. After typing and pressing return, the game is saved.
2.  Added MOVE command on mouse pointer at the top of look panel
3.  Fixed THINK_CHECK_PLACE from crashing when describing armies here or 
4.  Fixed ID_CHECK_PLACE from keyboard allowing check place when not 
5.  AUTOMAP adheres to the correct rules for showing armies at terrains.
6.  A few graphic updates.
7.  Fixed description of battle when characters lose no soldiers.
8.  THINK_CHECK_ARMY no longer describes an army of none riders and 
    warriors at strongholds
9.  THINK_CHECK_PLACE no longer crashes after being recaptured by the 
10. The moon is now placed correctly on the panoramic.
11. New 1600 pixel wide sky images to make correct panoramic.

Library: libraryhw.dll
12. Audio system currently disabled until I use audio. This is a
    temporary fix for WinAMP.
13. Added DIRECTX version check.

Engine: MidnightX.dll
14. Double full stop removed from guidance text.
15. A character with no army can now win a battle.
16. The correct number of new soldiers are placed in a stronghold after it 
    is captured.
17. Characters and their armies now lose energy during a battle
18. Battles are now calculated correctly - I Think!

Version 0.0011 17/11/99

Frontend: default frontend.dll
1.  Added keyboard shortcuts for THINK_PERSON, THINK_ARMY, THINK_PLACE, 
2.  SEEK Icon returns to LOOK from THINK_SEEK screen
3.  THINK now automatically shows any object that can be seen or needs 
4.  THINK_PERSON now shows a different message for characters that have 
    not been recruited. Fixes courage and icefear descriptions
5.  LOAD AND SAVE screen now shows a title for clarity!
6.  Tidied up DrawTextRectWrap, All spaces are removed between words, and 
    thus formatting for spaces and end of sentences is now
    handled by the function. Looks tidier.
7.  Tooltips now clear correctly when the panel changes.
8.  Added multi sky images
9.  Added the Moon - this is positional dependent on time and phase, also 
    lightness of night graphics is affected by size of moon
10. Various Graphics updates
11. AUTOMAP now does a better job of keeping its position for a zoomout 
    after a zoomin
12. AUTOMAP doesn't fill in the border as soon as one piece is visible. 
    This is due to new map format.
13. AUTOMAP now does line of sight calculation for locations surrounding 
    the player.
14. AUTOMAP is now only as big as the maximum area visible. disguising the 
    real size of the map.
15. AUTOMAP now has repeat on the map scroll icons
16. Sky backgrounds are converted down to 256 colours in HICOLOR modes. 
    This helps remove banding problems caused by insufficient
    hues of a color.
17. Characters can now have no shield
18. CURSOR keys map to left/right/up/down icons on all panels. These 
    override any other mappings for these keys.

Engine: MidnightX.dll
19. Stop character from entering a battle when they are already in one
20. Stop character from entering a battle when hidden
21. Added CanSee flag to objects - this is for objects that can be seen 
    without seeking ie:horses, icetrolls, wolves, skulkrin, dragons
22. Added CCharacter::LocationObject which returns what object is at the 
    characters location that can be seen
23. Increased the size of the map by 2 on each axis. This is to include 
    the BORDER into the actual map rather than assuming the border.
    This may seem excessive and in most cases is, but it allows for the 
    border to be made up of other blocking terrains other than frozen 
24. Added CCharacter::EnterLocation and CMap::MakeAreaVisible for 
    location line-of-sight calculations

Library: libraryhw.dll
25. Fixed crash when FULLSCREEN is minimized and then maximized.
26. Added ability to load a JPG that is then dithered and quantized down 
    to a 256 colour image

Launcher: MidnightEngine.exe
27. Fixed video modes being passed incorrectly in full screen mode.
28. Default to fullscreen TRUECOLOR if the users desktop is HICOLOR or 256 
    colour. To try and pursuade them to use TRUECOLOR

Version 0.0010 28/11/99

Frontend: default frontend.dll
1.  Stopped keyboard command from issuing game commands when not allowed
2.  Fixed display of terrains or armies in the think panel
3.  Added display of Doomdarks armies
4.  Fixed spurious crash caused by mouse
5.  Stopped recruit character face and fight object from being displayed 
    at inappropriate times

Engine: MidnightX.dll
6.  Fixed characters commands from acting on invalid commands
7.  Fixed dying characters that have not been recruited from showing up 
    areas on the map
8.  The AUTOMAP location collection has been trimmed, the characters needs 
    to explore more to get it on the map.
9.  Ownership and Occupancy are now treated differently
10. Strongholds now report their soldiers name correctly. eg. Doomguard
11. Added CArmyTotal for totalling a characters armies when they are not 
    at the location. Used of doomdark
12. Added CTextprocessor::DescribeArmyTotal

Version 0.0009 23/11/99

Library: librarysw.dll
1.  Split up into librarysw.dll, libraryos.dll and libraryhw.dll
2.  Made various code less platform specific

Library: libraryhw.dll
3.  *Added
4.  Removed DDLOCK_NOSYSLOCK from the surface lock. This was not present 
    in DirectX3.0 and maybe causing the problems with NT. *IT WAS*

Library: libraryos.dll
5.  *Added

Frontend: default frontend.dll
6.  Added config support for default.fre
7.  Added Keyboard redefinition support. See default.fre
8.  Added new graphics for MOUSE_LEFT, MOUSE_RIGHT, CHOOSE_HERE
9.  Changed AUTOMAP background to grey

Engine: MidnightX.dll
10. Stopped regiments leaving a location when there is something 
    interesting there. visible effect: Leaving a battle!
11. Stopped CBattleProcessor::MakeFriendOrFoeList from including dead 
    armies. This allows the battle to report victories correctly
12. Correct victory reporting now allows Strongholds to change hands.
13. Fixed CBattleProcessor::Fight calculating attacking chance correctly
14. Fixed accumalation of soldiers killed by armies in 
    CBattleProcessor::AllOutWar. will now correctly report.

Launcher: MidnightEngine.exe
15. Fullscreen flag now disables the graphics option when turned off. 
    Running in a window can only use the desktop settings and is
    hardwired to do so.

Version 0.0008 18/11/99

Engine: MidnightX.dll
1.  Added area collection on battle descriptions, so area is only 
    displayed once
2.  Fixed description of numbers greater than 999
3.  Removed number description for 0 out of SS_NUMBERS and added 
    SS_ZEROTOKENS. This allows choices of none,no,zero etc...
4.  Fixed general save bug - not writing out correct values for certain 
    class types
5.  Dead characters now lose access to the think icons.
6.  Fixed finding SWORDS, ICECROWN, MOONRING. ie: Anything that could be 
    picked up.

Frontend: default frontend.dll
7.  Fixed Keyboard pass through for the ID_NIGHT on the Night Screen
8.  Fixed AUTOMAP not showing correct tooltip for locations that had a 
    character at them who was not recruited.

Library: librarysw.dll
9.  Removed DirectX5 Dependency

Scenario: lom.mxs
10. Fixed min amount of troups than can be recruited from a stronhold. 
11. default scenario is now more exact than LOM. ie: Where min is 100, at 
    110 LOM can recruit 100, default can only recruit 10
12. Fixed error with any location description of henges and lakes showing 
    the wrong area if not the same area as the current character. This was 
    a database problem, using {cla1} instead of {a1}
13. Fixed error with recruit and post men story using wrong location. This 
    was a database problem, using {t1} instead of {ct1}

Version 0.0007 16/11/99

Frontend: default frontend.dll
1.  Moved to DLL and Added FrontendMain
2.  Added Font Support with font smoothing.
3.  Added New text printing functions to handle new fonts
4.  Added Load/Save
5.  Added new graphics from Jure Rogelj
6.  Centered Panels
7.  Rearranged Icons
8.  Now uses Fullscreen splashscreen loaded from the scenario directory
9.  Added splashscreen delay
10. Reduced Mouse restriction in fullscreen
11. Fixed carriage return processing in text messages

Launcher: MidnightEngine.exe
12. Added Launcher 
13. *Start New Game
14. *Load Game
15. *About
16. *SetFrontend
17. *SetScenario
18. *SetGraphicsMode
19. *SetFullScreen

Engine: MidnightX.dll
20. Move some code around to facilitate the Scenario
21. Added InstallScenario 
22. Added LoadMidnightEngine, UnloadMidnightEngine, GetMidnightInterface, 
23. Added CanWeSelectCharacter
24. Fixed Movement into frozen wastes

Scenario: lom.mxs
25. Added lords of midnight scenario

Library: librarysw.dll
26. Added CJpg Jpeg Support
27. Added GetSysInterface, ReleaseSysInterface

Version 0.0005 06/05/99

1.  Night Processing pretty much finished.
2.  Win and Lose conditions now implemented.
3.  Characters now have attributes if they can wear the moonring, carry 
    the icecrown and destroy the icecrown. 
4.  Fixed calculation of Ice Fear
5.  Added CTextProcessor, CNightProcessor and CBattleProcessor class
6.  Fixed up the TextProcessor Special Codes and now pulling almost all 
    text from the database. However the special codes part of the 
    textprocessor is currently memory allocation intensive and this slows 
    the Debug Build down to a crawl! ( must fix )
7.  Sorted out both versions of the compass. Adding RotatingCompass=TRUE 
    to the ini file sets the rotational one.
    However I have chosen to not have and graphically rotating compass as 
    it didn't look as good. May revist.
8.  Added internal Foe, Liege and Loyalty to characters.
9.  Added internal Loyalty to regiments.
10. Added Doomdark as a none selectable character. This is so regiments 
    and strongholds can belong to him.
11. Added Race/Terrain movement table
12. Added command time taken table
13. Added Show characters Icon to AUTOMAP
14. Added Show Armies Icon to AUTOMAP
15. Added Display Same Area Icon to AUTOMAP
16. Added Zoom Icons to AUTOMAP
17. Added lock to character on AUTOMAP
18. Added Show Current Location to AUTOMAP

Version 0.0003 : 23/03/99

1.  Mouse pointer changes to show that you are over something.
2.  Armies now display on the look view.
3.  nearly all think text is finished. Awaiting Message Preprocessor
4.  More key navigations
5.  Splash screen
6.  Rest Command and Time of day icon
7.  Check Person, Place, Army icons on Think screen
8.  New size icons
9.  New face graphics for characters
10. New Current Character Icon
11. Cursor changes to left or right at the edges of the panel.
12. various internal code and data structures that show no apparent 
    current gains.
13. 24bit true colour support - although I am a little uncertain about it 
    working on all systems due to the difference between RGB and BGR 
    formats. I think I have catered for this but let me know if you have 
14. Various bug fixes and tweaks. ( inc. BMP Loader! )
15. I've tweaked the night/day progression. It now starts darker, gets 
    brighter towards miday... holds it and then drops back down darker 
16. Config file now implemented.
17. Night screen now implemented.
18. Availability mode now implemented
19. Strongholds have individual properties and no hard code! This allows 
    for stronger/weaker strongholds etc.

Version 0.0001 16/02/99

1. First Preview Version


Tower of the Moon