X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fturrets%2Fall.qh;h=1a77e989121b0cade1ab49e584f93e6e575b29d4;hb=6072227e8fbce05c965c025d0cc44f322c612d86;hp=87a30c9206be80a234e6a9cd50ac0e7f7b50172c;hpb=287e60dcebba0d32a1ec21b34bff60cccb8ef929;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/turrets/all.qh b/qcsrc/common/turrets/all.qh index 87a30c920..1a77e9891 100644 --- a/qcsrc/common/turrets/all.qh +++ b/qcsrc/common/turrets/all.qh @@ -1,21 +1,76 @@ -#ifndef TURRETS_ALL_H -#define TURRETS_ALL_H +#pragma once + +#include +#include "config.qh" #include "turret.qh" -const int TUR_MAXCOUNT = 24; -entity turret_info[TUR_MAXCOUNT], turret_info_first, turret_info_last; -float TUR_COUNT; +REGISTRY(Turrets, BITS(5)) +#define Turrets_from(i) _Turrets_from(i, TUR_Null) +#define get_turretinfo(i) Turrets_from(i) +REGISTER_REGISTRY(Turrets) +REGISTRY_CHECK(Turrets) -void RegisterTurrets(); -REGISTER_REGISTRY(RegisterTurrets) -#define REGISTER_TURRET(id, inst) REGISTER(RegisterTurrets, TUR, turret_info, TUR_COUNT, id, m_id, inst) +GENERIC_COMMAND(dumpturrets, "Dump all turrets into turrets_dump.txt") +{ + switch(request) + { + case CMD_REQUEST_COMMAND: + { + #ifdef SVQC + tur_config_file = -1; + tur_config_alsoprint = -1; + string filename = argv(1); -entity get_turretinfo(int id); + if(filename == "") + { + filename = "turrets_dump.cfg"; + tur_config_alsoprint = false; + } + else if(filename == "-") + { + filename = "turrets_dump.cfg"; + tur_config_alsoprint = true; + } + tur_config_file = fopen(filename, FILE_WRITE); + + if(tur_config_file >= 0) + { + Dump_Turret_Settings(); + LOG_INFO(sprintf("Dumping turrets... File located in ^2data/data/%s^7.\n", filename)); + fclose(tur_config_file); + tur_config_file = -1; + tur_config_alsoprint = -1; + } + else + { + LOG_INFO(sprintf("^1Error: ^7Could not open file '%s'!\n", filename)); + } + #else + LOG_INFO(_("Turrets dump command only works with sv_cmd.\n")); + #endif + return; + } + + default: + case CMD_REQUEST_USAGE: + { + LOG_INFO(strcat("\nUsage:^3 ", GetProgramCommandPrefix(), " dumpturrets [filename]")); + LOG_INFO(" Where 'filename' is the file to write (default is turrets_dump.cfg),\n"); + LOG_INFO(" if supplied with '-' output to console as well as default,\n"); + LOG_INFO(" if left blank, it will only write to default.\n"); + return; + } + } +} -REGISTER_TURRET(Null, NEW(Turret)); -#include "all.inc" +const int TUR_FIRST = 1; +#define TUR_LAST (Turrets_COUNT - 1) + +#define REGISTER_TURRET(id, inst) REGISTER(Turrets, TUR, id, m_id, inst) + +REGISTER_TURRET(Null, NEW(Turret)); -#endif +#include "turret/_mod.inc"