X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=mvm_cmds.c;h=05f50f9be814f6efbf6634c21a5121405e5996d4;hp=594fdedc7bff2a5afb23fb0c3d1bf3d19af67655;hb=053e5e3f2137d880aaaa31ca8c5705c7edc15782;hpb=fc5fe8b95af8c3e314abe62dc0727e5bd2efa04a diff --git a/mvm_cmds.c b/mvm_cmds.c index 594fdedc..05f50f9b 100644 --- a/mvm_cmds.c +++ b/mvm_cmds.c @@ -1,4 +1,8 @@ +#include "quakedef.h" + #include "prvm_cmds.h" +#include "clvm_cmds.h" +#include "menu.h" //============================================================================ // Menu @@ -15,6 +19,14 @@ char *vm_m_extensions = "DP_QC_UNLIMITEDTEMPSTRINGS " "DP_QC_CMD " "DP_QC_STRREPLACE " +"DP_FONT_VARIABLEWIDTH " +"DP_GECKO_SUPPORT " +"DP_QC_RENDER_SCENE " +"DP_QC_STRINGBUFFERS " +"DP_QC_CRC16 " +"FTE_STRINGS " +"DP_QC_CVAR_TYPE " +"DP_QC_URI_ESCAPE " ; /* @@ -81,6 +93,10 @@ void VM_M_setkeydest(void) // key_menu key_dest = key_menu; break; + case 3: + // key_menu_grabbed + key_dest = key_menu_grabbed; + break; case 1: // key_message // key_dest = key_message @@ -101,7 +117,7 @@ void VM_M_getkeydest(void) { VM_SAFEPARMCOUNT(0,VM_M_getkeydest); - // key_game = 0, key_message = 1, key_menu = 2, unknown = 3 + // key_game = 0, key_message = 1, key_menu = 2, key_menu_grabbed = 3, unknown = -1 switch(key_dest) { case key_game: @@ -110,12 +126,15 @@ void VM_M_getkeydest(void) case key_menu: PRVM_G_FLOAT(OFS_RETURN) = 2; break; + case key_menu_grabbed: + PRVM_G_FLOAT(OFS_RETURN) = 3; + break; case key_message: // not supported // PRVM_G_FLOAT(OFS_RETURN) = 1; // break; default: - PRVM_G_FLOAT(OFS_RETURN) = 3; + PRVM_G_FLOAT(OFS_RETURN) = -1; } } @@ -195,7 +214,6 @@ VM_M_getresolution vector getresolution(float number) ========= */ -extern unsigned short video_resolutions[][2]; void VM_M_getresolution(void) { int nr; @@ -203,9 +221,9 @@ void VM_M_getresolution(void) nr = (int)PRVM_G_FLOAT(OFS_PARM0); - - PRVM_G_VECTOR(OFS_RETURN)[0] = video_resolutions[nr][0]; - PRVM_G_VECTOR(OFS_RETURN)[1] = video_resolutions[nr][1]; + // FIXME bounds check + PRVM_G_VECTOR(OFS_RETURN)[0] = video_resolutions[nr].width; + PRVM_G_VECTOR(OFS_RETURN)[1] = video_resolutions[nr].height; PRVM_G_VECTOR(OFS_RETURN)[2] = 0; } @@ -575,7 +593,7 @@ refreshserverlist() void VM_M_refreshserverlist( void ) { VM_SAFEPARMCOUNT( 0, VM_M_refreshserverlist ); - ServerList_QueryList(true, false); + ServerList_QueryList(false, true, false, false); } /* @@ -768,642 +786,662 @@ static void VM_M_copyentity (void) } prvm_builtin_t vm_m_builtins[] = { -NULL, // #0 NULL function (not callable) -VM_checkextension, // #1 -VM_error, // #2 -VM_objerror, // #3 -VM_print, // #4 -VM_bprint, // #5 -VM_sprint, // #6 -VM_centerprint, // #7 -VM_normalize, // #8 -VM_vlen, // #9 -VM_vectoyaw, // #10 -VM_vectoangles, // #11 -VM_random, // #12 -VM_localcmd, // #13 -VM_cvar, // #14 -VM_cvar_set, // #15 -VM_dprint, // #16 -VM_ftos, // #17 -VM_fabs, // #18 -VM_vtos, // #19 -VM_etos, // #20 -VM_stof, // #21 -VM_spawn, // #22 -VM_remove, // #23 -VM_find, // #24 -VM_findfloat, // #25 -VM_findchain, // #26 -VM_findchainfloat, // #27 -VM_precache_file, // #28 -VM_precache_sound, // #29 -VM_coredump, // #30 -VM_traceon, // #31 -VM_traceoff, // #32 -VM_eprint, // #33 -VM_rint, // #34 -VM_floor, // #35 -VM_ceil, // #36 -VM_nextent, // #37 -VM_sin, // #38 -VM_cos, // #39 -VM_sqrt, // #40 -VM_randomvec, // #41 -VM_registercvar, // #42 -VM_min, // #43 -VM_max, // #44 -VM_bound, // #45 -VM_pow, // #46 -VM_M_copyentity, // #47 -VM_fopen, // #48 -VM_fclose, // #49 -VM_fgets, // #50 -VM_fputs, // #51 -VM_strlen, // #52 -VM_strcat, // #53 -VM_substring, // #54 -VM_stov, // #55 -VM_strzone, // #56 -VM_strunzone, // #57 -VM_tokenize, // #58 -VM_argv, // #59 -VM_isserver, // #60 -VM_clientcount, // #61 -VM_clientstate, // #62 -VM_clcommand, // #63 -VM_changelevel, // #64 -VM_localsound, // #65 -VM_getmousepos, // #66 -VM_gettime, // #67 -VM_loadfromdata, // #68 -VM_loadfromfile, // #69 -VM_modulo, // #70 -VM_cvar_string, // #71 -VM_crash, // #72 -VM_stackdump, // #73 -VM_search_begin, // #74 -VM_search_end, // #75 -VM_search_getsize, // #76 -VM_search_getfilename, // #77 -VM_chr, // #78 -VM_itof, // #79 -VM_ftoe, // #80 -VM_itof, // #81 isString -VM_altstr_count, // #82 -VM_altstr_prepare, // #83 -VM_altstr_get, // #84 -VM_altstr_set, // #85 -VM_altstr_ins, // #86 -VM_findflags, // #87 -VM_findchainflags, // #88 -VM_cvar_defstring, // #89 -NULL, // #90 -NULL, // #91 -NULL, // #92 -NULL, // #93 -NULL, // #94 -NULL, // #95 -NULL, // #96 -NULL, // #97 -NULL, // #98 -NULL, // #99 -NULL, // #100 -NULL, // #101 -NULL, // #102 -NULL, // #103 -NULL, // #104 -NULL, // #105 -NULL, // #106 -NULL, // #107 -NULL, // #108 -NULL, // #109 -NULL, // #110 -NULL, // #111 -NULL, // #112 -NULL, // #113 -NULL, // #114 -NULL, // #115 -NULL, // #116 -NULL, // #117 -NULL, // #118 -NULL, // #119 -NULL, // #120 -NULL, // #121 -NULL, // #122 -NULL, // #123 -NULL, // #124 -NULL, // #125 -NULL, // #126 -NULL, // #127 -NULL, // #128 -NULL, // #129 -NULL, // #130 -NULL, // #131 -NULL, // #132 -NULL, // #133 -NULL, // #134 -NULL, // #135 -NULL, // #136 -NULL, // #137 -NULL, // #138 -NULL, // #139 -NULL, // #140 -NULL, // #141 -NULL, // #142 -NULL, // #143 -NULL, // #144 -NULL, // #145 -NULL, // #146 -NULL, // #147 -NULL, // #148 -NULL, // #149 -NULL, // #150 -NULL, // #151 -NULL, // #152 -NULL, // #153 -NULL, // #154 -NULL, // #155 -NULL, // #156 -NULL, // #157 -NULL, // #158 -NULL, // #159 -NULL, // #160 -NULL, // #161 -NULL, // #162 -NULL, // #163 -NULL, // #164 -NULL, // #165 -NULL, // #166 -NULL, // #167 -NULL, // #168 -NULL, // #169 -NULL, // #170 -NULL, // #171 -NULL, // #172 -NULL, // #173 -NULL, // #174 -NULL, // #175 -NULL, // #176 -NULL, // #177 -NULL, // #178 -NULL, // #179 -NULL, // #180 -NULL, // #181 -NULL, // #182 -NULL, // #183 -NULL, // #184 -NULL, // #185 -NULL, // #186 -NULL, // #187 -NULL, // #188 -NULL, // #189 -NULL, // #190 -NULL, // #191 -NULL, // #192 -NULL, // #193 -NULL, // #194 -NULL, // #195 -NULL, // #196 -NULL, // #197 -NULL, // #198 -NULL, // #199 -NULL, // #200 -NULL, // #201 -NULL, // #202 -NULL, // #203 -NULL, // #204 -NULL, // #205 -NULL, // #206 -NULL, // #207 -NULL, // #208 -NULL, // #209 -NULL, // #210 -NULL, // #211 -NULL, // #212 -NULL, // #213 -NULL, // #214 -NULL, // #215 -NULL, // #216 -NULL, // #217 -NULL, // #218 -NULL, // #219 -NULL, // #220 -NULL, // #221 -NULL, // #222 -NULL, // #223 -NULL, // #224 -NULL, // #225 -NULL, // #226 -NULL, // #227 -NULL, // #228 -NULL, // #229 -NULL, // #230 -NULL, // #231 -NULL, // #232 -NULL, // #233 -NULL, // #234 -NULL, // #235 -NULL, // #236 -NULL, // #237 -NULL, // #238 -NULL, // #239 -NULL, // #240 -NULL, // #241 -NULL, // #242 -NULL, // #243 -NULL, // #244 -NULL, // #245 -NULL, // #246 -NULL, // #247 -NULL, // #248 -NULL, // #249 -NULL, // #250 -NULL, // #251 -NULL, // #252 -NULL, // #253 -NULL, // #254 -NULL, // #255 -NULL, // #256 -NULL, // #257 -NULL, // #258 -NULL, // #259 -NULL, // #260 -NULL, // #261 -NULL, // #262 -NULL, // #263 -NULL, // #264 -NULL, // #265 -NULL, // #266 -NULL, // #267 -NULL, // #268 -NULL, // #269 -NULL, // #270 -NULL, // #271 -NULL, // #272 -NULL, // #273 -NULL, // #274 -NULL, // #275 -NULL, // #276 -NULL, // #277 -NULL, // #278 -NULL, // #279 -NULL, // #280 -NULL, // #281 -NULL, // #282 -NULL, // #283 -NULL, // #284 -NULL, // #285 -NULL, // #286 -NULL, // #287 -NULL, // #288 -NULL, // #289 -NULL, // #290 -NULL, // #291 -NULL, // #292 -NULL, // #293 -NULL, // #294 -NULL, // #295 -NULL, // #296 -NULL, // #297 -NULL, // #298 -NULL, // #299 -NULL, // #300 -NULL, // #301 -NULL, // #302 -NULL, // #303 -NULL, // #304 -NULL, // #305 -NULL, // #306 -NULL, // #307 -NULL, // #308 -NULL, // #309 -NULL, // #310 -NULL, // #311 -NULL, // #312 -NULL, // #313 -NULL, // #314 -NULL, // #315 -NULL, // #316 -NULL, // #317 -NULL, // #318 -NULL, // #319 -NULL, // #320 -NULL, // #321 -NULL, // #322 -NULL, // #323 -NULL, // #324 -NULL, // #325 -NULL, // #326 -NULL, // #327 -NULL, // #328 -NULL, // #329 -NULL, // #330 -NULL, // #331 -NULL, // #332 -NULL, // #333 -NULL, // #334 -NULL, // #335 -NULL, // #336 -NULL, // #337 -NULL, // #338 -NULL, // #339 -NULL, // #340 -NULL, // #341 -NULL, // #342 -NULL, // #343 -NULL, // #344 -NULL, // #345 -NULL, // #346 -NULL, // #347 -NULL, // #348 -NULL, // #349 -NULL, // #350 -NULL, // #351 -NULL, // #352 -NULL, // #353 -NULL, // #354 -NULL, // #355 -NULL, // #356 -NULL, // #357 -NULL, // #358 -NULL, // #359 -NULL, // #360 -NULL, // #361 -NULL, // #362 -NULL, // #363 -NULL, // #364 -NULL, // #365 -NULL, // #366 -NULL, // #367 -NULL, // #368 -NULL, // #369 -NULL, // #370 -NULL, // #371 -NULL, // #372 -NULL, // #373 -NULL, // #374 -NULL, // #375 -NULL, // #376 -NULL, // #377 -NULL, // #378 -NULL, // #379 -NULL, // #380 -NULL, // #381 -NULL, // #382 -NULL, // #383 -NULL, // #384 -NULL, // #385 -NULL, // #386 -NULL, // #387 -NULL, // #388 -NULL, // #389 -NULL, // #390 -NULL, // #391 -NULL, // #392 -NULL, // #393 -NULL, // #394 -NULL, // #395 -NULL, // #396 -NULL, // #397 -NULL, // #398 -NULL, // #399 -NULL, // #400 -VM_M_WriteByte, // #401 -VM_M_WriteChar, // #402 -VM_M_WriteShort, // #403 -VM_M_WriteLong, // #404 -VM_M_WriteAngle, // #405 -VM_M_WriteCoord, // #406 -VM_M_WriteString, // #407 -VM_M_WriteEntity, // #408 -NULL, // #409 -NULL, // #410 -NULL, // #411 -NULL, // #412 -NULL, // #413 -NULL, // #414 -NULL, // #415 -NULL, // #416 -NULL, // #417 -NULL, // #418 -NULL, // #419 -NULL, // #420 -NULL, // #421 -NULL, // #422 -NULL, // #423 -NULL, // #424 -NULL, // #425 -NULL, // #426 -NULL, // #427 -NULL, // #428 -NULL, // #429 -NULL, // #430 -NULL, // #431 -NULL, // #432 -NULL, // #433 -NULL, // #434 -NULL, // #435 -NULL, // #436 -NULL, // #437 -NULL, // #438 -NULL, // #439 -NULL, // #440 -NULL, // #441 -NULL, // #442 -NULL, // #443 -NULL, // #444 -NULL, // #445 -NULL, // #446 -NULL, // #447 -NULL, // #448 -NULL, // #449 -NULL, // #450 -VM_iscachedpic, // #451 draw functions... -VM_precache_pic, // #452 -VM_freepic, // #453 -VM_drawcharacter, // #454 -VM_drawstring, // #455 -VM_drawpic, // #456 -VM_drawfill, // #457 -VM_drawsetcliparea, // #458 -VM_drawresetcliparea, // #459 -VM_getimagesize, // #460 -VM_cin_open, // #461 -VM_cin_close, // #462 -VM_cin_setstate, // #463 -VM_cin_getstate, // #464 -VM_cin_restart, // #465 -VM_drawline, // #466 -VM_drawcolorcodedstring, // #467 -VM_stringwidth, // #468 -VM_drawsubpic, // #469 -NULL, // #470 -VM_asin, // #471 float(float s) VM_asin (DP_QC_ASINACOSATANATAN2TAN) -VM_acos, // #472 float(float c) VM_acos (DP_QC_ASINACOSATANATAN2TAN) -VM_atan, // #473 float(float t) VM_atan (DP_QC_ASINACOSATANATAN2TAN) -VM_atan2, // #474 float(float c, float s) VM_atan2 (DP_QC_ASINACOSATANATAN2TAN) -VM_tan, // #475 float(float a) VM_tan (DP_QC_ASINACOSATANATAN2TAN) -VM_strlennocol, // #476 float(string s) : DRESK - String Length (not counting color codes) (DP_QC_STRINGCOLORFUNCTIONS) -VM_strdecolorize, // #477 string(string s) : DRESK - Decolorized String (DP_QC_STRINGCOLORFUNCTIONS) -VM_strftime, // #478 string(float uselocaltime, string format, ...) (DP_QC_STRFTIME) -VM_tokenizebyseparator, // #479 float(string s) tokenizebyseparator (DP_QC_TOKENIZEBYSEPARATOR) -VM_strtolower, // #480 string(string s) VM_strtolower : DRESK - Return string as lowercase -VM_strtoupper, // #481 string(string s) VM_strtoupper : DRESK - Return string as uppercase -NULL, // #482 -NULL, // #483 -VM_strreplace, // #484 string(string search, string replace, string subject) strreplace (DP_QC_STRREPLACE) -VM_strireplace, // #485 string(string search, string replace, string subject) strireplace (DP_QC_STRREPLACE) -NULL, // #486 -NULL, // #487 -NULL, // #488 -NULL, // #489 -NULL, // #490 -NULL, // #491 -NULL, // #492 -NULL, // #493 -NULL, // #494 -NULL, // #495 -NULL, // #496 -NULL, // #497 -NULL, // #498 -NULL, // #499 -NULL, // #500 -NULL, // #501 -NULL, // #502 -NULL, // #503 -NULL, // #504 -NULL, // #505 -NULL, // #506 -NULL, // #507 -NULL, // #508 -NULL, // #509 -NULL, // #510 -NULL, // #511 -NULL, // #512 -NULL, // #513 -NULL, // #514 -NULL, // #515 -NULL, // #516 -NULL, // #517 -NULL, // #518 -NULL, // #519 -NULL, // #520 -NULL, // #521 -NULL, // #522 -NULL, // #523 -NULL, // #524 -NULL, // #525 -NULL, // #526 -NULL, // #527 -NULL, // #528 -NULL, // #529 -NULL, // #530 -NULL, // #531 -NULL, // #532 -NULL, // #533 -NULL, // #534 -NULL, // #535 -NULL, // #536 -NULL, // #537 -NULL, // #538 -NULL, // #539 -NULL, // #540 -NULL, // #541 -NULL, // #542 -NULL, // #543 -NULL, // #544 -NULL, // #545 -NULL, // #546 -NULL, // #547 -NULL, // #548 -NULL, // #549 -NULL, // #550 -NULL, // #551 -NULL, // #552 -NULL, // #553 -NULL, // #554 -NULL, // #555 -NULL, // #556 -NULL, // #557 -NULL, // #558 -NULL, // #559 -NULL, // #560 -NULL, // #561 -NULL, // #562 -NULL, // #563 -NULL, // #564 -NULL, // #565 -NULL, // #566 -NULL, // #567 -NULL, // #568 -NULL, // #569 -NULL, // #570 -NULL, // #571 -NULL, // #572 -NULL, // #573 -NULL, // #574 -NULL, // #575 -NULL, // #576 -NULL, // #577 -NULL, // #578 -NULL, // #579 -NULL, // #580 -NULL, // #581 -NULL, // #582 -NULL, // #583 -NULL, // #584 -NULL, // #585 -NULL, // #586 -NULL, // #587 -NULL, // #588 -NULL, // #589 -NULL, // #590 -NULL, // #591 -NULL, // #592 -NULL, // #593 -NULL, // #594 -NULL, // #595 -NULL, // #596 -NULL, // #597 -NULL, // #598 -NULL, // #599 -NULL, // #600 -VM_M_setkeydest, // #601 menu functions... -VM_M_getkeydest, // #602 -VM_M_setmousetarget, // #603 -VM_M_getmousetarget, // #604 -VM_M_callfunction, // #605 -VM_writetofile, // #606 -VM_M_isfunction, // #607 -VM_M_getresolution, // #608 -VM_keynumtostring, // #609 -VM_M_findkeysforcommand, // #610 -VM_M_getserverliststat, // #611 -VM_M_getserverliststring, // #612 -VM_parseentitydata, // #613 -VM_stringtokeynum, // #614 -VM_M_resetserverlistmasks, // #615 -VM_M_setserverlistmaskstring,// #616 -VM_M_setserverlistmasknumber,// #617 -VM_M_resortserverlist, // #618 -VM_M_setserverlistsort, // #619 -VM_M_refreshserverlist, // #620 -VM_M_getserverlistnumber, // #621 -VM_M_getserverlistindexforkey,// #622 -VM_M_addwantedserverlistkey,// #623 -VM_M_getextresponse // #624 +NULL, // #0 NULL function (not callable) +VM_checkextension, // #1 +VM_error, // #2 +VM_objerror, // #3 +VM_print, // #4 +VM_bprint, // #5 +VM_sprint, // #6 +VM_centerprint, // #7 +VM_normalize, // #8 +VM_vlen, // #9 +VM_vectoyaw, // #10 +VM_vectoangles, // #11 +VM_random, // #12 +VM_localcmd, // #13 +VM_cvar, // #14 +VM_cvar_set, // #15 +VM_dprint, // #16 +VM_ftos, // #17 +VM_fabs, // #18 +VM_vtos, // #19 +VM_etos, // #20 +VM_stof, // #21 +VM_spawn, // #22 +VM_remove, // #23 +VM_find, // #24 +VM_findfloat, // #25 +VM_findchain, // #26 +VM_findchainfloat, // #27 +VM_precache_file, // #28 +VM_precache_sound, // #29 +VM_coredump, // #30 +VM_traceon, // #31 +VM_traceoff, // #32 +VM_eprint, // #33 +VM_rint, // #34 +VM_floor, // #35 +VM_ceil, // #36 +VM_nextent, // #37 +VM_sin, // #38 +VM_cos, // #39 +VM_sqrt, // #40 +VM_randomvec, // #41 +VM_registercvar, // #42 +VM_min, // #43 +VM_max, // #44 +VM_bound, // #45 +VM_pow, // #46 +VM_M_copyentity, // #47 +VM_fopen, // #48 +VM_fclose, // #49 +VM_fgets, // #50 +VM_fputs, // #51 +VM_strlen, // #52 +VM_strcat, // #53 +VM_substring, // #54 +VM_stov, // #55 +VM_strzone, // #56 +VM_strunzone, // #57 +VM_tokenize, // #58 +VM_argv, // #59 +VM_isserver, // #60 +VM_clientcount, // #61 +VM_clientstate, // #62 +VM_clcommand, // #63 +VM_changelevel, // #64 +VM_localsound, // #65 +VM_getmousepos, // #66 +VM_gettime, // #67 +VM_loadfromdata, // #68 +VM_loadfromfile, // #69 +VM_modulo, // #70 +VM_cvar_string, // #71 +VM_crash, // #72 +VM_stackdump, // #73 +VM_search_begin, // #74 +VM_search_end, // #75 +VM_search_getsize, // #76 +VM_search_getfilename, // #77 +VM_chr, // #78 +VM_itof, // #79 +VM_ftoe, // #80 +VM_itof, // #81 isString +VM_altstr_count, // #82 +VM_altstr_prepare, // #83 +VM_altstr_get, // #84 +VM_altstr_set, // #85 +VM_altstr_ins, // #86 +VM_findflags, // #87 +VM_findchainflags, // #88 +VM_cvar_defstring, // #89 +VM_CL_setmodel, // #90 void(entity e, string m) setmodel (QUAKE) +VM_CL_precache_model, // #91 void(string s) precache_model (QUAKE) +VM_CL_setorigin, // #92 void(entity e, vector o) setorigin (QUAKE) +NULL, // #93 +NULL, // #94 +NULL, // #95 +NULL, // #96 +NULL, // #97 +NULL, // #98 +NULL, // #99 +NULL, // #100 +NULL, // #101 +NULL, // #102 +NULL, // #103 +NULL, // #104 +NULL, // #105 +NULL, // #106 +NULL, // #107 +NULL, // #108 +NULL, // #109 +NULL, // #110 +NULL, // #111 +NULL, // #112 +NULL, // #113 +NULL, // #114 +NULL, // #115 +NULL, // #116 +NULL, // #117 +NULL, // #118 +NULL, // #119 +NULL, // #120 +NULL, // #121 +NULL, // #122 +NULL, // #123 +NULL, // #124 +NULL, // #125 +NULL, // #126 +NULL, // #127 +NULL, // #128 +NULL, // #129 +NULL, // #130 +NULL, // #131 +NULL, // #132 +NULL, // #133 +NULL, // #134 +NULL, // #135 +NULL, // #136 +NULL, // #137 +NULL, // #138 +NULL, // #139 +NULL, // #140 +NULL, // #141 +NULL, // #142 +NULL, // #143 +NULL, // #144 +NULL, // #145 +NULL, // #146 +NULL, // #147 +NULL, // #148 +NULL, // #149 +NULL, // #150 +NULL, // #151 +NULL, // #152 +NULL, // #153 +NULL, // #154 +NULL, // #155 +NULL, // #156 +NULL, // #157 +NULL, // #158 +NULL, // #159 +NULL, // #160 +NULL, // #161 +NULL, // #162 +NULL, // #163 +NULL, // #164 +NULL, // #165 +NULL, // #166 +NULL, // #167 +NULL, // #168 +NULL, // #169 +NULL, // #170 +NULL, // #171 +NULL, // #172 +NULL, // #173 +NULL, // #174 +NULL, // #175 +NULL, // #176 +NULL, // #177 +NULL, // #178 +NULL, // #179 +NULL, // #180 +NULL, // #181 +NULL, // #182 +NULL, // #183 +NULL, // #184 +NULL, // #185 +NULL, // #186 +NULL, // #187 +NULL, // #188 +NULL, // #189 +NULL, // #190 +NULL, // #191 +NULL, // #192 +NULL, // #193 +NULL, // #194 +NULL, // #195 +NULL, // #196 +NULL, // #197 +NULL, // #198 +NULL, // #199 +NULL, // #200 +NULL, // #201 +NULL, // #202 +NULL, // #203 +NULL, // #204 +NULL, // #205 +NULL, // #206 +NULL, // #207 +NULL, // #208 +NULL, // #209 +NULL, // #210 +NULL, // #211 +NULL, // #212 +NULL, // #213 +NULL, // #214 +NULL, // #215 +NULL, // #216 +NULL, // #217 +NULL, // #218 +NULL, // #219 +NULL, // #220 +VM_strstrofs, // #221 float(string str, string sub[, float startpos]) strstrofs (FTE_STRINGS) +VM_str2chr, // #222 float(string str, float ofs) str2chr (FTE_STRINGS) +VM_chr2str, // #223 string(float c, ...) chr2str (FTE_STRINGS) +VM_strconv, // #224 string(float ccase, float calpha, float cnum, string s, ...) strconv (FTE_STRINGS) +VM_strpad, // #225 string(float chars, string s, ...) strpad (FTE_STRINGS) +VM_infoadd, // #226 string(string info, string key, string value, ...) infoadd (FTE_STRINGS) +VM_infoget, // #227 string(string info, string key) infoget (FTE_STRINGS) +VM_strncmp, // #228 float(string s1, string s2, float len) strncmp (FTE_STRINGS) +VM_strncasecmp, // #229 float(string s1, string s2) strcasecmp (FTE_STRINGS) +VM_strncasecmp, // #230 float(string s1, string s2, float len) strncasecmp (FTE_STRINGS) +NULL, // #231 +NULL, // #232 +NULL, // #233 +NULL, // #234 +NULL, // #235 +NULL, // #236 +NULL, // #237 +NULL, // #238 +NULL, // #239 +NULL, // #240 +NULL, // #241 +NULL, // #242 +NULL, // #243 +NULL, // #244 +NULL, // #245 +NULL, // #246 +NULL, // #247 +NULL, // #248 +NULL, // #249 +NULL, // #250 +NULL, // #251 +NULL, // #252 +NULL, // #253 +NULL, // #254 +NULL, // #255 +NULL, // #256 +NULL, // #257 +NULL, // #258 +NULL, // #259 +NULL, // #260 +NULL, // #261 +NULL, // #262 +NULL, // #263 +NULL, // #264 +NULL, // #265 +NULL, // #266 +NULL, // #267 +NULL, // #268 +NULL, // #269 +NULL, // #270 +NULL, // #271 +NULL, // #272 +NULL, // #273 +NULL, // #274 +NULL, // #275 +NULL, // #276 +NULL, // #277 +NULL, // #278 +NULL, // #279 +NULL, // #280 +NULL, // #281 +NULL, // #282 +NULL, // #283 +NULL, // #284 +NULL, // #285 +NULL, // #286 +NULL, // #287 +NULL, // #288 +NULL, // #289 +NULL, // #290 +NULL, // #291 +NULL, // #292 +NULL, // #293 +NULL, // #294 +NULL, // #295 +NULL, // #296 +NULL, // #297 +NULL, // #298 +NULL, // #299 +// CSQC range #300-#399 +VM_CL_R_ClearScene, // #300 void() clearscene (DP_QC_RENDER_SCENE) +VM_CL_R_AddEntities, // #301 void(float mask) addentities (DP_QC_RENDER_SCENE) +VM_CL_R_AddEntity, // #302 void(entity ent) addentity (DP_QC_RENDER_SCENE) +VM_CL_R_SetView, // #303 float(float property, ...) setproperty (DP_QC_RENDER_SCENE) +VM_CL_R_RenderScene, // #304 void() renderscene (DP_QC_RENDER_SCENE) +VM_CL_R_AddDynamicLight, // #305 void(vector org, float radius, vector lightcolours) adddynamiclight (DP_QC_RENDER_SCENE) +VM_CL_R_PolygonBegin, // #306 void(string texturename, float flag[, float is2d, float lines]) R_BeginPolygon (DP_QC_RENDER_SCENE) +VM_CL_R_PolygonVertex, // #307 void(vector org, vector texcoords, vector rgb, float alpha) R_PolygonVertex (DP_QC_RENDER_SCENE) +VM_CL_R_PolygonEnd, // #308 void() R_EndPolygon +NULL/*VM_CL_R_LoadWorldModel*/, // #309 void(string modelname) R_LoadWorldModel +// TODO: rearrange and merge all builtin lists and share as many extensions as possible between all VM instances [1/27/2008 Andreas] +VM_CL_setattachment, // #310 void(entity e, entity tagentity, string tagname) setattachment (DP_GFX_QUAKE3MODELTAGS) (DP_QC_RENDER_SCENE) +VM_CL_gettagindex, // #311 float(entity ent, string tagname) gettagindex (DP_QC_GETTAGINFO) (DP_QC_RENDER_SCENE) +VM_CL_gettaginfo, // #312 vector(entity ent, float tagindex) gettaginfo (DP_QC_GETTAGINFO) (DP_QC_RENDER_SCENE) +NULL, // #313 +NULL, // #314 +NULL, // #315 +NULL, // #316 +NULL, // #317 +NULL, // #318 +NULL, // #319 +NULL, // #320 +NULL, // #321 +NULL, // #322 +NULL, // #323 +NULL, // #324 +NULL, // #325 +NULL, // #326 +NULL, // #327 +NULL, // #328 +NULL, // #329 +NULL, // #330 +NULL, // #331 +NULL, // #332 +NULL, // #333 +NULL, // #334 +NULL, // #335 +NULL, // #336 +NULL, // #337 +NULL, // #338 +NULL, // #339 +NULL, // #340 +NULL, // #341 +NULL, // #342 +NULL, // #343 +NULL, // #344 +NULL, // #345 +NULL, // #346 +NULL, // #347 +NULL, // #348 +NULL, // #349 +NULL, // #350 +NULL, // #351 +NULL, // #352 +NULL, // #353 +NULL, // #354 +NULL, // #355 +NULL, // #356 +NULL, // #357 +NULL, // #358 +NULL, // #359 +NULL, // #360 +NULL, // #361 +NULL, // #362 +NULL, // #363 +NULL, // #364 +NULL, // #365 +NULL, // #366 +NULL, // #367 +NULL, // #368 +NULL, // #369 +NULL, // #370 +NULL, // #371 +NULL, // #372 +NULL, // #373 +NULL, // #374 +NULL, // #375 +NULL, // #376 +NULL, // #377 +NULL, // #378 +NULL, // #379 +NULL, // #380 +NULL, // #381 +NULL, // #382 +NULL, // #383 +NULL, // #384 +NULL, // #385 +NULL, // #386 +NULL, // #387 +NULL, // #388 +NULL, // #389 +NULL, // #390 +NULL, // #391 +NULL, // #392 +NULL, // #393 +NULL, // #394 +NULL, // #395 +NULL, // #396 +NULL, // #397 +NULL, // #398 +NULL, // #399 +NULL, // #400 +VM_M_WriteByte, // #401 +VM_M_WriteChar, // #402 +VM_M_WriteShort, // #403 +VM_M_WriteLong, // #404 +VM_M_WriteAngle, // #405 +VM_M_WriteCoord, // #406 +VM_M_WriteString, // #407 +VM_M_WriteEntity, // #408 +NULL, // #409 +NULL, // #410 +NULL, // #411 +NULL, // #412 +NULL, // #413 +NULL, // #414 +NULL, // #415 +NULL, // #416 +NULL, // #417 +NULL, // #418 +NULL, // #419 +NULL, // #420 +NULL, // #421 +NULL, // #422 +NULL, // #423 +NULL, // #424 +NULL, // #425 +NULL, // #426 +NULL, // #427 +NULL, // #428 +NULL, // #429 +NULL, // #430 +NULL, // #431 +NULL, // #432 +NULL, // #433 +NULL, // #434 +NULL, // #435 +NULL, // #436 +NULL, // #437 +NULL, // #438 +NULL, // #439 +VM_buf_create, // #440 float() buf_create (DP_QC_STRINGBUFFERS) +VM_buf_del, // #441 void(float bufhandle) buf_del (DP_QC_STRINGBUFFERS) +VM_buf_getsize, // #442 float(float bufhandle) buf_getsize (DP_QC_STRINGBUFFERS) +VM_buf_copy, // #443 void(float bufhandle_from, float bufhandle_to) buf_copy (DP_QC_STRINGBUFFERS) +VM_buf_sort, // #444 void(float bufhandle, float sortpower, float backward) buf_sort (DP_QC_STRINGBUFFERS) +VM_buf_implode, // #445 string(float bufhandle, string glue) buf_implode (DP_QC_STRINGBUFFERS) +VM_bufstr_get, // #446 string(float bufhandle, float string_index) bufstr_get (DP_QC_STRINGBUFFERS) +VM_bufstr_set, // #447 void(float bufhandle, float string_index, string str) bufstr_set (DP_QC_STRINGBUFFERS) +VM_bufstr_add, // #448 float(float bufhandle, string str, float order) bufstr_add (DP_QC_STRINGBUFFERS) +VM_bufstr_free, // #449 void(float bufhandle, float string_index) bufstr_free (DP_QC_STRINGBUFFERS) +NULL, // #450 +VM_iscachedpic, // #451 draw functions... +VM_precache_pic, // #452 +VM_freepic, // #453 +VM_drawcharacter, // #454 +VM_drawstring, // #455 +VM_drawpic, // #456 +VM_drawfill, // #457 +VM_drawsetcliparea, // #458 +VM_drawresetcliparea, // #459 +VM_getimagesize, // #460 +VM_cin_open, // #461 +VM_cin_close, // #462 +VM_cin_setstate, // #463 +VM_cin_getstate, // #464 +VM_cin_restart, // #465 +VM_drawline, // #466 +VM_drawcolorcodedstring, // #467 +VM_stringwidth, // #468 +VM_drawsubpic, // #469 +NULL, // #470 +VM_asin, // #471 float(float s) VM_asin (DP_QC_ASINACOSATANATAN2TAN) +VM_acos, // #472 float(float c) VM_acos (DP_QC_ASINACOSATANATAN2TAN) +VM_atan, // #473 float(float t) VM_atan (DP_QC_ASINACOSATANATAN2TAN) +VM_atan2, // #474 float(float c, float s) VM_atan2 (DP_QC_ASINACOSATANATAN2TAN) +VM_tan, // #475 float(float a) VM_tan (DP_QC_ASINACOSATANATAN2TAN) +VM_strlennocol, // #476 float(string s) : DRESK - String Length (not counting color codes) (DP_QC_STRINGCOLORFUNCTIONS) +VM_strdecolorize, // #477 string(string s) : DRESK - Decolorized String (DP_QC_STRINGCOLORFUNCTIONS) +VM_strftime, // #478 string(float uselocaltime, string format, ...) (DP_QC_STRFTIME) +VM_tokenizebyseparator, // #479 float(string s) tokenizebyseparator (DP_QC_TOKENIZEBYSEPARATOR) +VM_strtolower, // #480 string(string s) VM_strtolower : DRESK - Return string as lowercase +VM_strtoupper, // #481 string(string s) VM_strtoupper : DRESK - Return string as uppercase +NULL, // #482 +NULL, // #483 +VM_strreplace, // #484 string(string search, string replace, string subject) strreplace (DP_QC_STRREPLACE) +VM_strireplace, // #485 string(string search, string replace, string subject) strireplace (DP_QC_STRREPLACE) +NULL, // #486 +VM_gecko_create, // #487 float gecko_create( string name ) +VM_gecko_destroy, // #488 void gecko_destroy( string name ) +VM_gecko_navigate, // #489 void gecko_navigate( string name, string URI ) +VM_gecko_keyevent, // #490 float gecko_keyevent( string name, float key, float eventtype ) +VM_gecko_movemouse, // #491 void gecko_mousemove( string name, float x, float y ) +VM_gecko_resize, // #492 void gecko_resize( string name, float w, float h ) +VM_gecko_get_texture_extent, // #493 vector gecko_get_texture_extent( string name ) +VM_crc16, // #494 float(float caseinsensitive, string s, ...) crc16 = #494 (DP_QC_CRC16) +VM_cvar_type, // #495 float(string name) cvar_type = #495; (DP_QC_CVAR_TYPE) +NULL, // #496 +NULL, // #497 +NULL, // #498 +NULL, // #499 +NULL, // #500 +NULL, // #501 +NULL, // #502 +NULL, // #503 +NULL, // #504 +NULL, // #505 +NULL, // #506 +NULL, // #507 +NULL, // #508 +NULL, // #509 +VM_uri_escape, // #510 string(string in) uri_escape = #510; +VM_uri_unescape, // #511 string(string in) uri_unescape = #511; +NULL, // #512 +NULL, // #513 +NULL, // #514 +NULL, // #515 +NULL, // #516 +NULL, // #517 +NULL, // #518 +NULL, // #519 +NULL, // #520 +NULL, // #521 +NULL, // #522 +NULL, // #523 +NULL, // #524 +NULL, // #525 +NULL, // #526 +NULL, // #527 +NULL, // #528 +NULL, // #529 +NULL, // #530 +NULL, // #531 +NULL, // #532 +NULL, // #533 +NULL, // #534 +NULL, // #535 +NULL, // #536 +NULL, // #537 +NULL, // #538 +NULL, // #539 +NULL, // #540 +NULL, // #541 +NULL, // #542 +NULL, // #543 +NULL, // #544 +NULL, // #545 +NULL, // #546 +NULL, // #547 +NULL, // #548 +NULL, // #549 +NULL, // #550 +NULL, // #551 +NULL, // #552 +NULL, // #553 +NULL, // #554 +NULL, // #555 +NULL, // #556 +NULL, // #557 +NULL, // #558 +NULL, // #559 +NULL, // #560 +NULL, // #561 +NULL, // #562 +NULL, // #563 +NULL, // #564 +NULL, // #565 +NULL, // #566 +NULL, // #567 +NULL, // #568 +NULL, // #569 +NULL, // #570 +NULL, // #571 +NULL, // #572 +NULL, // #573 +NULL, // #574 +NULL, // #575 +NULL, // #576 +NULL, // #577 +NULL, // #578 +NULL, // #579 +NULL, // #580 +NULL, // #581 +NULL, // #582 +NULL, // #583 +NULL, // #584 +NULL, // #585 +NULL, // #586 +NULL, // #587 +NULL, // #588 +NULL, // #589 +NULL, // #590 +NULL, // #591 +NULL, // #592 +NULL, // #593 +NULL, // #594 +NULL, // #595 +NULL, // #596 +NULL, // #597 +NULL, // #598 +NULL, // #599 +NULL, // #600 +VM_M_setkeydest, // #601 void setkeydest(float dest) +VM_M_getkeydest, // #602 float getkeydest(void) +VM_M_setmousetarget, // #603 void setmousetarget(float trg) +VM_M_getmousetarget, // #604 float getmousetarget(void) +VM_M_callfunction, // #605 void callfunction(...) +VM_writetofile, // #606 void writetofile(float fhandle, entity ent) +VM_M_isfunction, // #607 float isfunction(string function_name) +VM_M_getresolution, // #608 vector getresolution(float number) +VM_keynumtostring, // #609 string keynumtostring(float keynum) +VM_M_findkeysforcommand, // #610 string findkeysforcommand(string command) +VM_M_getserverliststat, // #611 float gethostcachevalue(float type) +VM_M_getserverliststring, // #612 string gethostcachestring(float type, float hostnr) +VM_parseentitydata, // #613 void parseentitydata(entity ent, string data) +VM_stringtokeynum, // #614 float stringtokeynum(string key) +VM_M_resetserverlistmasks, // #615 void resethostcachemasks(void) +VM_M_setserverlistmaskstring, // #616 void sethostcachemaskstring(float mask, float fld, string str, float op) +VM_M_setserverlistmasknumber, // #617 void sethostcachemasknumber(float mask, float fld, float num, float op) +VM_M_resortserverlist, // #618 void resorthostcache(void) +VM_M_setserverlistsort, // #619 void sethostcachesort(float fld, float descending) +VM_M_refreshserverlist, // #620 void refreshhostcache(void) +VM_M_getserverlistnumber, // #621 float gethostcachenumber(float fld, float hostnr) +VM_M_getserverlistindexforkey,// #622 float gethostcacheindexforkey(string key) +VM_M_addwantedserverlistkey, // #623 void addwantedhostcachekey(string key) +VM_M_getextresponse // #624 string getextresponse(void) }; const int vm_m_numbuiltins = sizeof(vm_m_builtins) / sizeof(prvm_builtin_t); void VM_M_Cmd_Init(void) { + r_refdef_scene_t *scene; + VM_Cmd_Init(); + VM_Polygons_Reset(); + + scene = R_GetScenePointer( RST_MENU ); + + memset (scene, 0, sizeof (*scene)); + + scene->maxtempentities = 128; + scene->tempentities = (entity_render_t*) Mem_Alloc(prog->progs_mempool, sizeof(entity_render_t) * scene->maxtempentities); + + scene->maxentities = MAX_EDICTS + 256 + 512; + scene->entities = (entity_render_t **)Mem_Alloc(prog->progs_mempool, sizeof(entity_render_t *) * scene->maxentities); + + scene->ambient = 32.0f; } void VM_M_Cmd_Reset(void) { + // note: the menu's render entities are automatically freed when the prog's pool is freed + //VM_Cmd_Init(); VM_Cmd_Reset(); + VM_Polygons_Reset(); }