]> icculus.org git repositories - divverent/nexuiz.git/blob - scmenu/source/system/debug.qc
-Added some #define constants and a template for Item_List.
[divverent/nexuiz.git] / scmenu / source / system / debug.qc
1 // SCMenu
2 // system/debug.qc
3
4
5 /*
6 ===================
7 Sys_Debug_Init
8 ===================
9 */
10 void() Sys_Debug_Init =
11 {
12         registercvar( SYSTEM_CVAR_VERSION_BUILDDATE, SYSTEM_CVAR_VERSION_BUILDDATE_VALUE, CVAR_READONLY );
13         registercvar( SYSTEM_CVAR_VERSION_BUILDTIME, SYSTEM_CVAR_VERSION_BUILDTIME_VALUE, CVAR_READONLY );
14         registercvar( SYSTEM_CVAR_VERSION, SYSTEM_CVAR_VERSION_VALUE, CVAR_READONLY );
15
16         registercvar( SYSTEM_CVAR_DEBUG, ftos( SYSTEM_CVAR_DEBUG_DEFAULT ), 0 );
17         registercvar( SYSTEM_CVAR_DEBUG_REF, ftos( SYSTEM_CVAR_DEBUG_REF_DEFAULT ), 0 );
18         registercvar( SYSTEM_CVAR_DEBUG_RUNFLAG, ftos( SYSTEM_CVAR_DEBUG_RUNFLAG_DEFAULT ), 0 );
19         registercvar( SYSTEM_CVAR_DEBUG_PROCESS, ftos( SYSTEM_CVAR_DEBUG_PROCESS_DEFAULT ), 0 );
20         registercvar( SYSTEM_CVAR_DEBUG_MGFX, ftos( SYSTEM_CVAR_DEBUG_MGFX_DEFAULT ), 0 );
21         registercvar( SYSTEM_CVAR_DEBUG_STRUCTURE, ftos( SYSTEM_CVAR_DEBUG_STRUCTURE_DEFAULT ), 0 );
22         registercvar( SYSTEM_CVAR_DEBUG_PARSER, SYSTEM_CVAR_DEBUG_PARSER_DEFAULT, 0 );
23         registercvar( SYSTEM_CVAR_DEBUG_PROCESS_FILTER, SYSTEM_CVAR_DEBUG_PROCESS_FILTER_DEFAULT, 0 );
24         registercvar( SYSTEM_CVAR_DEBUG_SOUND, ftos( SYSTEM_CVAR_DEBUG_SOUND_DEFAULT ), 0 );
25         registercvar( SYSTEM_CVAR_DEBUG_DUMP_NAMES, "0", 0 );
26         registercvar( SYSTEM_CVAR_DEBUG_AREA, ftos( SYSTEM_CVAR_DEBUG_AREA_DEFAULT ), 0 );
27         registercvar( SYSTEM_CVAR_DEBUG_STEP, ftos( SYSTEM_CVAR_DEBUG_STEP_DEFAULT ), 0 );
28         registercvar( SYSTEM_CVAR_DEBUG_MOUSE, ftos( SYSTEM_CVAR_DEBUG_MOUSE_DEFAULT ), 0 );
29 };
30
31 /*
32 ===================
33 Sys_Debug_Frame
34 ===================
35 */
36 void() Sys_Debug_Frame =
37 {
38         local float lTemp1, lTemp2;
39         sys_debug = cvar( SYSTEM_CVAR_DEBUG );
40         if( sys_debug ) {
41                 sys_debug_ref = cvar( SYSTEM_CVAR_DEBUG_REF );
42
43                 sys_debug_area = cvar( SYSTEM_CVAR_DEBUG_AREA );
44
45                 sys_debug_sound = cvar( SYSTEM_CVAR_DEBUG_SOUND );
46
47                 sys_debug_structure = cvar( SYSTEM_CVAR_DEBUG_STRUCTURE );
48
49                 sys_debug_mouse = cvar( SYSTEM_CVAR_DEBUG_MOUSE );
50
51                 if( cvar( SYSTEM_CVAR_DEBUG_STEP ) ) {
52                         m_hide();
53                         print( "Menu: -- Step: Time:", ftos( gettime() ), "\n" );
54                 }
55
56                 sys_debug_runflag = cvar( SYSTEM_CVAR_DEBUG_RUNFLAG );
57                 // FIXME: evil bug in fteqcc!! dont pass function calls to switches
58                 switch( sys_debug_runflag ) {
59                 case 0:
60                         sys_debug_runflag = false;
61                         break;
62                 case 1:
63                         cvar_set( SYSTEM_CVAR_DEBUG_RUNFLAG, "0" );
64                 case 2:
65                         sys_debug_runflag = true;
66                         break;
67                 }
68
69                 sys_debug_process = cvar( SYSTEM_CVAR_DEBUG_PROCESS );
70                 switch( sys_debug_process ) {
71                 case 0:
72                         sys_debug_process = false;
73                         break;
74                 case 1:
75                         cvar_set( SYSTEM_CVAR_DEBUG_PROCESS, "0" );
76                 case 2:
77                         sys_debug_process = true;
78                         break;
79                 }
80
81                 sys_debug_mgfx = cvar( SYSTEM_CVAR_DEBUG_MGFX );
82                 switch( sys_debug_mgfx ) {
83                 case 0:
84                         sys_debug_mgfx = false;
85                         break;
86                 case 1:
87                         cvar_set( SYSTEM_CVAR_DEBUG_MGFX, "0" );
88                 case 2:
89                         sys_debug_mgfx = true;
90                         break;
91                 }
92
93                 lTemp1 = tokenize( str_cvar( SYSTEM_CVAR_DEBUG_PROCESS_FILTER ) );
94                 sys_debug_process_filter = 0;
95                 for( lTemp2 = 0 ; lTemp2 < lTemp1 ; ++lTemp2 )
96                         if( argv( lTemp2 ) == "runflag" )
97                                 sys_debug_process_filter = sys_debug_process_filter | MENU_PROCESS_RUNFLAG;
98                         else if( argv( lTemp2 ) == "draw" )
99                                 sys_debug_process_filter = sys_debug_process_filter | MENU_PROCESS_DRAW;
100                         else if( argv( lTemp2 ) == "update" )
101                                 sys_debug_process_filter = sys_debug_process_filter | MENU_PROCESS_UPDATE;
102                         else if( argv( lTemp2 ) == "mouse" )
103                                 sys_debug_process_filter = sys_debug_process_filter | MENU_PROCESS_MOUSE;
104                         else if( argv( lTemp2 ) == "key" )
105                                 sys_debug_process_filter = sys_debug_process_filter | MENU_PROCESS_KEY;
106
107                 lTemp1 = tokenize( str_cvar( SYSTEM_CVAR_DEBUG_PARSER ) );
108                 sys_debug_parser = 0;
109                 for( lTemp2 = 0 ; lTemp2 < lTemp1 ; ++lTemp2 )
110                         if( argv( lTemp2 ) == "info" )
111                                 sys_debug_parser = sys_debug_parser | PARSER_INFO;
112                         else if( argv( lTemp2 ) == "high" )
113                                 sys_debug_parser = sys_debug_parser | PARSER_HIGH;
114                         else if( argv( lTemp2 ) == "low" )
115                                 sys_debug_parser = sys_debug_parser | PARSER_LOW;
116
117
118         } else {
119                 sys_debug_ref = false;
120                 sys_debug_area = false;
121                 sys_debug_sound = false;
122                 sys_debug_runflag = 0;
123                 sys_debug_process = 0;
124                 sys_debug_mgfx = false;
125                 sys_debug_structure = 0;
126                 sys_debug_parser = 0;
127                 sys_debug_process_filter = 0;
128                 sys_debug_mouse = 0;
129         }
130         if( cvar( SYSTEM_CVAR_DEBUG_DUMP_NAMES ) ) {
131                 Sys_Debug_DumpNames();
132                 cvar_set( SYSTEM_CVAR_DEBUG_DUMP_NAMES, "0" );
133         }
134         sys_debug_cursor_localpos = '-1 -1 -1';
135 };
136
137 /*
138 ===================
139 Sys_Debug_Draw
140 ===================
141 */
142 void() Sys_Debug_Draw =
143 {
144         if( sys_debug_mouse == 1 )
145                 Cursor_PrintInfo( '1 0 0', strcat( ftos( floor( sys_debug_cursor_localpos_x ) ),
146                         " ", ftos( floor( sys_debug_cursor_localpos_y ) ) ), '9 9 0', '0.8 0.8 0.8',
147                         1, DRAWFLAG_ADDITIVE );
148         else if( sys_debug_mouse == 2 )
149                 Cursor_PrintInfo( '1 0 0', strcat( ftos( floor( Cursor_Position_x ) ), " ",
150                         ftos( floor( Cursor_Position_y ) ) ), '9 9 0', '0.8 0.8 0.8', 1, DRAWFLAG_ADDITIVE );
151 };
152
153 /*
154 ===================
155 Sys_Debug_DumpNames
156 ===================
157 */
158 void() Sys_Debug_DumpNames =
159 {
160         local entity lNode;
161
162         print( "Menu: Dumping names..\n" );
163
164         lNode = null_entity;
165         while( (lNode = nextent( lNode )) != null_entity )
166                 print( "Menu: ", etos( lNode ), " <-> ", lNode.name, "\n" );
167         print( "\n" );
168 };