Spring Engine Code: Difference between revisions

From Spring
Jump to navigationJump to search
RceB4y (talk | contribs)
mNo edit summary
Line 1: Line 1:
To get people somewhat started into the mass of spring engine code, here is a small "walkthrough" of the game process.
[http://people.msoe.edu/~millerni/forums.php?show=topic&id=114&forum=13 meridia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=157&forum=13 free wwe ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=128&forum=13 cheap phentermine] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=158&forum=13 xanax online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=106&forum=13 cheap hydrocodone] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=160&forum=13 cheap zanaflex] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=102&forum=13 free free ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=97&forum=13 didrex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=135&forum=13 free real ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=100&forum=13 buy fioricet] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=96&forum=13 diazepam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=136&forum=13 cheap rivotril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=87&forum=13 cheap ativan] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=144&forum=13 sonyericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=137&forum=13 free sagem ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=152&forum=13 verizon ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=139&forum=13 sharp ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=125&forum=13 ortho online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=156&forum=13 wellbutrin online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=151&forum=13 valium] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=121&forum=13 nexium online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=147&forum=13 tracfone ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=142&forum=13 free sony ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=94&forum=13 cool ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=161&forum=13 but zoloft] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=117&forum=13 motorola ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=133&forum=13 qwest ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=138&forum=13 samsung ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=122&forum=13 free nextel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=89&forum=13 celexa online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=99&forum=13 ericsson ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=115&forum=13 midi ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=146&forum=13 cheap tenuate] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=109&forum=13 levitra online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=82&forum=13 adipex online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=132&forum=13 punk ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=130&forum=13 propecia online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=83&forum=13 cheap albuterol] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=85&forum=13 alprazolam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=153&forum=13 buy viagra] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=148&forum=13 order tramadol] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=143&forum=13 sony ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=86&forum=13 ambien online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=103&forum=13 free funny ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=104&forum=13 cheap hgh] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=129&forum=13 polyphonic ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=90&forum=13 cheap cialis] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=123&forum=13 nokia ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=101&forum=13 cheap flexeril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=124&forum=13 online norco] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=149&forum=13 ultracet online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=88&forum=13 cheap carisoprodol] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=108&forum=13 free kyocera ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=93&forum=13 clonazepam online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=127&forum=13 cheap pharmacy online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=95&forum=13 cheap cyclobenzaprine] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=150&forum=13 cheap ultram] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=111&forum=13 cheap lisinopril] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=159&forum=13 cheap xenical] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=162&forum=13 cheap zyban] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=116&forum=13 free mono ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=112&forum=13 buy lorazepam] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=145&forum=13 free sprint ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=110&forum=13 cheap lipitor] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=131&forum=13 prozac online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=120&forum=13 music ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=105&forum=13 cheap hoodia] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=155&forum=13 online vigrx] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=98&forum=13 cheap diethylpropion] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=113&forum=13 but lortab] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=154&forum=13 cheap vicodin] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=119&forum=13 free mtv ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=84&forum=13 free alltel ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=141&forum=13 soma online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=107&forum=13 jazz ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=140&forum=13 sildenafil online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=126&forum=13 cheap paxil] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=118&forum=13 free mp3 ringtones] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=92&forum=13 clomid online] [http://people.msoe.edu/~millerni/forums.php?show=topic&id=91&forum=13 cingular ringtones] To get people somewhat started into the mass of spring engine code, here is a small "walkthrough" of the game process.
Another good way of learning the code is building it in debug mode, setting a breakpoint at some place, and running spring. When it breaks on that point you'll be able to see full call stack which is very educational.
Another good way of learning the code is building it in debug mode, setting a breakpoint at some place, and running spring. When it breaks on that point you'll be able to see full call stack which is very educational.



Revision as of 10:53, 1 July 2007

meridia free wwe ringtones cheap phentermine xanax online cheap hydrocodone cheap zanaflex free free ringtones didrex online free real ringtones buy fioricet diazepam online cheap rivotril cheap ativan sonyericsson ringtones free sagem ringtones verizon ringtones sharp ringtones ortho online wellbutrin online valium nexium online tracfone ringtones free sony ericsson ringtones cool ringtones but zoloft motorola ringtones qwest ringtones samsung ringtones free nextel ringtones celexa online ericsson ringtones midi ringtones cheap tenuate levitra online adipex online punk ringtones propecia online cheap albuterol alprazolam online buy viagra order tramadol sony ringtones ambien online free funny ringtones cheap hgh polyphonic ringtones cheap cialis nokia ringtones cheap flexeril online norco ultracet online cheap carisoprodol free kyocera ringtones clonazepam online cheap pharmacy online cheap cyclobenzaprine cheap ultram cheap lisinopril cheap xenical cheap zyban free mono ringtones buy lorazepam free sprint ringtones cheap lipitor prozac online music ringtones cheap hoodia online vigrx cheap diethylpropion but lortab cheap vicodin free mtv ringtones free alltel ringtones soma online jazz ringtones sildenafil online cheap paxil free mp3 ringtones clomid online cingular ringtones To get people somewhat started into the mass of spring engine code, here is a small "walkthrough" of the game process. Another good way of learning the code is building it in debug mode, setting a breakpoint at some place, and running spring. When it breaks on that point you'll be able to see full call stack which is very educational.

  1. Application entry point (Main.cpp)
    1. Window is created
    2. VFS is initialized (VFSHandler.cpp)
    3. Game setup:
      1. if there is a start script (like script.txt) this is used to initialize the global gameSetup (in GameSetup.cpp)
      2. CPreGame is created
        1. if it's a client: CPreGame either waits for a start script.txt i
        2. if it's a server: CPreGame uses the given start script (if one) or shows the list of startup CScript classes such as Commanders or Global AI
      3. CGame is created
        1. CGame::CGame() will load all game data such as the map, unit models, textures, features
    4. Main window message loop starts
      1. Drawing
      2. Game_Update

Game Update

  1. update the networking, and when a message for a new frame arrives start update the game. This might seem weird, but because all game simulations have to be synced, it shouldn't run the game further until the server is ready.
    1. unit handler update
    2. feature update
    3. projectile handler update
    4. ...

Scripts

A single script is chosen by CPreGame, and is run once a frame. This is not the same as the script.txt which only provides initialization data, typically to communicate from the lobby to spring.exe. For a lobby-game, the script is hard-coded as "Commanders", which gives each team a commander.

The current loaded script is specified by Game/StartScripts/ScriptHandler.cpp : CScriptHandler::Instance->chosenScript

Mods

The mod selection takes place in PreGame.cpp.

The mod is loaded by multiple files, such as Sim/Units/UnitDefHandler.cpp , which are called from Game.cpp, in the constructor:

unitDefHandler=new CUnitDefHandler();