X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fturrets%2Fall.qh;h=e63a931a67361df15b0d7b15f71fbc16e484c862;hb=86c4f57358c37c4165945b1c99840aa447b50000;hp=87a30c9206be80a234e6a9cd50ac0e7f7b50172c;hpb=267433aa7d5dd80399b808f692b8bc1ef75f0851;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/turrets/all.qh b/qcsrc/common/turrets/all.qh index 87a30c920..e63a931a6 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_INFOF("Dumping turrets... File located in ^2data/data/%s^7.", filename); + fclose(tur_config_file); + tur_config_file = -1; + tur_config_alsoprint = -1; + } + else + { + LOG_INFOF("^1Error: ^7Could not open file '%s'!", filename); + } + #else + LOG_INFO(_("Turrets dump command only works with sv_cmd.")); + #endif + return; + } + + default: + case CMD_REQUEST_USAGE: + { + LOG_INFO("Usage:^3 ", GetProgramCommandPrefix(), " dumpturrets [filename]"); + LOG_INFO(" Where 'filename' is the file to write (default is turrets_dump.cfg),"); + LOG_INFO(" if supplied with '-' output to console as well as default,"); + LOG_INFO(" if left blank, it will only write to default."); + 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.qh"