Difference between revisions of "Hacker's Guide"

From OdaWiki
(Style and guidelines)
Line 31: Line 31:
 
== Style and guidelines ==
 
== Style and guidelines ==
  
* Avoid C style strings. Replace them with C++ types where it is safe to do so.
+
See [[Coding_standard]]
* Code defensively and securely
+
* Do not add globals
+
* Code for clarity
+
* Maintain traditional naming conventions
+
* Respect existing code
+
  
 
== Networking ==
 
== Networking ==

Revision as of 02:01, 27 October 2006

Getting Started

You'll want to have a look at our svn and bugs pages.

Code structure

Conventional file prefix

  • am_*: automap related code
  • c_*: console related code
  • cl_*: client only code
  • d_*: game/net code
  • f_*: finale related code
  • g_*: game related code
  • hu_*: hud related code
  • i_*: system/hardware dependant code
  • m_*: ???
  • p_*: game/object related code
  • r_*: render related code
  • s_*: sound related code
  • sv_*: server only code
  • st_*: ??? (mostly hud render related code)
  • v_*: video related code
  • wi_*: intermission related code
  • z_*: memory allocation related code

Files of interest

  • i_main.cpp: application entry point

Style and guidelines

See Coding_standard

Networking

Odamex uses UDP

Debugging the client on Linux

There's a problem with breakpoints and SDL under Linux. When a breakpoint pauses execution, the client keeps a lock on the mouse and keyboard (you can no longer do anything). If you kill the client process, you lose the breakpoint info. The current workaround is to call I_PauseMouse before any breakpoint you set.