<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.hard-light.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rousseau</id>
	<title>FreeSpace Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hard-light.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rousseau"/>
	<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php/Special:Contributions/Rousseau"/>
	<updated>2026-11-15T10:41:38Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Category:3d_Graphics&amp;diff=4831</id>
		<title>Category:3d Graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Category:3d_Graphics&amp;diff=4831"/>
		<updated>2006-02-13T09:41:50Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Source Code]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_Code_Reference&amp;diff=4819</id>
		<title>Source Code Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_Code_Reference&amp;diff=4819"/>
		<updated>2006-02-13T09:40:42Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: /* Freespace2 Code Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CVS Directory Structure==&lt;br /&gt;
The fs2_open CVS consists of several major components, each of which is kept in a separate directory:&lt;br /&gt;
&lt;br /&gt;
* Freespace2 Code base (code)&lt;br /&gt;
&lt;br /&gt;
Plus the following libraries:&lt;br /&gt;
* LUA Scripting language (lua)&lt;br /&gt;
* Jpeg library (libjpeg)&lt;br /&gt;
* Ogg Vorbis sound library (oggvorbis)&lt;br /&gt;
* DirectX 8 SDK (dx8sdk)&lt;br /&gt;
* DirectX 9 SDK (dx9sdk)&lt;br /&gt;
&lt;br /&gt;
===Libraries===&lt;br /&gt;
See msdn.microsoft.com for discussion of the DirectX libraries. For the other libraries, look in the README files for more info.&lt;br /&gt;
&lt;br /&gt;
===Freespace2 Code Base===&lt;br /&gt;
The main code consists of several subdirectories:&lt;br /&gt;
&lt;br /&gt;
* ai (Computer AI)&lt;br /&gt;
* [[Source anim|anim]] (Displaying .ani animated bitmaps)&lt;br /&gt;
* asteroid (Handle asteroids - movement, collisions, creating smaller asteriods when larger ones are blown up etc.)&lt;br /&gt;
* autopilot (Handles autopilot control - where if there are no enemies, travelling a long distance etc. control is temporarily switched to the computer)&lt;br /&gt;
* [[Source bmpman|bmpman]] (Manage 2d graphics files, such as .bmp, .tga, .jpg etc.)&lt;br /&gt;
* camera (???)&lt;br /&gt;
* cfile (File/directory management routines including .VP file handling that are OS independent eg. handles differences between Linux &amp;amp; Windows)&lt;br /&gt;
* cmdline (Handles command line switches, such as -mipmap etc.)&lt;br /&gt;
* cmeasure (Handles countermeasures - flares that the player &amp;amp; AI can drop to disrupt missiles)&lt;br /&gt;
* controlconfig (Configures keyboard/mouse/joystick controls)&lt;br /&gt;
* cutscene (Handles cutscene viewing)&lt;br /&gt;
* [[Source ddsutils|ddsutils]] (Handles compressed textures for 3d graphics cards that support it)&lt;br /&gt;
* debris (Creates &amp;amp; handles flying debris from exploding ships)&lt;br /&gt;
* debugconsole (Handles debugging console and file)&lt;br /&gt;
* decals (Adds support for painting decals - small 2d textures - onto ships etc.)&lt;br /&gt;
* demo (Allows you to save &amp;amp; playback games to show as demos)&lt;br /&gt;
* directx (Specific includes for the Microsoft DirectX library - Windows only)&lt;br /&gt;
* exceptionhandler (Deals with crashes, saving stack trace, system info etc.)&lt;br /&gt;
* fireball (Displays &amp;amp; handles fireballs and warping effects)&lt;br /&gt;
* freespace2 (Main code - handles engine initialisation, loading resources, plus windows resources like icons &amp;amp; dialog boxes)&lt;br /&gt;
* fs2open_pxo (Network code)&lt;br /&gt;
* gamehelp (Displays context sensitive help text)&lt;br /&gt;
* gamesequence (Handles progression of events during a campaign, such as entering a mission, showing credits etc.)&lt;br /&gt;
* gamesnd (Handles sounds &amp;amp; music)&lt;br /&gt;
* globalincs (Basic global constants &amp;amp; definitions, eg. version, colours)&lt;br /&gt;
* [[Source graphics|graphics]] (Low-level wrapper for all 2d &amp;amp; 3d graphics that handles different display engines (DirectX, OpenGL etc)&lt;br /&gt;
* hud (Handles the HUD - all the 2d cockpit graphics that the player can see eg. radar, ammo, escort list, sqaud etc)&lt;br /&gt;
* iff_defs (Handles traitor ships???)&lt;br /&gt;
* io (Handles IO devices, such as keyboard, mouse &amp;amp; joystick)&lt;br /&gt;
* irc (Adds support for an IRC chat client)&lt;br /&gt;
* [[Source jpgutils|jpgutils]] (Opens, reads JPG files)&lt;br /&gt;
* jumpnode (Displays &amp;amp; handles jump nodes)&lt;br /&gt;
* lab (???)&lt;br /&gt;
* lighting (Handles light sources, and their effect on ships)&lt;br /&gt;
* localization (Handles a global string table for translating all written text into foreign languages)&lt;br /&gt;
* math (Library of math routines for handling vectors, splines etc)&lt;br /&gt;
* menuui (Handles all the misc user interface, such as the main menu, tech room, campaign list etc)&lt;br /&gt;
* mission (Handles general mission actions eg. briefing, goals, training info, in-mission messages etc)&lt;br /&gt;
* missionui (Handles UI for general mission actions)&lt;br /&gt;
* mm (Headers for older MS Multimedia library)&lt;br /&gt;
* model (Displays and handles ship models eg. reading files, collission detection etc)&lt;br /&gt;
* nebula (Displays and handles nebulae)&lt;br /&gt;
* network (All multi-player code, eg. UI, network traffic)&lt;br /&gt;
* object (High-level code to handle all objects eg. ships, weapons, debris, asteroids, waypoints, fireballs, shockwaves)&lt;br /&gt;
* observer (???)&lt;br /&gt;
* osapi (Wraps low-level Operating System calls, for different OS, eg. multi-threads, windows event loops, main app window)&lt;br /&gt;
* palman (Handles bitmap palettes - different colour maps for the same 2d bitmap)&lt;br /&gt;
* parse (Handles scripting files, eg. python, LUA etc)&lt;br /&gt;
* particle (Displays and handles particles, such as smoke, fire) &lt;br /&gt;
* [[Source pcxutils|pcxutils]] (Handles 2d .pcx graphics files)&lt;br /&gt;
* physics (Handles realistic physical behaviour of objects, such as ship acceleration/deceleration, rotation etc.)&lt;br /&gt;
* playerman (Handles pilot files &amp;amp; player ship movement)&lt;br /&gt;
* popup (Displays &amp;amp; handles 2d pop-up windows, eg. when the player dies)&lt;br /&gt;
* radar (Displays &amp;amp; handles the radar)&lt;br /&gt;
* [[Source render|render]] (Low-level 3d rendering code for some primitives)&lt;br /&gt;
* ship (Displays &amp;amp; handles all ship code, eg. shields, afterburner)&lt;br /&gt;
* sound (Low-level sound, speach &amp;amp; music routines)&lt;br /&gt;
* species_defs (Reads species_defs.tbl to handle different behaviour for different species)&lt;br /&gt;
* starfield (Displays &amp;amp; handles background images such as starfields, nebulae etc)&lt;br /&gt;
* stats (Displays &amp;amp; handles player statistics, medals etc)&lt;br /&gt;
* [[Source tgautils|tgautils]] (Handles .tga 2d graphics files)&lt;br /&gt;
* ui (Low-level user inteface routines eg. buttons, scrollbars)&lt;br /&gt;
* vcodec (Handles player voice streaming for multiplayer ???)&lt;br /&gt;
* weapon (Displays &amp;amp; handles everything to do with weapons)&lt;br /&gt;
* windows_stub (Low-level windows functions that are needed for Unix)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also some directories that are only used for generating tools (not part of the main fs2 executable):&lt;br /&gt;
* cfilearchiver (Creates .VP file archives)&lt;br /&gt;
* cfileextractor (Extracts .VP file archives)&lt;br /&gt;
* cryptstring (Creates encrypted strings)&lt;br /&gt;
* fred2 (The FReespace EDitor)&lt;br /&gt;
* inetfile (FTP &amp;amp; HTTP network handlers)&lt;br /&gt;
* scramble (Utility to scramble file tables for the Demo version)&lt;br /&gt;
* variables (???)&lt;br /&gt;
* wxfred2 (Cross-platform version of FRED2)&lt;br /&gt;
&lt;br /&gt;
==Category Browser==&lt;br /&gt;
The subdirectories above are also categorised by function. See the Category:Source Code to browse this way.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_graphics&amp;diff=4830</id>
		<title>Source graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_graphics&amp;diff=4830"/>
		<updated>2006-02-13T09:38:39Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains both high-level and low-level routines for handling 3d graphics primitives. To allow for rendering with either DirectX or OpenGL, the graphics engine uses a structure (gr_screen) with function pointers to all the standard 3d operations (such as initialising the screen, page flipping, displaying primitives etc.). There are basically two sets of source files: grd3d* (DirectX) and gropengl* (OpenGL). &lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 3 |gr_screen/screen global struct&lt;br /&gt;
| res, mode, aspect etc.&lt;br /&gt;
| Contains all info about screen setup (bits, resolution, etc)&lt;br /&gt;
|-&lt;br /&gt;
| gf_* functions&lt;br /&gt;
| Wraps standard 3d functions such as page flip, render buffer etc. allowing the engine to abstract DirectX and OpenGL functions.&lt;br /&gt;
|-&lt;br /&gt;
| gf_render_buffer()&lt;br /&gt;
| Main rendering call for models (ships etc.). Wraps buffer rendering modes in DirectX/OpenGL.&lt;br /&gt;
|-&lt;br /&gt;
| gr_* functions&lt;br /&gt;
| gr_init()&lt;br /&gt;
| Initialises graphics engine (either DirectX or OpenGL)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:3d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_render&amp;diff=4829</id>
		<title>Source render</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_render&amp;diff=4829"/>
		<updated>2006-02-13T08:35:48Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains low-level routines for handling 3d graphics primitives. Called from graphics, ui code etc.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 4 | g3_* functions&lt;br /&gt;
| g3_start_frame() / g3_start_frame_func() &lt;br /&gt;
| Starts the render frame.&lt;br /&gt;
|-&lt;br /&gt;
| g3_draw_poly() &lt;br /&gt;
| Draws a textured polygon. Called from graphics, model and object code (eg. nebula, warp points, weapons etc.)&lt;br /&gt;
|-&lt;br /&gt;
| g3_draw_line()&lt;br /&gt;
| Draws a line in 3d. Used to show grids etc.&lt;br /&gt;
|-&lt;br /&gt;
| g3_draw_bitmap()&lt;br /&gt;
| Draws a 2d bitmap at a point 3d. Used for particle effects etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:3d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_Code_Reference&amp;diff=2022</id>
		<title>Source Code Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_Code_Reference&amp;diff=2022"/>
		<updated>2006-02-13T08:02:55Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: /* Freespace2 Code Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CVS Directory Structure==&lt;br /&gt;
The fs2_open CVS consists of several major components, each of which is kept in a separate directory:&lt;br /&gt;
&lt;br /&gt;
* Freespace2 Code base (code)&lt;br /&gt;
&lt;br /&gt;
Plus the following libraries:&lt;br /&gt;
* LUA Scripting language (lua)&lt;br /&gt;
* Jpeg library (libjpeg)&lt;br /&gt;
* Ogg Vorbis sound library (oggvorbis)&lt;br /&gt;
* DirectX 8 SDK (dx8sdk)&lt;br /&gt;
* DirectX 9 SDK (dx9sdk)&lt;br /&gt;
&lt;br /&gt;
===Libraries===&lt;br /&gt;
See msdn.microsoft.com for discussion of the DirectX libraries. For the other libraries, look in the README files for more info.&lt;br /&gt;
&lt;br /&gt;
===Freespace2 Code Base===&lt;br /&gt;
The main code consists of several subdirectories:&lt;br /&gt;
&lt;br /&gt;
* ai (Computer AI)&lt;br /&gt;
* [[Source anim|anim]] (Displaying .ani animated bitmaps)&lt;br /&gt;
* asteroid (Handle asteroids - movement, collisions, creating smaller asteriods when larger ones are blown up etc.)&lt;br /&gt;
* autopilot (Handles autopilot control - where if there are no enemies, travelling a long distance etc. control is temporarily switched to the computer)&lt;br /&gt;
* [[Source bmpman|bmpman]] (Manage 2d graphics files, such as .bmp, .tga, .jpg etc.)&lt;br /&gt;
* camera (???)&lt;br /&gt;
* cfile (File/directory management routines including .VP file handling that are OS independent eg. handles differences between Linux &amp;amp; Windows)&lt;br /&gt;
* cmdline (Handles command line switches, such as -mipmap etc.)&lt;br /&gt;
* cmeasure (Handles countermeasures - flares that the player &amp;amp; AI can drop to disrupt missiles)&lt;br /&gt;
* controlconfig (Configures keyboard/mouse/joystick controls)&lt;br /&gt;
* cutscene (Handles cutscene viewing)&lt;br /&gt;
* [[Source ddsutils|ddsutils]] (Handles compressed textures for 3d graphics cards that support it)&lt;br /&gt;
* debris (Creates &amp;amp; handles flying debris from exploding ships)&lt;br /&gt;
* debugconsole (Handles debugging console and file)&lt;br /&gt;
* decals (Adds support for painting decals - small 2d textures - onto ships etc.)&lt;br /&gt;
* demo (Allows you to save &amp;amp; playback games to show as demos)&lt;br /&gt;
* directx (Specific includes for the Microsoft DirectX library - Windows only)&lt;br /&gt;
* exceptionhandler (Deals with crashes, saving stack trace, system info etc.)&lt;br /&gt;
* fireball (Displays &amp;amp; handles fireballs and warping effects)&lt;br /&gt;
* freespace2 (Main code - handles engine initialisation, loading resources, plus windows resources like icons &amp;amp; dialog boxes)&lt;br /&gt;
* fs2open_pxo (Network code)&lt;br /&gt;
* gamehelp (Displays context sensitive help text)&lt;br /&gt;
* gamesequence (Handles progression of events during a campaign, such as entering a mission, showing credits etc.)&lt;br /&gt;
* gamesnd (Handles sounds &amp;amp; music)&lt;br /&gt;
* globalincs (Basic global constants &amp;amp; definitions, eg. version, colours)&lt;br /&gt;
* graphics (Low-level wrapper for all 2d &amp;amp; 3d graphics that handles different display engines (DirectX, OpenGL etc)&lt;br /&gt;
* hud (Handles the HUD - all the 2d cockpit graphics that the player can see eg. radar, ammo, escort list, sqaud etc)&lt;br /&gt;
* iff_defs (Handles traitor ships???)&lt;br /&gt;
* io (Handles IO devices, such as keyboard, mouse &amp;amp; joystick)&lt;br /&gt;
* irc (Adds support for an IRC chat client)&lt;br /&gt;
* [[Source jpgutils|jpgutils]] (Opens, reads JPG files)&lt;br /&gt;
* jumpnode (Displays &amp;amp; handles jump nodes)&lt;br /&gt;
* lab (???)&lt;br /&gt;
* lighting (Handles light sources, and their effect on ships)&lt;br /&gt;
* localization (Handles a global string table for translating all written text into foreign languages)&lt;br /&gt;
* math (Library of math routines for handling vectors, splines etc)&lt;br /&gt;
* menuui (Handles all the misc user interface, such as the main menu, tech room, campaign list etc)&lt;br /&gt;
* mission (Handles general mission actions eg. briefing, goals, training info, in-mission messages etc)&lt;br /&gt;
* missionui (Handles UI for general mission actions)&lt;br /&gt;
* mm (Headers for older MS Multimedia library)&lt;br /&gt;
* model (Displays and handles ship models eg. reading files, collission detection etc)&lt;br /&gt;
* nebula (Displays and handles nebulae)&lt;br /&gt;
* network (All multi-player code, eg. UI, network traffic)&lt;br /&gt;
* object (High-level code to handle all objects eg. ships, weapons, debris, asteroids, waypoints, fireballs, shockwaves)&lt;br /&gt;
* observer (???)&lt;br /&gt;
* osapi (Wraps low-level Operating System calls, for different OS, eg. multi-threads, windows event loops, main app window)&lt;br /&gt;
* palman (Handles bitmap palettes - different colour maps for the same 2d bitmap)&lt;br /&gt;
* parse (Handles scripting files, eg. python, LUA etc)&lt;br /&gt;
* particle (Displays and handles particles, such as smoke, fire) &lt;br /&gt;
* [[Source pcxutils|pcxutils]] (Handles 2d .pcx graphics files)&lt;br /&gt;
* physics (Handles realistic physical behaviour of objects, such as ship acceleration/deceleration, rotation etc.)&lt;br /&gt;
* playerman (Handles pilot files &amp;amp; player ship movement)&lt;br /&gt;
* popup (Displays &amp;amp; handles 2d pop-up windows, eg. when the player dies)&lt;br /&gt;
* radar (Displays &amp;amp; handles the radar)&lt;br /&gt;
* render (High-level 3d rendering code)&lt;br /&gt;
* ship (Displays &amp;amp; handles all ship code, eg. shields, afterburner)&lt;br /&gt;
* sound (Low-level sound, speach &amp;amp; music routines)&lt;br /&gt;
* species_defs (Reads species_defs.tbl to handle different behaviour for different species)&lt;br /&gt;
* starfield (Displays &amp;amp; handles background images such as starfields, nebulae etc)&lt;br /&gt;
* stats (Displays &amp;amp; handles player statistics, medals etc)&lt;br /&gt;
* [[Source tgautils|tgautils]] (Handles .tga 2d graphics files)&lt;br /&gt;
* ui (Low-level user inteface routines eg. buttons, scrollbars)&lt;br /&gt;
* vcodec (Handles player voice streaming for multiplayer ???)&lt;br /&gt;
* weapon (Displays &amp;amp; handles everything to do with weapons)&lt;br /&gt;
* windows_stub (Low-level windows functions that are needed for Unix)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also some directories that are only used for generating tools (not part of the main fs2 executable):&lt;br /&gt;
* cfilearchiver (Creates .VP file archives)&lt;br /&gt;
* cfileextractor (Extracts .VP file archives)&lt;br /&gt;
* cryptstring (Creates encrypted strings)&lt;br /&gt;
* fred2 (The FReespace EDitor)&lt;br /&gt;
* inetfile (FTP &amp;amp; HTTP network handlers)&lt;br /&gt;
* scramble (Utility to scramble file tables for the Demo version)&lt;br /&gt;
* variables (???)&lt;br /&gt;
* wxfred2 (Cross-platform version of FRED2)&lt;br /&gt;
&lt;br /&gt;
==Category Browser==&lt;br /&gt;
The subdirectories above are also categorised by function. See the Category:Source Code to browse this way.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_pcxutils&amp;diff=4828</id>
		<title>Source pcxutils</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_pcxutils&amp;diff=4828"/>
		<updated>2006-02-13T07:53:23Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains low-level routines for loading .pcx 2d graphics files.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 2 | pcx_* functions&lt;br /&gt;
| pcx_read_bitmap*() &lt;br /&gt;
| Various funcitons to read the bitmap contents from different format .pcx files (8 bit, 16 bit etc.).&lt;br /&gt;
|-&lt;br /&gt;
| pcx_read_header() &lt;br /&gt;
| Reads the header from a .pcx file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:2d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_Code_Reference&amp;diff=2021</id>
		<title>Source Code Reference</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_Code_Reference&amp;diff=2021"/>
		<updated>2006-02-13T07:46:36Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: /* Freespace2 Code Base */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==CVS Directory Structure==&lt;br /&gt;
The fs2_open CVS consists of several major components, each of which is kept in a separate directory:&lt;br /&gt;
&lt;br /&gt;
* Freespace2 Code base (code)&lt;br /&gt;
&lt;br /&gt;
Plus the following libraries:&lt;br /&gt;
* LUA Scripting language (lua)&lt;br /&gt;
* Jpeg library (libjpeg)&lt;br /&gt;
* Ogg Vorbis sound library (oggvorbis)&lt;br /&gt;
* DirectX 8 SDK (dx8sdk)&lt;br /&gt;
* DirectX 9 SDK (dx9sdk)&lt;br /&gt;
&lt;br /&gt;
===Libraries===&lt;br /&gt;
See msdn.microsoft.com for discussion of the DirectX libraries. For the other libraries, look in the README files for more info.&lt;br /&gt;
&lt;br /&gt;
===Freespace2 Code Base===&lt;br /&gt;
The main code consists of several subdirectories:&lt;br /&gt;
&lt;br /&gt;
* ai (Computer AI)&lt;br /&gt;
* [[Source anim|anim]] (Displaying .ani animated bitmaps)&lt;br /&gt;
* asteroid (Handle asteroids - movement, collisions, creating smaller asteriods when larger ones are blown up etc.)&lt;br /&gt;
* autopilot (Handles autopilot control - where if there are no enemies, travelling a long distance etc. control is temporarily switched to the computer)&lt;br /&gt;
* [[Source bmpman|bmpman]] (Manage 2d graphics files, such as .bmp, .tga, .jpg etc.)&lt;br /&gt;
* camera (???)&lt;br /&gt;
* cfile (File/directory management routines including .VP file handling that are OS independent eg. handles differences between Linux &amp;amp; Windows)&lt;br /&gt;
* cmdline (Handles command line switches, such as -mipmap etc.)&lt;br /&gt;
* cmeasure (Handles countermeasures - flares that the player &amp;amp; AI can drop to disrupt missiles)&lt;br /&gt;
* controlconfig (Configures keyboard/mouse/joystick controls)&lt;br /&gt;
* cutscene (Handles cutscene viewing)&lt;br /&gt;
* [[Source ddsutils|ddsutils]] (Handles compressed textures for 3d graphics cards that support it)&lt;br /&gt;
* debris (Creates &amp;amp; handles flying debris from exploding ships)&lt;br /&gt;
* debugconsole (Handles debugging console and file)&lt;br /&gt;
* decals (Adds support for painting decals - small 2d textures - onto ships etc.)&lt;br /&gt;
* demo (Allows you to save &amp;amp; playback games to show as demos)&lt;br /&gt;
* directx (Specific includes for the Microsoft DirectX library - Windows only)&lt;br /&gt;
* exceptionhandler (Deals with crashes, saving stack trace, system info etc.)&lt;br /&gt;
* fireball (Displays &amp;amp; handles fireballs and warping effects)&lt;br /&gt;
* freespace2 (Main code - handles engine initialisation, loading resources, plus windows resources like icons &amp;amp; dialog boxes)&lt;br /&gt;
* fs2open_pxo (Network code)&lt;br /&gt;
* gamehelp (Displays context sensitive help text)&lt;br /&gt;
* gamesequence (Handles progression of events during a campaign, such as entering a mission, showing credits etc.)&lt;br /&gt;
* gamesnd (Handles sounds &amp;amp; music)&lt;br /&gt;
* globalincs (Basic global constants &amp;amp; definitions, eg. version, colours)&lt;br /&gt;
* graphics (Low-level wrapper for all 2d &amp;amp; 3d graphics that handles different display engines (DirectX, OpenGL etc)&lt;br /&gt;
* hud (Handles the HUD - all the 2d cockpit graphics that the player can see eg. radar, ammo, escort list, sqaud etc)&lt;br /&gt;
* iff_defs (Handles traitor ships???)&lt;br /&gt;
* io (Handles IO devices, such as keyboard, mouse &amp;amp; joystick)&lt;br /&gt;
* irc (Adds support for an IRC chat client)&lt;br /&gt;
* [[Source jpgutils|jpgutils]] (Opens, reads JPG files)&lt;br /&gt;
* jumpnode (Displays &amp;amp; handles jump nodes)&lt;br /&gt;
* lab (???)&lt;br /&gt;
* lighting (Handles light sources, and their effect on ships)&lt;br /&gt;
* localization (Handles a global string table for translating all written text into foreign languages)&lt;br /&gt;
* math (Library of math routines for handling vectors, splines etc)&lt;br /&gt;
* menuui (Handles all the misc user interface, such as the main menu, tech room, campaign list etc)&lt;br /&gt;
* mission (Handles general mission actions eg. briefing, goals, training info, in-mission messages etc)&lt;br /&gt;
* missionui (Handles UI for general mission actions)&lt;br /&gt;
* mm (Headers for older MS Multimedia library)&lt;br /&gt;
* model (Displays and handles ship models eg. reading files, collission detection etc)&lt;br /&gt;
* nebula (Displays and handles nebulae)&lt;br /&gt;
* network (All multi-player code, eg. UI, network traffic)&lt;br /&gt;
* object (High-level code to handle all objects eg. ships, weapons, debris, asteroids, waypoints, fireballs, shockwaves)&lt;br /&gt;
* observer (???)&lt;br /&gt;
* osapi (Wraps low-level Operating System calls, for different OS, eg. multi-threads, windows event loops, main app window)&lt;br /&gt;
* palman (Handles bitmap palettes - different colour maps for the same 2d bitmap)&lt;br /&gt;
* parse (Handles scripting files, eg. python, LUA etc)&lt;br /&gt;
* particle (Displays and handles particles, such as smoke, fire) &lt;br /&gt;
* pcxutils (Handles 2d .pcx graphics files)&lt;br /&gt;
* physics (Handles realistic physical behaviour of objects, such as ship acceleration/deceleration, rotation etc.)&lt;br /&gt;
* playerman (Handles pilot files &amp;amp; player ship movement)&lt;br /&gt;
* popup (Displays &amp;amp; handles 2d pop-up windows, eg. when the player dies)&lt;br /&gt;
* radar (Displays &amp;amp; handles the radar)&lt;br /&gt;
* render (High-level 3d rendering code)&lt;br /&gt;
* ship (Displays &amp;amp; handles all ship code, eg. shields, afterburner)&lt;br /&gt;
* sound (Low-level sound, speach &amp;amp; music routines)&lt;br /&gt;
* species_defs (Reads species_defs.tbl to handle different behaviour for different species)&lt;br /&gt;
* starfield (Displays &amp;amp; handles background images such as starfields, nebulae etc)&lt;br /&gt;
* stats (Displays &amp;amp; handles player statistics, medals etc)&lt;br /&gt;
* [[Source tgautils|tgautils]] (Handles .tga 2d graphics files)&lt;br /&gt;
* ui (Low-level user inteface routines eg. buttons, scrollbars)&lt;br /&gt;
* vcodec (Handles player voice streaming for multiplayer ???)&lt;br /&gt;
* weapon (Displays &amp;amp; handles everything to do with weapons)&lt;br /&gt;
* windows_stub (Low-level windows functions that are needed for Unix)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
There are also some directories that are only used for generating tools (not part of the main fs2 executable):&lt;br /&gt;
* cfilearchiver (Creates .VP file archives)&lt;br /&gt;
* cfileextractor (Extracts .VP file archives)&lt;br /&gt;
* cryptstring (Creates encrypted strings)&lt;br /&gt;
* fred2 (The FReespace EDitor)&lt;br /&gt;
* inetfile (FTP &amp;amp; HTTP network handlers)&lt;br /&gt;
* scramble (Utility to scramble file tables for the Demo version)&lt;br /&gt;
* variables (???)&lt;br /&gt;
* wxfred2 (Cross-platform version of FRED2)&lt;br /&gt;
&lt;br /&gt;
==Category Browser==&lt;br /&gt;
The subdirectories above are also categorised by function. See the Category:Source Code to browse this way.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Category:Source_Code&amp;diff=2997</id>
		<title>Category:Source Code</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Category:Source_Code&amp;diff=2997"/>
		<updated>2006-02-13T07:46:01Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below is a list of different categories of functionality and where to find them.&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Category:2d_Graphics&amp;diff=4824</id>
		<title>Category:2d Graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Category:2d_Graphics&amp;diff=4824"/>
		<updated>2006-02-13T07:45:07Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below are references to parts of the source code that deal with loading and display of 2d graphics.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Category:2d_Graphics&amp;diff=2019</id>
		<title>Category:2d Graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Category:2d_Graphics&amp;diff=2019"/>
		<updated>2006-02-13T07:42:51Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below are references to parts of the source code that deal with loading and display of 2d graphics.&lt;br /&gt;
&lt;br /&gt;
[[Category:Source Code Categories]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_tgautils&amp;diff=4825</id>
		<title>Source tgautils</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_tgautils&amp;diff=4825"/>
		<updated>2006-02-13T07:40:47Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains low-level routines for loading .tga 2d graphics files.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 2 | targa_* functions&lt;br /&gt;
| targa_read_bitmap() &lt;br /&gt;
| Called from bmpman to read the bitmap contents from a .tga file.&lt;br /&gt;
|-&lt;br /&gt;
| targa_read_header() &lt;br /&gt;
| Called from bmpman to read the header from a .tga file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:2d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Category:2d_Graphics&amp;diff=2018</id>
		<title>Category:2d Graphics</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Category:2d_Graphics&amp;diff=2018"/>
		<updated>2006-02-13T07:37:10Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Below are references to parts of the source code that deal with loading and display of 2d graphics.&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_jpgutils&amp;diff=4823</id>
		<title>Source jpgutils</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_jpgutils&amp;diff=4823"/>
		<updated>2006-02-13T07:32:06Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains low-level routines for loading .jpg 2d graphics files.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 2 | jpeg_* functions&lt;br /&gt;
| jpeg_read_bitmap() &lt;br /&gt;
| Reads the bitmap contents from a .jpg file.&lt;br /&gt;
|-&lt;br /&gt;
| jpeg_read_header() &lt;br /&gt;
| Reads the header from a .jpg file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:2d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_ddsutils&amp;diff=4822</id>
		<title>Source ddsutils</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_ddsutils&amp;diff=4822"/>
		<updated>2006-02-13T07:29:43Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains low-level routines for loading .dds 2d graphics files.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 2 | dds_* functions&lt;br /&gt;
| dds_read_bitmap() &lt;br /&gt;
| Called from bmpman to read the bitmap contents from a .dds file.&lt;br /&gt;
|-&lt;br /&gt;
| dds_read_header() &lt;br /&gt;
| Called from bmpman to read the header from a .dds file&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:2d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_anim&amp;diff=4821</id>
		<title>Source anim</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_anim&amp;diff=4821"/>
		<updated>2006-02-13T07:24:04Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains high-level routines for loading &amp;amp; playing 2d .ani animation files.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 2 | anim_* functions&lt;br /&gt;
| anim_load() &lt;br /&gt;
| Loads a .ani file&lt;br /&gt;
|-&lt;br /&gt;
| anim_play() &lt;br /&gt;
| Plays an animation file. Used in the main hall UI, mission briefing etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:2d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
	<entry>
		<id>https://wiki.hard-light.org/index.php?title=Source_bmpman&amp;diff=4820</id>
		<title>Source bmpman</title>
		<link rel="alternate" type="text/html" href="https://wiki.hard-light.org/index.php?title=Source_bmpman&amp;diff=4820"/>
		<updated>2006-02-13T06:51:59Z</updated>

		<summary type="html">&lt;p&gt;Rousseau: Basic info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Summary==&lt;br /&gt;
Contains high-level routines for loading &amp;amp; manipulating 2d graphics files, in .tga, .jpg, .dds, or .pcx format.&lt;br /&gt;
&lt;br /&gt;
==Major Classes/Functions/Structs==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Class/Group/Struct&lt;br /&gt;
! Method/Function/Element&lt;br /&gt;
! Notes&lt;br /&gt;
|-&lt;br /&gt;
| rowspan = 2 | bm_* functions&lt;br /&gt;
| bm_load() &lt;br /&gt;
| Loads a graphic from a file. Used all over the place (UI, effects etc)&lt;br /&gt;
|-&lt;br /&gt;
| bm_create() &lt;br /&gt;
| Allocates memory space for a bitmap (eg. for animations, or where a graphic is created in memory rather than loaded).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:2d Graphics]]&lt;/div&gt;</summary>
		<author><name>Rousseau</name></author>
	</entry>
</feed>