Code File Structure: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
(Created page with "I gather some ideas about restructuring the code and describe some code files here. ===audio=== *Athena_Ambiance.cpp *Athena_CoDec_ADPCM.cpp *Athena_Codec_RAW.cpp *Athena.cpp *A...")
 
No edit summary
 
(80 intermediate revisions by 3 users not shown)
Line 1: Line 1:
I gather some ideas about restructuring the code and describe some code files here.
Need rules here for new developers.


===audio===
== General information ==
*Athena_Ambiance.cpp
*Athena_CoDec_ADPCM.cpp
*Athena_Codec_RAW.cpp
*Athena.cpp
*Athena_Environment.cpp
*Athena_Global.cpp
*Athena_Instance.cpp
*Athena_Mixer.cpp
*Athena_Resource.cpp
*Athena_Sample.cpp
*Athena_Stream.cpp
*Athena_Stream_WAV.cpp
*Athena_Track.cpp
*ARX_C_sound.cpp
*ARX_Speech.cpp
*ARX_Sound.cpp


===game===
In general, try to follow the existing structure as you see it.  
*ARX_carte.cpp
*ARX_Damages.cpp
*ARX_Equipment.cpp
*ARX_Inventory.cpp
*ARX_Levels.cpp
*ARX_NPC.cpp
*ARX_Missile.cpp
*ARX_Spells.cpp
*ARX_Player.cpp


Minimize the functionality in files and try to follow modern c++ standards.


===io===
Name files for their content (nouns), not for their actions (verbs).
*blast.cpp
*Filesystem.cpp
*HashMap.cpp
*HERMES_ClusterSave.cpp
*HERMESmain.cpp
*HERMESnet.cpp
*Logger.cpp
*PakEntry.cpp
*PakManager.cpp
*PakReader.cpp
*ARX_ChangeLevel.cpp
*ARX_C_loadsave.cpp
*DanaeSaveLoad.cpp
*ARX_FTL.cpp | FTL (scene?) file reader
*ARX_Snapshot.cpp | write screenshot file


Don't be afraid to ask for help if you can't decide what to name a file!


===scripting===
[[Category:Development information]]
 
*SCRIPT_DEBUGGER_Dialog.cpp
*ARX_Script.cpp
*DANAE_Debugger.cpp
 
 
===graphics===
 
*EERIEDraw.cpp
*EERIEenum.cpp
*EERIEFrame.cpp
*EERIEMath.cpp
*EERIEutil.cpp
*ARX_Draw.cpp
*ARX_Cedric.cpp | all kinds of graphics related stuff
 
=====particle=====
*ARX_CParticle.cpp
*ARX_CParticles.cpp
*ARX_CParticleSystem.cpp
*ARX_Particles.cpp
 
=====effects=====
*ARX_C_fx.cpp
*ARX_CSpellFx.cpp
*ARX_Fogs.cpp
*ARX_GlobalMods.cpp
FOG related d3d stuff
 
=====spells=====
some hardcodet animations, should be abstracted and persistated (xml or such?)
*ARX_SpellFX_Lvl01.cpp
*ARX_SpellFX_Lvl02.cpp
*ARX_SpellFX_Lvl03.cpp
*ARX_SpellFX_Lvl04.cpp
*ARX_SpellFX_Lvl05.cpp
*ARX_SpellFX_Lvl06.cpp
*ARX_SpellFX_Lvl07.cpp
*ARX_SpellFX_Lvl08.cpp
*ARX_SpellFX_Lvl09.cpp
*ARX_SpellFX_Lvl10.cpp
 
=====scene=====
*ARX_Scene.cpp
*EERIEobject.cpp
*EERIELight.cpp
*EERIELinkedObj.cpp
*ARX_Interactive.cpp | gore stuff, npc, animation, io, camera, a lot of stuff
 
=====data=====
*EERIEMeshTweak.cpp
*EERIEPoly.cpp
*EERIEProgressive.cpp
*EERIETexture.cpp
*ARX_C_mapp.cpp | bitmap , texture, uv stuff
 
 
===physics===
*ARX_Collisions.cpp
*ARX_Physics.cpp
*EERIEClothes.cpp
*EERIECollisionSpheres.cpp
*EERIEPhysicsBox.cpp
*ARX_Special.cpp | "ATTRACTORS" actor managment with io
*EERIEAnchors.cpp | seems to do collision shapes and detection related things. i could be wrong though.
 
 
===animation===
*ARX_C_cinematique.cpp
*ARX_C_keyframer.cpp
*ARX_Intro.cpp
*EERIEAnim.cpp
 
 
===gui===
*ARX_Interface.cpp
*ARX_Menu2.cpp
*ARX_Menu.cpp
*ARX_MenuPublic.cpp
*ARX_Minimap.cpp
*ARX_Text.cpp
*ARX_ViewImage.cpp
 
===ai===
*ARX_Paths.cpp
*Minos_PathFinder.cpp
*EERIEPathfinder.cpp
 
===core===
*ARX_Common.cpp
*ARX_Config.cpp
*ARX_Time.cpp
*Danae.cpp
*DanaeDlg.cpp
*ARX_Loc.cpp | localization (could also fit in gui?)
*ARX_LocHash.cpp | further localization code
*EERIEApp.cpp |rendering, input and window setup. this should be seperated.
*EERIE_AVI.cpp | plays avi files. could be put into audio and renamed to media ;) ?
 
 
===window===
*Mercury_global.cpp
*Mercury_Main.cpp
*ARX_Input.cpp

Latest revision as of 01:03, 4 February 2012

Need rules here for new developers.

General information

In general, try to follow the existing structure as you see it.

Minimize the functionality in files and try to follow modern c++ standards.

Name files for their content (nouns), not for their actions (verbs).

Don't be afraid to ask for help if you can't decide what to name a file!