Difference between revisions of "Hacker's Guide"
From OdaWiki
					 (→Conventional file prefix)  | 
				|||
| Line 41: | Line 41: | ||
Odamex uses UDP  | 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.  | ||
Revision as of 19:13, 27 September 2006
Contents
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
- Avoid C style strings. Replace them with C++ types where it is safe to do so.
 - Code defensively and securely
 - Do not add globals
 - Code for clarity
 - Maintain traditional naming conventions
 - Respect existing code
 
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.