_________ __                 __
        /   _____//  |_____________ _/  |______     ____  __ __  ______
        \_____  \\   __\_  __ \__  \\   __\__  \   / ___\|  |  \/  ___/
        /        \|  |  |  | \// __ \|  |  / __ \_/ /_/  >  |  /\___ \
       /_______  /|__|  |__|  (____  /__| (____  /\___  /|____//____  >
               \/                  \/          \//_____/            \/
    ______________________                           ______________________
                          T H E   W A R   B E G I N S
                   Stratagus - A free fantasy real time strategy game engine

Todo List
Member _message_type_
cleanup the message types.
Member _move_return_
Another idea is SINT_MAX as reached, SINT_MIN as unreachable stop others how far to goal.
Member AiAddUnitTypeRequest (CUnitType &type, int count)
FIXME: should store the end of list and not search it.
Member AiCheckSupply (const PlayerAi &pai, const CUnitType &type)
The number of food currently trained can be stored global for faster use.
Member AiFindBuildingPlace (const CUnit &worker, const CUnitType &type, const Vec2i &nearPos, Vec2i *resultPos)
Better and faster way to find building place of oil platforms Special routines for special buildings.
Member AiFindHallPlace (const CUnit &worker, const CUnitType &type, const Vec2i &startPos, int resource, Vec2i *resultPos)
FIXME: This is slow really slow, using two flood fills, is not a perfect solution.
Member AiFindLumberMillPlace (const CUnit &worker, const CUnitType &type, const Vec2i &startPos, int resource, Vec2i *resultPos)
FIXME: This is slow really slow, using two flood fills, is not a perfect solution.
Member AiForce::PlanAttack ()

Perfect planning. Only works for water transporter!

transporter are more selective now (flag with unittypeland). We must manage it.

Member AllCursors
FIXME: Should this be move to ui part?
Member AnimateActionAttack (CUnit &unit, COrder &order)
manage correctly unit with no animation attack.
Member AutoCastInfo::Range
this below is SQUARE!!!
Member CalculateDamageStats (const CUnitStats &attacker_stats, const CUnitStats &goal_stats, int bloodlust)

NOTE: different targets (big are hit by some missiles better)

NOTE: lower damage for hidden targets.

NOTE: lower damage for targets on higher ground.

Member CanBuildHere (const CUnit *unit, const CUnitType &type, const Vec2i &pos)
more docu
Member CanBuildOn (const Vec2i &pos, int mask)
more docu
Member CclDefineAiHelper (lua_State *l)
FIXME: the first unit could be a list see ../doc/ccl/ai.html
Member CclDefineDecorations (lua_State *l)

modify Assert with luastate with User Error.

continue to add configuration.

Member CclGetDependency (lua_State *l)
not written.
Member CclUnit (lua_State *l)

Verify that vision table is always correct (transporter)

(PlaceUnit() and host-info).

Class CConstruction
Need ::TilesetByName, ... Only fixed number of constructions supported, more than a single construction frame is not supported, animated constructions aren't supported.
Member CContentTypeCompleteBar::Draw (const CUnit &unit, CFont *defaultfont) const
Color and percent value Parametrisation.
Member CContentTypeLifeBar::Draw (const CUnit &unit, CFont *defaultfont) const
Color and percent value Parametrisation.
Class CDecoVar
add more stuff in this struct.
Member CDecoVarAnimatedSprite::Draw (int x, int y, const CUnitType &type, const CVariable &var) const
fix sprite configuration configuration.
Member CDecoVarBar::Draw (int x, int y, const CUnitType &type, const CVariable &var) const
fix color configuration.
Member CDecoVarFrame::Draw (int x, int y, const CUnitType &type, const CVariable &var) const
fix color configuration.
Member CDecoVarSpriteBar::Draw (int x, int y, const CUnitType &type, const CVariable &var) const
fix sprite configuration.
Member CDecoVarStaticSprite::Draw (int x, int y, const CUnitType &type, const CVariable &var) const
fix sprite configuration configuration.
Member CDecoVarText::Draw (int x, int y, const CUnitType &type, const CVariable &var) const
fix font/color configuration.
Class CFile
zip archive support
Member CGraphic::MakeShadow (int xOffset, int yOffset)
FIXME: 32bpp
Member CLIP_RECTANGLE (x, y, width, height)
FIXME: not easy to debug, but making it a function needs:
  • pointers to be able to alter given arguments
  • special return value to denote 'outside' clipping region (which is now handled by a simple return in caller function)
Member CLIP_RECTANGLE_OFS (x, y, width, height, ofsx, ofsy, endx)
FIXME: not easy to debug, but making it a function needs:
  • pointers to be able to alter given arguments
  • special return value to denote 'outside' clipping region (which is now handled by a simple return in caller function)
Member CMap::SetWall (const Vec2i &pos, bool humanwall)
FIXME: support for more races.
Member CMinimap::Create ()
Scaling and scrolling the minmap is currently not supported.
Class ConditionInfo
Move more parameters into this structure.
Member COrder_Attack::Execute (CUnit &unit)
Lets do some tries to reach the target. If target place is not reachable, choose better goal to reduce the pathfinder load.
Member CPlayer::Notify (int type, const Vec2i &pos, const char *fmt,...) const PRINTF_VAARG_ATTRIBUTE(4
FIXME: We must also notfiy allied players.
Member CPlayer::Notify (const char *fmt,...) const PRINTF_VAARG_ATTRIBUTE(2
FIXME: We must also notfiy allied players.
Member CreateGame (const std::string &filename, CMap *map)
FIXME: use in this function InitModules / LoadModules!!!
Member CStatusLine::DrawCosts ()

FIXME : make DrawCosts more configurable.

FIXME : 'time' resource should be shown too.

Member CTileset::getTileNumber (int basic, bool random, bool filler) const
FIXME: Solid tiles are here still hardcoded.
Class CUnit

docu. If you need more information, please send me an email or write it self.

continue documentation

continue documentation

continue documentation

Member CUnit::IsUnusable (bool ignore_built_state=false) const
look if correct used (UnitActionBuilt is no problem if attacked)?
Member CUnit::IsVisibleOnMinimap () const
radar support
Class CUnitType

n0body: AutoBuildRate not implemented.

continue this documentation

not used

The above should be more configurable. If units have a repair range, they can repair, and this is the distance.

temporary solution

This stats should? be moved into the player struct

Should us a general name f.e. Slot here?

Member CUnitType::Stats [PlayerMax]
This stats should? be moved into the player struct
Member CUserInterface::VictoryBackgroundG
could use different sounds/speech for the errors Is in gamesounds? SoundConfig PlacementError; /// played on placements errors SoundConfig PlacementSuccess; /// played on placements success SoundConfig Click; /// click noice used often
Member DoScrollArea (int state, bool fast, bool isKeyboard)

Support dynamic acceleration of scroll speed.

If the scroll key is longer pressed the area is scrolled faster.

Member DrawInformations (const CUnit &unit, const CUnitType &type, const PixelPos &screenPos)
FIXME: The different styles should become a function call.
Member DrawMapCursor ()
support for bigger cursors (2x2, 3x3 ...)
Member DrawResources ()
FIXME : make DrawResources more configurable (format, font).
Member DrawShadow (const CUnitType &type, int frame, const PixelPos &screenPos)
FIXME: combine new shadow code with old shadow code.
Member DrawTimer ()
FIXME : make DrawTimer more configurable (Pos, format).
Member DrawUnitType (const CUnitType &type, CPlayerColorGraphic *sprite, int colorIndex, int frame, const PixelPos &screenPos)
Do screen position caculation in high level. Better way to handle in x mirrored sprites.
Member DropOutNearest (CUnit &unit, const Vec2i &goalPos, const CUnit *container)
more docu
Member DropOutOnSide (CUnit &unit, int heading, const CUnit *container)
more docu
Member EditorActionPlaceUnit (const Vec2i &pos, const CUnitType &type, CPlayer *player)
FIXME: Check if the player has already a start-point.
Member EditorSaveMap (const std::string &file)
FIXME: Check if the map is valid, contains no failures. At least two players, one human slot, every player a startpoint ...
Member EvalNumber (const NumberDesc *number)
Manage better the error (div/0, unit==NULL, ...).
Member EvalNumber (const NumberDesc *number)
Manage better the error (div/0, unit==NULL, ...).
Member EvalString (const StringDesc *s)
Manage better the error.
Member FIRST_ENTRY
FIXME: I should rewrite this action, if only the new orders are supported.
Member gcn::ListBox::draw (Graphics *graphics)
Check cliprects so we do not have to iterate over elements in the list model
Member GetButtonStatus (const ButtonAction &button, int UnderCursor)

FIXME : add IconDisabled when needed.

FIXME : Should show the rally action for training unit ? (NewOrder)

Member HandleButtonUp (unsigned button)

FIXME: the mouse handling should be complete rewritten

FIXME: this is needed for double click, long click,...

Member HandleMouseExit ()
FIXME: make it so that the game is partially 'paused'. Game should run (for network play), but not react on or show interactive events.
Member HandleSuicideClick (CUnit &unit)
remove static (bug with save/load...)
Member ImageListBox::draw (gcn::Graphics *graphics)
Check cliprects so we do not have to iterate over elements in the list model
Member ImageListBoxWidget::ImageListBoxWidget (unsigned int width, unsigned int height)
Size should be parametrable, maybe remove default constructor?
Member InitAiHelper (AiHelper &aiHelper)
missing Equiv initialisation.
Member InitSettings ()
FIXME: this should not be executed for restart levels!
Member InReactRange (const CUnit &unit, const CUnit &target)
: Do we have to check range from unit.Container pos if unit is bunkered or in transport?
File intern_video.h
FIXME: Currently some interfaces listed in video.h should be moved in here, this includes possible "extern" declarations in source-files themselves. The doxygen docs looks not good, but now contains all info.
Member IsButtonAllowed (const CUnit &unit, const ButtonAction &buttonaction)

FIXME: better check. (dependency, resource, ...)

FIXME: make difference with impossible and not yet researched.

Member ListBoxWidget::ListBoxWidget (unsigned int width, unsigned int height)
Size should be parametrable, maybe remove default constructor?
Member LoadSample (const std::string &name)
Add streaming, caching support.
page Main Page

adpcm file format support for sound effects

better separation of low and high level, assembler mixing support.

Streaming support of ogg/mp3 files.

Member MapUnitSounds ()
the sound ranges should be configurable by user with CCL.
Member MessagesDisplay::DrawMessages ()
FIXME: make message font configurable.
Member MessagesDisplay::UpdateMessages ()
FIXME: make scroll speed configurable.
Class MissileConfig
Move this to missile.h?
Member MissileDeathCoil::Action ()
do it configurable.
Member MissileHitsWall (const Missile &missile, const Vec2i &tilePos, int splash)
FIXME: Support for more races.
Member MissileLandMine::Action ()

start-finish-start cyclic animation.(anim scripts!)

missile should disappear for a while.

Member MissileWhirlwind::Action ()
do it more configurable.
Member NearestOfUnit (const CUnit &unit, const Vec2i &pos, Vec2i *dpos)
more docu
Member NetworkResendCommands ()
We need only send to the clients, that have not delivered the packet.
Member ParabolicMissile (Missile &missile)
Find good values for ZprojToX and Y
Member RegisterSound (const std::vector< std::string > &files)
FIXME: Must handle the errors better.
Class ResourceInfo
more configurable.
Member SelectTargetUnitsOfAutoCast (CUnit &caster, const SpellType &spell)

FIXME: should be global (for AI) ???

FIXME: write for position target.

Member SendMove (const Vec2i &tilePos)
To reduce the CPU load for pathfinder, we should check if the destination is reachable and handle nice group movements.
Member SetPlayersPalette ()
FIXME: could be called before PixelsXX is setup.
Member ShowOrdersCount
could be moved into the user interface ?
Member StatBoxWidget::draw (gcn::Graphics *graphics)

caption seem to be placed upper than the middle.

set direction (hor./vert.) and growing direction(up/down, left/rigth).

Member Str2TypeRef (lua_State *l, const char *s)
better check for error (restrict param).
Member Str2UnitRef (lua_State *l, const char *s)
better check for error (restrict param).
Class TileInfo
This is the terrain the tile is mixed with. This is 0 for a solid tile, we should make it equal to BaseTerrain
Member TileType
I think this can be removed, we can use the flags? I'm not sure, if we have seen and real time to considere.
Member UiCenterOnGroup (unsigned group, GroupSelectionMode mode=SELECTABLE_BY_RECTANGLE_ONLY)
Improve this function, try to show all selected units or the most possible units.
Member UiCenterOnSelected ()
Improve this function, try to show all selected units or the most possible units.
Member UiToggleBigMap ()
FIXME: We should try to keep the same view, if possible
Member UnitToRepairInRange (const CUnit &unit, int range)
FIXME: find the best unit (most damaged, ...).
Member UnitTypeHumanWall

this hardcoded unit-types must be removed!!

find a way to make it configurable!

Member UpdateButtonPanelMultipleUnits (std::vector< ButtonAction > *buttonActions)

FIXME : make UpdateButtonPanelMultipleUnits more configurable.

show all possible buttons or just same button...

Member UpdateButtonPanelSingleUnit (const CUnit &unit, std::vector< ButtonAction > *buttonActions)
FIXME : Remove Hack for cancel button.
Member UpdateForNewUnit (const CUnit &unit, int upgrade)
more docu
Member ViewPointDistance (const Vec2i &pos)
FIXME: is it the correct place to put this function in?
Member ViewPointDistanceToUnit (const CUnit &dest)
FIXME: is it the correct place to put this function in?
Member ViewportModeType
this should be later user configurable
(C) Copyright 1998-2012 by The Stratagus Project under the GNU General Public License.
All trademarks and copyrights on this page are owned by their respective owners.