]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/common/mapinfo.qc
Implement RPG / Free Roam gametype. Next step is to remove scoring under this type...
[voretournament/voretournament.git] / data / qcsrc / common / mapinfo.qc
index be281a57dc4ce65b1749e97b05a631361ba53c5c..7f8c04ec74bb93ca2fd92b28c5c6b3109908628c 100644 (file)
@@ -390,7 +390,7 @@ void _MapInfo_Map_ApplyGametype(string s, float pWantedType, float pThisType)
        if(!(pThisType & pWantedType))\r
                return;\r
        \r
-       if(pWantedType == MAPINFO_TYPE_ASSAULT || pWantedType == MAPINFO_TYPE_ONSLAUGHT || pWantedType == MAPINFO_TYPE_RACE || pWantedType == MAPINFO_TYPE_CTS) // these modes don't use fraglimit\r
+       if(pWantedType == MAPINFO_TYPE_ASSAULT || pWantedType == MAPINFO_TYPE_ONSLAUGHT || pWantedType == MAPINFO_TYPE_RACE || pWantedType == MAPINFO_TYPE_CTS || pWantedType == MAPINFO_TYPE_RPG) // these modes don't use fraglimit\r
        {\r
                cvar_set("fraglimit", "0");\r
        }\r
@@ -470,6 +470,7 @@ float MapInfo_Type_FromString(string t)
        else if(t == "ons")     return MAPINFO_TYPE_ONSLAUGHT;\r
        else if(t == "rc")      return MAPINFO_TYPE_RACE;\r
        else if(t == "cts")     return MAPINFO_TYPE_CTS;\r
+       else if(t == "rpg")     return MAPINFO_TYPE_RPG;\r
        else if(t == "all")     return MAPINFO_TYPE_ALL;\r
        else                    return 0;\r
 }\r
@@ -655,6 +656,7 @@ float MapInfo_Get_ByName(string pFilename, float pAllowGenerate, float pGametype
                if(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RACE)            fputs(fh, "type rc 20 5 7 15\n");\r
                if(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_ONSLAUGHT)       fputs(fh, "type ons 20\n");\r
                if(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_CTS)             fputs(fh, "type cts 20 -1\n");\r
+               if(MapInfo_Map_supportedGametypes & MAPINFO_TYPE_RPG)             fputs(fh, "type rpg -1\n");\r
 \r
                fh2 = fopen(strcat("scripts/", pFilename, ".arena"), FILE_READ);\r
                if(fh2 >= 0)\r
@@ -916,6 +918,8 @@ float MapInfo_CurrentGametype()
                return MAPINFO_TYPE_RACE;\r
        else if(cvar("g_cts"))\r
                return MAPINFO_TYPE_CTS;\r
+       else if(cvar("g_rpg"))\r
+               return MAPINFO_TYPE_RPG;\r
        else\r
                return MAPINFO_TYPE_DEATHMATCH;\r
 }\r
@@ -955,6 +959,7 @@ string MapInfo_GetGameTypeCvar(float t)
                case MAPINFO_TYPE_ONSLAUGHT: return "g_onslaught";\r
                case MAPINFO_TYPE_RACE: return "g_race";\r
                case MAPINFO_TYPE_CTS: return "g_cts";\r
+               case MAPINFO_TYPE_RPG: return "g_rpg";\r
                default: return "";\r
        }\r
 }\r
@@ -974,6 +979,7 @@ void MapInfo_SwitchGameType(float t)
        cvar_set("g_onslaught",  (t == MAPINFO_TYPE_ONSLAUGHT)       ? "1" : "0");\r
        cvar_set("g_race",       (t == MAPINFO_TYPE_RACE)            ? "1" : "0");\r
        cvar_set("g_cts",        (t == MAPINFO_TYPE_CTS)             ? "1" : "0");\r
+       cvar_set("g_rpg",        (t == MAPINFO_TYPE_RPG)             ? "1" : "0");\r
 }\r
 \r
 void MapInfo_LoadMap(string s)\r