Get VoreTournament code to compile with gmqcc. To be compiled with the same parameter...
authorMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Mon, 10 Jun 2013 21:13:27 +0000 (00:13 +0300)
committerMirceaKitsune <sonichedgehog_hyperblast00@yahoo.com>
Mon, 10 Jun 2013 21:13:27 +0000 (00:13 +0300)
38 files changed:
data/qcsrc/client/Defs.qc
data/qcsrc/client/Main.qc
data/qcsrc/client/csqc_builtins.qc
data/qcsrc/client/ctf.qc
data/qcsrc/client/main.qh
data/qcsrc/client/miscfunctions.qc
data/qcsrc/common/gamecommand.qc
data/qcsrc/common/mapinfo.qc
data/qcsrc/common/util.qh
data/qcsrc/menu/item/button.c
data/qcsrc/menu/menu.qc
data/qcsrc/menu/msys.qh
data/qcsrc/menu/oo/constructors.h
data/qcsrc/menu/skin-customizables.inc
data/qcsrc/menu/skin.qh
data/qcsrc/menu/voret/inputbox.c
data/qcsrc/server/antilag.qc
data/qcsrc/server/bot/havocbot/havocbot.qc
data/qcsrc/server/bot/scripting.qc
data/qcsrc/server/cl_physics.qc
data/qcsrc/server/cl_player.qc
data/qcsrc/server/func_breakable.qc
data/qcsrc/server/g_subs.qc
data/qcsrc/server/g_world.qc
data/qcsrc/server/keyhunt.qc
data/qcsrc/server/keyhunt.qh
data/qcsrc/server/miscfunctions.qc
data/qcsrc/server/mode_onslaught.qc
data/qcsrc/server/pathlib/movenode.qc
data/qcsrc/server/pathlib/pathlib.qh
data/qcsrc/server/sys.qh
data/qcsrc/server/t_items.qc
data/qcsrc/server/t_plats.qc
data/qcsrc/server/t_quake.qc
data/qcsrc/server/tturrets/include/turrets_early.qh
data/qcsrc/server/tturrets/system/system_damage.qc
data/qcsrc/server/w_common.qc
docs/TODO.txt

index e9ba774fcb08300ecd8431554628b806035f44cd..143b9af551b473a19e8a7ad31342348b3d86e2ff 100644 (file)
@@ -1,6 +1,3 @@
-#pragma flag off fastarrays // make dp behave with new fteqcc versions. remove when dp bug with fteqcc fastarrays is fixed\r
-\r
-\r
 //NOTE: THIS IS AN INTERFACE FILE. DO NOT EDIT.\r
 //MODIFYING THIS FILE CAN RESULT IN CRC ERRORS.\r
 //YOU HAVE BEEN WARNED.\r
index b1ae0350a9ad380178e563b96f6ebedfb3bc6c8e..84e69a5b35725edc601eeebc405c229620a27633 100644 (file)
@@ -33,9 +33,8 @@ void() menu_show_error =
 // CSQC_Init : Called every time the CSQC code is initialized (essentially at map load)\r
 // Useful for precaching things\r
 \r
-void() menu_sub_null =\r
-{\r
-};\r
+float(float, float, float) menu_sub_null_float = { };\r
+void () menu_sub_null_void  = { };\r
 \r
 #ifdef USE_FTE\r
 float __engine_check;\r
@@ -71,7 +70,7 @@ void CSQC_Init(void)
        drawfont = FONT_USER+1;\r
        menu_visible = FALSE;\r
        menu_show = menu_show_error;\r
-       menu_action = menu_sub_null;\r
+       menu_action = menu_sub_null_float;\r
 \r
        for(i = 0; i < 255; ++i)\r
                if(getplayerkey(i, "viewentity") == "")\r
@@ -972,8 +971,8 @@ void Ent_Remove()
 \r
        self.enttype = 0;\r
        self.classname = "";\r
-       self.draw = menu_sub_null;\r
-       self.entremove = menu_sub_null;\r
+       self.draw = menu_sub_null_void;\r
+       self.entremove = menu_sub_null_void;\r
        // TODO possibly set more stuff to defaults\r
 }\r
 // CSQC_Ent_Remove : Called when the server requests a SSQC / CSQC entity to be removed.  Essentially call remove(self) as well.\r
index c5ba47e99bdc421cf1ffa3ddcdf764296b074b0b..2736feb0c1b95bf4e044140ef68274ee472f8fdb 100644 (file)
@@ -3,7 +3,6 @@ void(entity e, vector o) setorigin      = #2;
 void (entity e, string m)                                              setmodel = #3;\r
 void(entity e, vector min, vector max) setsize = #4;\r
 \r
-void ()                                                                        break = #6;\r
 float ()                                                               random = #7;\r
 void (entity e, float chan, string samp, float vol, float atten)       sound = #8;\r
 vector (vector v)                                                      normalize = #9;\r
index 63b639a1f1c3b1e6ba37650ed79f60e656afc0ff..9b6374d4f7147d43fe4d321aee6e3718bd080e71 100644 (file)
@@ -12,7 +12,7 @@ void() menu_close =
 {\r
        menu_visible = false;\r
        menu_show = menu_show_error;\r
-       menu_action = menu_sub_null;\r
+       menu_action = menu_sub_null_float;\r
        \r
        /*if(ctf_temp_1)\r
          strunzone(ctf_temp_1);*/\r
index e16c1088af8f734f0fae581a6bf218db8607563b..5d8799498c28d6cbb5cf221b54d26b81be181eb7 100644 (file)
@@ -1,5 +1,3 @@
-const string string_null;\r
-\r
 // --------------------------------------------------------------------------\r
 // MENU Functionality\r
 \r
@@ -11,7 +9,8 @@ const string string_null;
 #define DATABUF_NEXT (5*maxclients)\r
 \r
 void() menu_show_error;\r
-void() menu_sub_null;\r
+float(float, float, float) menu_sub_null_float;\r
+void () menu_sub_null_void;\r
 \r
 float menu_visible;\r
 var void() menu_show;\r
index 687f8a2ce31f6320a61405553de94acaab653313..dcbeca3eda41e1004ec7a01421f8d0d9e0f6606f 100644 (file)
@@ -1,4 +1,4 @@
-var float(string text, float handleColors, vector fontSize) stringwidth;\r
+float(string text, float handleColors, vector fontSize) stringwidth;\r
 \r
 entity players;\r
 entity teams;\r
index a5cab5952f5519884bf34dff4066ff9e0769d18e..50990c91a06ca065117ad6ca9ef40028916316d5 100644 (file)
@@ -828,7 +828,7 @@ float GameCommand_Generic(string command)
                return TRUE;\r
        }\r
        else if(argv(0) == "records") {\r
-               print(records_reply);\r
+               //print(records_reply); I HAVE NO CLUE HOW TO FIX THIS!\r
                return TRUE;\r
        }\r
        else if(argv(0) == "rankings") {\r
index 5f58477e77d4a67e5991dbdba276815a69e9e243..f31bc5323284201425a474210df48c9e2843da23 100644 (file)
@@ -38,7 +38,7 @@ void MapInfo_Cache_Store()
                return;\r
 \r
        s = db_get(_MapInfo_Cache_DB_NameToIndex, MapInfo_Map_bspname);\r
-       if(!s) // empty string is NOT valid here!\r
+       if(s == "")\r
        {\r
                i = buf_getsize(_MapInfo_Cache_Buf_IndexToMapData);\r
                db_put(_MapInfo_Cache_DB_NameToIndex, MapInfo_Map_bspname, ftos(i));\r
@@ -64,7 +64,7 @@ float MapInfo_Cache_Retrieve(string map)
                return 0;\r
 \r
        s = db_get(_MapInfo_Cache_DB_NameToIndex, map);\r
-       if(!s)\r
+       if(s == "")\r
                return 0;\r
        i = stof(s);\r
 \r
@@ -76,6 +76,7 @@ float MapInfo_Cache_Retrieve(string map)
        MapInfo_Map_supportedGametypes = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));\r
        MapInfo_Map_supportedFeatures = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));\r
        MapInfo_Map_flags = stof(bufstr_get(_MapInfo_Cache_Buf_IndexToMapData, ++i));\r
+\r
        return 1;\r
 }\r
 \r
@@ -86,6 +87,8 @@ float _MapInfo_globhandle;
 string _MapInfo_GlobItem(float i)\r
 {\r
        string s;\r
+       if(!_MapInfo_globopen)\r
+               return string_null;\r
        s = search_getfilename(_MapInfo_globhandle, i);\r
        return substring(s, 5, strlen(s) - 9); // without maps/ and .bsp\r
 }\r
@@ -93,11 +96,19 @@ string _MapInfo_GlobItem(float i)
 void MapInfo_Enumerate()\r
 {\r
        if(_MapInfo_globopen)\r
+       {\r
                search_end(_MapInfo_globhandle);\r
+               _MapInfo_globopen = 0;\r
+       }\r
        MapInfo_Cache_Invalidate();\r
        _MapInfo_globhandle = search_begin("maps/*.bsp", TRUE, TRUE);\r
-       _MapInfo_globcount = search_getsize(_MapInfo_globhandle);\r
-       _MapInfo_globopen = 1;\r
+       if(_MapInfo_globhandle >= 0)\r
+       {\r
+               _MapInfo_globcount = search_getsize(_MapInfo_globhandle);\r
+               _MapInfo_globopen = 1;\r
+       }\r
+       else\r
+               _MapInfo_globcount = 0;\r
 }\r
 \r
 // filter the info by game type mask (updates MapInfo_count)\r
index ec704494393eebf68662fd5f5a2e287391a31884..97298d89114d52caf010c158ad96b5f63b29001c 100644 (file)
@@ -5,7 +5,7 @@
        #define func __merge__##otherfunc \\r
        #else \\r
        #define func otherfunc \\r
-       #endif\r
+       #endif \\r
 \r
 // this returns a tempstring containing a copy of s with additional \n newlines added, it also replaces \n in the text with a real newline\r
 // NOTE: s IS allowed to be a tempstring\r
@@ -15,7 +15,7 @@ string wordwrap(string s, float l);
 void wordwrap_sprint(string s, float l);\r
 #endif\r
 #endif\r
-void wordwrap_cb(string s, float l, void(string) callback)\r
+void wordwrap_cb(string s, float l, void(string) callback);\r
 \r
 #ifndef SVQC\r
 string draw_currentSkin;\r
@@ -111,7 +111,11 @@ vector mi_pictexcoord3; // texcoords of the image corners (after transforming, t
 void get_mi_min_max_texcoords(float mode);\r
 #endif\r
 \r
+#ifndef GMQCC\r
 #define FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(x) void reference_##x() { x = x; }\r
+#else\r
+#define FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(x)\r
+#endif\r
 \r
 float almost_equals(float a, float b);\r
 float almost_in_bounds(float a, float b, float c);\r
@@ -192,8 +196,15 @@ void WriteInt24_t(float dest, float val);
 #endif\r
 \r
 // the NULL function\r
-const var void func_null(void); FTEQCC_YOU_SUCK_THIS_IS_NOT_UNREFERENCED(func_null)\r
-const var string string_null;\r
+#ifdef GMQCC\r
+#define null nil\r
+#define func_null nil\r
+#define string_null nil\r
+#else\r
+#define null SUB_null\r
+var void func_null(void);\r
+var string string_null;\r
+#endif\r
 float float2range11(float f);\r
 float float2range01(float f);\r
 \r
index a3753c5fbbfbdc26b4ff605f21642fab71b56b82..ea4f2ac202ec96bb50d8048b93b395eb4af4a239 100644 (file)
@@ -8,7 +8,7 @@ CLASS(Button) EXTENDS(Label)
        METHOD(Button, mousePress, float(entity, vector))\r
        METHOD(Button, mouseDrag, float(entity, vector))\r
        METHOD(Button, mouseRelease, float(entity, vector))\r
-       ATTRIB(Button, onClick, void(entity, entity), SUB_Null)\r
+       ATTRIB(Button, onClick, void(entity, entity), func_null)\r
        ATTRIB(Button, onClickEntity, entity, NULL)\r
        ATTRIB(Button, src, string, string_null)\r
        ATTRIB(Button, srcSuffix, string, string_null)\r
@@ -169,4 +169,4 @@ void drawButton(entity me)
                else if(!me.focused && me.playedfocus)\r
                        me.playedfocus = 0;\r
 }\r
-#endif
\ No newline at end of file
+#endif\r
index fb10fa3e68a92e12ed10134f2c7df6a7ad9d43a2..1260f85810f017122612fe82e77ae068d5037cfb 100644 (file)
@@ -18,7 +18,7 @@ float menuMouseMode;
 \r
 void SUB_Null() { };\r
 \r
-void() m_init =\r
+void m_init()\r
 {\r
        localcmd("maxplayers $menu_maxplayers\n"); // make sure maxplayers is set if we start a game with the map command\r
        cvar_set("_menu_alpha", "0");\r
@@ -91,7 +91,7 @@ void UpdateConWidthHeight()
        }\r
 }\r
 \r
-void() m_init_delayed =\r
+void m_init_delayed()\r
 {\r
        float fh, glob, n, i;\r
        string s;\r
@@ -163,7 +163,7 @@ void() m_init_delayed =
                m_display(); // delayed menu display\r
 };\r
 \r
-void(float key, float ascii) m_keyup =\r
+void m_keyup (float key, float ascii)\r
 {\r
        if(!menuInitialized)\r
                return;\r
@@ -187,7 +187,7 @@ void(float key, float ascii) m_keyup =
        if(key == K_SHIFT) menuShiftState -= (menuShiftState & S_SHIFT);\r
 };\r
 \r
-void(float key, float ascii) m_keydown =\r
+void m_keydown (float key, float ascii)\r
 {\r
        if(!menuInitialized)\r
                return;\r
@@ -264,7 +264,7 @@ void draw_Picture_Aligned(vector algn, float scalemode, string img, float a)
        draw_Picture(org, img, isz, '1 1 1', a);\r
 }\r
 \r
-void(string img, float a, string algn, float force1) drawBackground =\r
+void drawBackground (string img, float a, string algn, float force1)\r
 {\r
        vector v;\r
        float i, l;\r
@@ -533,7 +533,7 @@ void m_tooltip(vector pos)
        }\r
 }\r
 \r
-void() m_draw =\r
+void m_draw()\r
 {\r
        float t;\r
        float realFrametime;\r
@@ -707,7 +707,7 @@ void() m_draw =
        frametime = 0;\r
 };\r
 \r
-void() m_display =\r
+void m_display()\r
 {\r
        Menu_Active = true;\r
        setkeydest(KEY_MENU);\r
@@ -724,7 +724,7 @@ void() m_display =
        main.showNotify(main);\r
 };\r
 \r
-void() m_hide =\r
+void m_hide()\r
 {\r
        Menu_Active = false;\r
        setkeydest(KEY_GAME);\r
@@ -737,7 +737,7 @@ void() m_hide =
        main.hideNotify(main);\r
 };\r
 \r
-void() m_toggle =\r
+void m_toggle()\r
 {\r
        if(Menu_Active)\r
                m_hide();\r
@@ -745,7 +745,7 @@ void() m_toggle =
                m_display();\r
 };\r
 \r
-void() m_shutdown =\r
+void m_shutdown()\r
 {\r
        entity e;\r
 \r
@@ -811,7 +811,7 @@ void m_setpointerfocus(entity wnd)
        }\r
 }\r
 \r
-void(string itemname) m_goto =\r
+void m_goto(string itemname)\r
 {\r
        entity e;\r
        if(!menuInitialized)\r
@@ -839,7 +839,7 @@ void(string itemname) m_goto =
        }\r
 }\r
 \r
-void() m_goto_skin_selector =\r
+void m_goto_skin_selector()\r
 {\r
        if(!menuInitialized)\r
                return;\r
@@ -847,7 +847,7 @@ void() m_goto_skin_selector =
        m_goto("skinselector");\r
 }\r
 \r
-void() m_goto_video_settings =\r
+void m_goto_video_settings()\r
 {\r
        if(!menuInitialized)\r
                return;\r
index 2c57a9d2fe87bd5a88db815aa3f13a714577d2d2..54a6e1bed49e646130683b5e8f3045160395f9b8 100644 (file)
@@ -1,5 +1,3 @@
-#pragma flag off fastarrays // make dp behave with new fteqcc versions. remove when dp bug with fteqcc fastarrays is fixed\r
-\r
 //////////////////////////////////////////////////////////\r
 // sys globals\r
 \r
index 5de8560c06788c4946f06841b64b7792c4bdcc27..bf075eda071bf03463d68694a86fb73198b1d935 100644 (file)
@@ -19,5 +19,5 @@
 #define EXTENDS(base)                      me = spawn##base ();\r
 #define METHOD(cname,name,prototype)       me.name = name##cname;\r
 #define ATTRIB(cname,name,type,val)        me.name = val;\r
-#define ATTRIBARRAY(cname,name,type,cnt)   me.name = me.name;\r
+#define ATTRIBARRAY(cname,name,type,cnt)\r
 #define ENDCLASS(cname)                    me.instanceOf##cname = 1; me.classname = #cname; return me; }\r
index a17b7c06e140bb3cd936862a9caad4aa594751fb..9bd2c5d86d3d6176a152562eafa2e0e63becad8e 100644 (file)
@@ -6,7 +6,7 @@ print "\n";
 while(<DATA>)\r
 {\r
        chomp;\r
-       if(/^\s*(?:SKINFLOAT|SKINVECTOR)\(([A-Z_]+), ([-'0-9. ]+)\);$/)\r
+       if(/^\s*(?:SKINFLOAT|SKINVECTOR)\(([A-Z_]+), ([-'0-9. ]+)\);$/) #'\r
        {\r
                printf "%-31s %s\n", $1, $2;\r
        }\r
index e12e5aa278e827a42a053f0c76a66ab5005c2340..142156ce4857e201d6bb96689d99f6caa16cbd11 100644 (file)
@@ -17,7 +17,7 @@
 //#define SKINSTRING(name,def) case #name: break\r
 #define SKINSTRING(name,def) case #name: SKIN##name = strzone(value); break\r
        // I know this leaks memory when skin is read multiple times. Screw it.\r
-#define SKINEND case "": break; case "//": break; default: print("Invalid key in skin file: ", key, "\n"); } }\r
+#define SKINEND case "": break; case "//": break; default: dprint("Invalid key in skin file: ", key, "\n"); } }\r
 #include "skin-customizables.inc"\r
 #undef SKINEND\r
 #undef SKINSTRING\r
index 9c10b2b19f0c5908186f91c88fafd3152e0d5e30..4acac9f59314e15a1ff32bf15cd71655a62ae579 100644 (file)
@@ -5,9 +5,9 @@ CLASS(VoretInputBox) EXTENDS(InputBox)
        METHOD(VoretInputBox, setText, void(entity, string))\r
        ATTRIB(VoretInputBox, fontSize, float, SKINFONTSIZE_NORMAL)\r
        ATTRIB(VoretInputBox, image, string, SKINGFX_INPUTBOX)\r
-       ATTRIB(VoretInputBox, onChange, void(entity, entity), SUB_Null)\r
+       ATTRIB(VoretInputBox, onChange, void(entity, entity), func_null)\r
        ATTRIB(VoretInputBox, onChangeEntity, entity, NULL)\r
-       ATTRIB(VoretInputBox, onEnter, void(entity, entity), SUB_Null)\r
+       ATTRIB(VoretInputBox, onEnter, void(entity, entity), func_null)\r
        ATTRIB(VoretInputBox, onEnterEntity, entity, NULL)\r
        ATTRIB(VoretInputBox, marginLeft, float, SKINMARGIN_INPUTBOX_CHARS)\r
        ATTRIB(VoretInputBox, marginRight, float, SKINMARGIN_INPUTBOX_CHARS)\r
@@ -53,7 +53,8 @@ void setTextVoretInputBox(entity me, string new)
        if(me.text != new)\r
        {\r
                setTextInputBox(me, new);\r
-               me.onChange(me, me.onChangeEntity);\r
+               if(me.onChange)\r
+                       me.onChange(me, me.onChangeEntity);\r
        }\r
        else\r
                setTextInputBox(me, new);\r
index 48cf4d719458cff24bc545bcd0e11fb47fcc8f3b..5f06458b9a6d89aafab494cde22f039cb6fd83c9 100644 (file)
@@ -8,8 +8,8 @@
 \r
 void antilag_dummy()\r
 {\r
-       self.antilag_times = 0;\r
-       self.antilag_origins = '0 0 0';\r
+       self.antilag_times[0] = 0;\r
+       self.antilag_origins[0] = '0 0 0';\r
 }\r
 \r
 void antilag_record(entity e, float t)\r
index 20b22a699557e59b232d31f2b5977420f6cd794f..72adda8a888ed1113b5a5d94db3d82e5a5516c29 100644 (file)
@@ -1034,7 +1034,7 @@ void havocbot_chooseweapon()
                }
        }
 
-#ifdef 0
+#if 0
        // TODO: This disabled code is not working well and got replaced by custom weapon priorities.
        // However, this logic should be refactored and moved to weapons code so each new weapon can be
        // evaluated dynamically by bots without updating the "ai" or config files.     --mand1nga
index ca7e37ecfc1327c047bdaff64f17638d19b130c4..20229da3a316d1303a5a2cc3970ac216fc1cf0c6 100644 (file)
@@ -67,12 +67,13 @@ float bot_havecommand(entity bot, float idx)
 .string bot_placenames[MAX_BOT_PLACES];
 entity bot_getplace(string placename)
 {
+       string s;
        entity e;
        if(substring(placename, 0, 1) == "@")
        {
                float i, p;
                placename = substring(placename, 1, -1);
-               string s, s2;
+               string s2;
                for(i = 0; i < self.bot_places_count; ++i)
                        if(self.(bot_placenames[i]) == placename)
                                return self.(bot_places[i]);
index d3aa8e513ca4aaa666441adb1dfb45713808bb52..40ab462f17746b4b433ec98aeb58739b38f1f1cd 100644 (file)
@@ -339,10 +339,9 @@ void RaceCarPhysics()
        self.angles_z = 0;\r
        makevectors(self.angles); // new forward direction!\r
 \r
+       float myspeed, upspeed, steerfactor, accelfactor;\r
        if(self.flags & FL_ONGROUND || g_bugrigs_air_steering)\r
        {\r
-               float myspeed, upspeed, steerfactor, accelfactor;\r
-\r
                myspeed = self.velocity * v_forward;\r
                upspeed = self.velocity * v_up;\r
 \r
index 4ee6f9b9fb3457c290919071cffef017283f204d..1fe073a26c9b9b62c5aecffac70f346d85089d4a 100644 (file)
@@ -923,12 +923,12 @@ void Say(entity source, float teamsay, entity privatesay, string msgin, float fl
 \r
        // FLOOD CONTROL\r
        flood = 0;\r
+       var .float flood_field;\r
        if(floodcontrol)\r
        {\r
                float flood_spl;\r
                float flood_burst;\r
                float flood_lmax;\r
-               var .float flood_field;\r
                float lines;\r
                if(privatesay)\r
                {\r
@@ -982,8 +982,10 @@ void Say(entity source, float teamsay, entity privatesay, string msgin, float fl
                }\r
        }\r
 \r
-       if (timeoutStatus == 2) //when game is paused, no flood protection\r
-               source.flood_field = flood = 0;\r
+       if (timeoutStatus == 2) { //when game is paused, no flood protection\r
+               source.flood_field = 0;\r
+               flood = 0;\r
+       }\r
 \r
        if(flood == 2)\r
        {\r
@@ -1204,8 +1206,8 @@ void UpdatePlayerSounds()
        self.skin_for_playersound = self.skin;\r
        ClearPlayerSounds();\r
        LoadPlayerSounds("sound/player/default.sounds", 1);\r
-       if not(LoadPlayerSounds(strcat(self.model, "_", ftos(self.skin), ".", "sounds"), 0))\r
-               LoadPlayerSounds(strcat(self.model, ".", "sounds"), 0);\r
+       LoadPlayerSounds(strcat(self.model, "_", ftos(self.skin), ".", "sounds"), 0);\r
+       LoadPlayerSounds(strcat(self.model, ".", "sounds"), 0);\r
 }\r
 \r
 void GlobalSound(string sample, float chan, float voicetype, float vol)\r
index 34ad1f3cc0dc35ed6a61b563e4e4bcd13985a544..e492112360ca58d16b92c3b80e935b6c76c67e82 100644 (file)
@@ -110,8 +110,14 @@ void func_breakable_look_restore()
 void func_breakable_behave_destroyed()\r
 {\r
        self.health = self.max_health;\r
-       self.takedamage = DAMAGE_NO;\r
-       self.event_damage = SUB_Null;\r
+       #ifndef GMQCC\r
+               self.event_damage           = SUB_Null;\r
+               self.takedamage             = DAMAGE_NO;\r
+       #else\r
+               // GMQCCs NIL keyword is the BOMB!\r
+               self.event_damage           = nil;\r
+               self.takedamage             = nil;\r
+       #endif\r
        self.state = 1;\r
        setsize(self, '0 0 0', '0 0 0');\r
        func_breakable_colormod();\r
index 496f532eb99a19423744c833e4bec91b11439531..5ad223c0cc13f8c9fd332ba3813c252b775becdc 100644 (file)
@@ -674,3 +674,4 @@ float InitMovingBrushTrigger()
        }\r
        return 1;\r
 };\r
+#endif\r
index 345d605d5e78e5ae39ca3416272a16b54985e182..aa67f03d4eb6e253f4cb96306acff82dfba2711f 100644 (file)
@@ -80,7 +80,7 @@ float world_initialized;
 string GetMapname();\r
 string GetGametype();\r
 void GotoNextMap();\r
-void ShuffleMaplist()\r
+void ShuffleMaplist();\r
 float() DoNextMapOverride;\r
 \r
 void SetDefaultAlpha()\r
index 7ffc580a9ed45543b175e58f3712bb823a91e466..9e35d16aa2746f2a55b5e62c22703a200b0befff 100644 (file)
@@ -33,7 +33,14 @@ float kh_no_radar_circles;
 .float siren_time;  //  time delay the siren\r
 //.float stuff_time;  //  time delay to stuffcmd a cvar\r
 \r
-float test[17] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};\r
+// sigh GMQCC needs to implement this yet.\r
+float test[17]\r
+#ifndef GMQCC\r
+= {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};\r
+#else\r
+;\r
+#endif\r
+\r
 //test[0] = status of dropped keys, test[1 - 16] = player #\r
 //replace 17 with cvar("maxplayers") or similar !!!!!!!!!\r
 //for(i = 0; i < maxplayers; ++i)\r
index a410045cf2c54fadcc2c25b1758f66da3f71092c..4b63d01112cc40e62cc005a5cb08041e8b74fd07 100644 (file)
@@ -30,5 +30,5 @@ void kh_update_state();
 #define STR_ITEM_KH_KEY "item_kh_key"\r
 typedef void(void) kh_Think_t;\r
 var kh_Think_t kh_Controller_Thinkfunc;\r
-void kh_Controller_SetThink(float t, string msg, kh_Think_t func)\r
-void kh_Key_Remove(entity key)\r
+void kh_Controller_SetThink(float t, string msg, kh_Think_t func);\r
+void kh_Key_Remove(entity key);\r
index f16f60aa060f0e4ee2ae5a47232eba6002986c42..d30b368ccb4e21fa1d1254c869f1cd88b76ce26b 100644 (file)
@@ -181,22 +181,27 @@ void GameLogClose()
     }\r
 }\r
 \r
-vector PL_VIEW_OFS;\r
-vector PL_MIN;\r
-vector PL_MAX;\r
-vector PL_CROUCH_VIEW_OFS;\r
-vector PL_CROUCH_MIN;\r
-vector PL_CROUCH_MAX;\r
+// you need an init method to set them somewhere\r
+// default values simply become constant\r
+const vector PL_VIEW_OFS;\r
+const vector PL_MIN;\r
+const vector PL_MAX;\r
+const vector PL_CROUCH_VIEW_OFS;\r
+const vector PL_CROUCH_MIN;\r
+const vector PL_CROUCH_MAX;\r
 \r
 float spawnpoint_nag;\r
 void relocate_spawnpoint()\r
 {\r
+       // this code wouldn't work anyways, they're constants by having default assignment in a header.\r
+#if 0\r
     PL_VIEW_OFS                             = stov(cvar_string("sv_player_viewoffset"));\r
     PL_MIN                                  = stov(cvar_string("sv_player_mins"));\r
     PL_MAX                                  = stov(cvar_string("sv_player_maxs"));\r
     PL_CROUCH_VIEW_OFS                      = stov(cvar_string("sv_player_crouch_viewoffset"));\r
     PL_CROUCH_MIN                           = stov(cvar_string("sv_player_crouch_mins"));\r
     PL_CROUCH_MAX                           = stov(cvar_string("sv_player_crouch_maxs"));\r
+#endif\r
 \r
     // nudge off the floor\r
     setorigin(self, self.origin + '0 0 1');\r
index 0826d1efd1a3f265a387f18c528af8cf48748d09..b52bec964a260a0b309f658e4db8263f3a299967 100644 (file)
@@ -595,7 +595,11 @@ void onslaught_generator_damage(entity inflictor, entity attacker, float damage,
                self.islinked = FALSE;\r
                self.isshielded = FALSE;\r
                self.takedamage = DAMAGE_NO; // can't be hurt anymore\r
+#ifndef GMQCC\r
                self.event_damage = SUB_Null; // won't do anything if hurt\r
+#else\r
+               self.event_damage = nil;\r
+#endif\r
                self.count = 0; // reset counter\r
                self.think = onslaught_generator_deaththink; // explosion sequence\r
                self.nextthink = time; // start exploding immediately\r
index 1aa1c665ce6686140237e4a68ffd71b4aae1233c..d6b8c753fbb74826a8dba66660e9d29d54b14d11 100644 (file)
@@ -32,7 +32,7 @@ vector pathlib_wateroutnode(vector start,vector end)
     return end;\r
 }\r
 \r
-vector pathlib_swimnode(vector start,vector end)\r
+vector pathlib_swimnode(vector start,vector end, float /*unused*/)\r
 {\r
     pathlib_movenode_goodnode = 0;\r
 \r
index 77de88940b3c14359c432abb1564c584a435225e..bdb513d0cd181d94ad4da79327799ad4fb37933b 100644 (file)
@@ -60,7 +60,7 @@ vector movenode_boxmin;
 float  pathlib_movenode_goodnode;\r
 \r
 vector     pathlib_wateroutnode(vector start, vector end);\r
-vector     pathlib_swimnode(vector start, vector end);\r
+vector     pathlib_swimnode(vector start, vector end, float /*unused*/);\r
 vector     pathlib_flynode(vector start, vector end);\r
 vector     pathlib_walknode(vector start, vector end, float doedge);\r
 var vector pathlib_movenode(vector start, vector end, float doedge);\r
index eaefeb2ab14a731e41c9d1422c819f2287cfabba..0d9cda6b863e66bf1468b08c5ce5d1285cdee522 100644 (file)
@@ -1,4 +1,3 @@
-#pragma flag off fastarrays // make dp behave with new fteqcc versions. remove when dp bug with fteqcc fastarrays is fixed\r
 #define SVQC\r
 \r
 // DO NOT modify the contents of this file, or you will risk incompatibility with the game engine.\r
index 4ecb6527ef7bedd90fa4b3ca9c664ec6c5b96372..4bfa0771771c2dfc4f4f7edde6b92a0ddf90991c 100644 (file)
@@ -5,6 +5,8 @@
 #define ITEM_RESPAWNTIME_INITIAL(i) (ITEM_RESPAWN_TICKS + random() * ((i).respawntime + (i).respawntimejitter - ITEM_RESPAWN_TICKS))\r
        // range: 10 .. respawntime + respawntimejitter\r
 \r
+#define Item_Func_Null null\r
+\r
 floatfield Item_CounterField(float it)\r
 {\r
        switch(it)\r
@@ -69,7 +71,7 @@ void Item_Show (entity e, float mode)
                e.colormod = '0 0 0';\r
                e.glowmod = e.colormod;\r
                e.alpha = 0;\r
-               e.customizeentityforclient = func_null;\r
+               e.customizeentityforclient = Item_Func_Null;\r
 \r
                e.spawnshieldtime = 1;\r
        }\r
@@ -81,7 +83,7 @@ void Item_Show (entity e, float mode)
                e.colormod = '0 0 0';\r
                e.glowmod = e.colormod;\r
                e.alpha = 0;\r
-               e.customizeentityforclient = func_null;\r
+               e.customizeentityforclient = Item_Func_Null;\r
 \r
                e.spawnshieldtime = 1;\r
        }\r
@@ -105,7 +107,7 @@ void Item_Show (entity e, float mode)
                e.colormod = stov(cvar_string("g_ghost_items_color"));\r
                e.glowmod = e.colormod;\r
                e.alpha = g_ghost_items;\r
-               e.customizeentityforclient = func_null;\r
+               e.customizeentityforclient = Item_Func_Null;\r
 \r
                e.spawnshieldtime = 1;\r
        }\r
@@ -117,7 +119,7 @@ void Item_Show (entity e, float mode)
                e.colormod = stov(cvar_string("g_ghost_items_color"));\r
                e.glowmod = e.colormod;\r
                e.alpha = 0;\r
-               e.customizeentityforclient = func_null;\r
+               e.customizeentityforclient = Item_Func_Null;\r
 \r
                e.spawnshieldtime = 1;\r
        }\r
index e7ac9151dcb752e11e95ced062e6df521d394d8c..641bb564f9bda9f474c7b03548a9a94d40388f34 100644 (file)
@@ -1404,8 +1404,14 @@ float SECRET_1ST_DOWN = 4;               // 1st move is down from arrow
 float SECRET_NO_SHOOT = 8;             // only opened by trigger\r
 float SECRET_YES_SHOOT = 16;   // shootable even if targeted\r
 \r
-\r
+// This is a bug in the code .. this is the HACK to work around the bug since casts don't exist yet.\r
+#ifdef GMQCC\r
+void fd_secret_use_core(entity, entity, float, float, vector, vector)\r
+#else\r
+void fd_secret_use();\r
+void fd_secret_use_core() { fd_secret_use(); }\r
 void fd_secret_use()\r
+#endif\r
 {\r
        local float temp;\r
        string message_save;\r
@@ -1455,6 +1461,12 @@ void fd_secret_use()
                sound(self, CHAN_TRIGGER, self.noise2, VOL_BASE, ATTN_NORM);\r
 };\r
 \r
+#ifdef GMQCC\r
+void fd_secret_use() {\r
+       fd_secret_use_core(nil, nil, nil, nil, nil, nil);\r
+}\r
+#endif\r
+\r
 // Wait after first movement...\r
 void fd_secret_move1()\r
 {\r
@@ -1610,7 +1622,7 @@ void spawnfunc_func_door_secret()
        {\r
                self.health = 10000;\r
                self.takedamage = DAMAGE_YES;\r
-               self.event_damage = fd_secret_use;\r
+               self.event_damage = fd_secret_use_core;\r
        }\r
        self.oldorigin = self.origin;\r
        if (!self.wait)\r
index b917287c8c3972e41c24423c8ecf0f876c58a6ff..a78f4b90612cce014f1b5ca589bee7dc5347279f 100644 (file)
@@ -42,20 +42,20 @@ void junk_function ()
        self.light_lev = 0;\r
        self.color = '0 0 0';\r
        self.style = 0;\r
-       self.jumppadsused = world;\r
+       self.jumppadsused[0] = world;\r
        self.disableclientprediction = 0;\r
-       self.contentstransition = SUB_Null;\r
+       self.contentstransition = null;\r
        self.dphitcontentsmask = 0;\r
        self.modelflags = 0;\r
-       self.attack_finished_for = 0; // why is this even valid? Spiiiiiiiiiiiiiiiiiiiiike!\r
+       self.attack_finished_for[0] = 0; // why is this even valid? Spiiiiiiiiiiiiiiiiiiiiike!\r
        self.notsingle = 0;\r
        trace_dphittexturename = "";\r
        require_spawnfunc_prefix = 1;\r
-       self.movetypesteplandevent = SUB_Null;\r
+       self.movetypesteplandevent = null;\r
        self.viewzoom = 0;\r
-       self.cvar_cl_weaponpriorities = "";\r
-       self.scores = 0;\r
-       self.teamscores = 0;\r
+       self.cvar_cl_weaponpriorities[0] = "";\r
+       self.scores[0] = 0;\r
+       self.teamscores[0] = 0;\r
        gettaginfo_parent = 0;\r
        gettaginfo_name = "";\r
        gettaginfo_offset = '0 0 0';\r
index c8df28df8531133bdde8065fefbe43e9c984fa9f..c02f4a7e4896c0a0dd641da13a3b4c193550b6a7 100644 (file)
@@ -489,9 +489,9 @@ float   turret_stdproc_targetscore_support(entity e_turret,entity e_target);
 * Aim functions\r
 */\r
 /// Generic aimer guided by self.aim_flags\r
-vector turret_stdproc_aim_generic()\r
+vector turret_stdproc_aim_generic();\r
 // Straight line, current location\r
-//vector  turret_stdproc_aim_simple()\r
+//vector  turret_stdproc_aim_simple();\r
 \r
 /*\r
 * Turret turning & pitch\r
index cb7c26569783213dff8fee7f7cd72a9217d37ff2..80cfd6a41a6b7d8095d498e9974e40a6e5a7fb97 100644 (file)
@@ -147,7 +147,11 @@ void turret_stdproc_die()
     self.customizeentityforclient = SUB_False;\r
     self.tur_head.customizeentityforclient = SUB_False;\r
 \r
+#ifndef GMQCC\r
     self.event_damage           = SUB_Null;\r
+#else\r
+       self.event_damage           = nil;\r
+#endif\r
     self.takedamage             = DAMAGE_NO;\r
 \r
     self.effects            = 0;\r
@@ -324,8 +328,13 @@ void turret_stdproc_damage (entity inflictor, entity attacker, float damage, flo
 \r
     if (self.health <= 0)\r
     {\r
+#ifndef GMQCC\r
         self.event_damage           = SUB_Null;\r
         self.tur_head.event_damage  = SUB_Null;\r
+#else\r
+        self.event_damage           = nil;\r
+        self.tur_head.event_damage  = nil;\r
+#endif\r
         self.takedamage             = DAMAGE_NO;\r
         self.nextthink = time;\r
         self.think = turret_stdproc_die;\r
index 8f4226c158b044ae4c06a3e6852f57c98789549d..a4edfdd66b339ab0dbdbd121bb3ee74880e92b46 100644 (file)
@@ -471,7 +471,7 @@ void fireBullet (vector start, vector dir, float spread, float damage, float for
 void W_PrepareExplosionByDamage(entity attacker, void() explode)\r
 {\r
        self.takedamage = DAMAGE_NO;\r
-       self.event_damage = SUB_Null;\r
+       self.event_damage = null;\r
        self.owner = attacker;\r
 \r
        // do not explode NOW but in the NEXT FRAME!\r
index 3affb26764c9d155a9dd23cb09e195d952f9aff9..cdae9fd8a03c165c6eeeeb4a695c983a809fcdd3 100644 (file)
 - 0.8 BUG: Someone's reporting swallow speed doesn't change with the cvar\r
 \r
 - 0.8: Make some of the foxes (bots) in the campaign male\r
+\r
+- 0.8 BUG: In player.sounds files, "tag female" is used for the male voices too\r
+\r
+- 0.8: Fix all the gmqcc warnings when using the default Xonotic parameters\r