X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fmonsters%2Fsv_spawn.qc;h=0a5f350eeb523bb6ef4d35981be8481a86d0178f;hb=cf34c825e0e646cc1d80dcfbe5123ce33d0db000;hp=d456282d429ee6fbc6c5113f90b7f57484b8fcff;hpb=89f405ba71d1c354dca27a0af246f04fb9ec42e6;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/monsters/sv_spawn.qc b/qcsrc/common/monsters/sv_spawn.qc index d456282d4..0a5f350ee 100644 --- a/qcsrc/common/monsters/sv_spawn.qc +++ b/qcsrc/common/monsters/sv_spawn.qc @@ -1,14 +1,17 @@ #include "sv_spawn.qh" + #if defined(CSQC) #elif defined(MENUQC) #elif defined(SVQC) - #include "../util.qh" - #include "all.qh" - #include "sv_monsters.qh" - #include - #include + #include + #include + #include + #include + #include + #include #endif -entity spawnmonster (entity e, string monster, int monster_id, entity spawnedby, entity own, vector orig, bool respwn, bool removeifinvalid, int moveflag) + +entity spawnmonster (entity e, string monster, Monster monster_id, entity spawnedby, entity own, vector orig, bool respwn, bool removeifinvalid, int moveflag) { e.spawnflags = MONSTERFLAG_SPAWNED; @@ -26,7 +29,7 @@ entity spawnmonster (entity e, string monster, int monster_id, entity spawnedby, RandomSelection_AddEnt(it, 1, 1); }); - monster_id = RandomSelection_chosen_ent.monsterid; + monster_id = RandomSelection_chosen_ent; } else if(monster != "") { @@ -36,12 +39,12 @@ entity spawnmonster (entity e, string monster, int monster_id, entity spawnedby, if(it.netname == monster) { found = true; - monster_id = it.monsterid; // we have the monster, old monster id is no longer required + monster_id = it; // we have the monster, old monster id is no longer required break; } }); - if(!found && !monster_id) + if(!found && monster_id == MON_Null) { if(removeifinvalid) { @@ -49,7 +52,10 @@ entity spawnmonster (entity e, string monster, int monster_id, entity spawnedby, return NULL; // no good } else - monster_id = MON_FIRST; + { + // select a random valid monster type if no valid monster was provided + return spawnmonster(e, "random", MON_Null, spawnedby, own, orig, respwn, removeifinvalid, moveflag); + } } }