warzone2100/TODO

49 lines
2.1 KiB
Plaintext
Raw Normal View History

Easy:
- bug #5097: CPU Hog
Reduce the amount of main-loop-runs to a reasonable number (eg 50),
so we don't eat up the whole CPU time.
Advanced code could be taken from the SDL_gfx project (http://www.ferzkopp.net/Software/SDL_gfx-2.0/).
The really simple solution would be a kind of SDL_Delay(1000/FPS).
Framerate calculation currently takes place in lib/framework/frame.c:103+
Main loop resides in src/main.c:486+
Details: https://gna.org/bugs/index.php?func=detailitem&item_id=5097
- Add a shadow toggle to src/clparse.c
- Make Warzone respond to the SDL_QUIT event so it can be closed with ^C, ALT+F4 or closing the window.
More difficult:
- Create one single place where platform dependend defines reside.
- Create a "super header" which is included in every header before any other headers.
This is needed eg for debugging memleaks through malloc redefinitions (eg when using MSVCRT).
- [separation] Work out an engine part (lib/) and a game part (src/),
where no engine part depends on any game part
- [separation2] Separate the engine parts so they have only a minimum dependency on each other
and rearrange them logically (depends on [separation])
- [LUA] Rewrite the scripting engine to use LUA
(adding a 2nd engine which handles all LUA scripts would be enough atm)
(depends on [separation2])
- Convert existing scripts to LUA (depends on [LUA])
- [GUI] Rewrite the GUI to be scriptable (depends on [LUA])
- Improve the menus for usability (esp. networking) (depends on [GUI])
- Improve loading of data / dataformat. Should be possible to load all maps
in all techlevels for campaign as well as multiplay mode. This would hopefully
fix those bugs where maps are missing or the campaign breaks because of maps.
Would involve mdofication of data and YaCC/Lex files.
- [network] Rewrite the system how Warzone handles networking.
New system should be more stable (no out of sync bugs)
and handle cheat checking without preventing games between ppl using Windows and Linux
- Adapt the master server to that system (depends on [network])