Borneo Project TODO List

Next step:
  Battle
	Victory conditions, exp

  Write sprite sequence manager and implement
	- Implement saving of .SprSeq filenames within MapObjects.  Other options: ?
	- Change how they are stored in memory - is this necessary?

  Bug: When switching maps, if there is a Qued move or if the user has an arrow key down, the SetLoc call will not affect it as it should, and the character will instead be at the starting location
  Sol'n: Clear Qed moves at any setLoc call
  Bug: If a tileset id is specified that doesn't exists, it dies (when going into battle)

To Do:
  Reimplement llMObjs as a LinkedList, and TEST THUROUGHLY - need to make an Update Proc used in ME, so that when the MOID is changed, it is moved to the correct place in the list.  Also do this when reading from a map
  Verify that directories and files in borneo.ini exist!  Specifically apppath
  Graphics:
	Finish TextWindow Object to handle breaks and clearscreens and scrolling, also fix timing
		or TextWindow Reimplementation
  GameWorld:
	Write Scripting Language Interpreter
		- Add all opcodes to DoOp
	Handle decisions of NPCs - in scripts
		- Basics: random movers
		- Advanced: combatants
	Change finding of a new MOID in CreateMObj - should look in MObjIDs.h and make sure it's not in a different map already
  UI:
	Add a table mapping keys/DIEvents to functions IDs (can do now)
  GameSystem:
    Battle related functions (weapons, specials, etc)
	Character related functions (level up, etc)
  Battle:
	Store zone number in map, and get random enemies based on that
	Detection of end of battle
	Detect when a person is selecting a character, and do not pop up menus
	When a character dies, adjust targets to nearest neighbor
	Possibly make a class for handling character related animations so that one abs off animation doesn't override the others, but combines
	Update status at begining of battle - characters start dead (make sure it's sent to CBV)
	Power bars - handle multiple bar-length attacks
	Retain position in menu when character dies = so focus doesn't jump around
	When fray moves towards party, drop menu of fray character who was selected that wasn't a fray character before
	Check for level up after battle exit
  Optimizations:
  	Change drawing of tiles to keep track of transparent and non, and use different blts based on this
	Do not draw if nontrans tile is above - may not be efficient
	Make DelayArray a priority Queue (Heap?)
	Different Collision Detection scheme


Done:
  Core Loops
  Call Pause stuff and restore surfaces correctly when alt-tabbing in/out 
  Evaluate accuracy of clock() compared to HPC, and implement clock() if acceptable
	- clock() sucks.  18.x ticks/sec :)
  Load a general config file that contains the path to the application's data
  Implement a config file so everything is loaded from the same directory
  Graphics:
	Create RenderMain
	Add map support to RenderMain
	Add menu support to RenderMain
	Add text window support to RenderMain
	Create TextWindow Object to handle all of that stuff
    Re-Write initialization to create the PC as a MObj, set the focus on it
	Get a set of functions working for handling the skin file
	Change menu in RenderMain to be graphical
	Change so that menu uses graphical text
	Change menu to use bitmapped font functions
	Change Menu so it renders to a seperate layer, and only gets re-rendered when a menu-UI action is performed
	Write tileset manager
	Add map window support to RenderMain
	Get Splash screen to restore when alt-tabbing in/out
  GameWorld:
	Re-write UpdateGameWorld to check all sprites on each map
	Write ValidateMove
	Basic Map loading functions
	Basic map saving functions
	Advancded Map saving and loading functions
	Write prototypes to event calling functions, and implement usage of them
	Add MObj collision detection to ValidateMove (can do now)
	Re-implement on/off detection
    Finish code in clsMap to call I- and MEvents
  UI:
  	Re-write HandleUIMain using a function table for all defined actions,
  Events:
	Load EventFrames
	Event Interpretter
	Implement a door
	Finish EventFrame Class
	Write Basic DoOp
    Implement iParam usage in the calling of events
  GameSystem:
	Make Character object
	Utility functions for to-hit, etc
  Battle:
    Draft framework (on paper) for battle program flow
    Automatic menu popups for actions
	Un/Pausing of internal timer in CBS
	Linear animation in CBV
	dHP/MP/hit/miss display
	Skip character
	Character names Yellow when they're ready for action
	Implement run
	abs off animation
	12-28-0: Programmer wins first battle
	Run animation (use abs)
	Weapons shouldn't show when dead
    Dead people don't get a turn and can't target dead - implement setStatus() that refreshes the menu/vars if someone dies
	Row Switch
	Power bars
	Animation when the fray moves
	Animation when character changes row
	Battle text
	Fix target switch penalty
	Timer bars next to chars


  SprSeq:
	- Implement loading of SeqInfo files
	- Implement Events access:
		- SetLoc
	- Implement Update function
	- Implement Queueing of Moves
