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.