REGISTER_RESOURCE(HEALTH, NEW(Resource)) { this.netname = "health"; #ifdef GAMEQC this.m_field = health; #endif } REGISTER_RESOURCE(ARMOR, NEW(Resource)) { this.netname = "armor"; #ifdef GAMEQC this.m_field = armorvalue; #endif } CLASS(AmmoResource, Resource) #ifdef CSQC ATTRIB(AmmoResource, m_hidden, bool, false); #endif ENDCLASS(AmmoResource) // NOTE: ammo resource registration order should match ammo (item) registration order // see REGISTER_ITEM calls order REGISTER_RESOURCE(SHELLS, NEW(AmmoResource)) { this.netname = "shells"; #ifdef GAMEQC this.m_field = ammo_shells; #endif } REGISTER_RESOURCE(BULLETS, NEW(AmmoResource)) { this.netname = "bullets"; #ifdef GAMEQC this.m_field = ammo_nails; #endif } REGISTER_RESOURCE(ROCKETS, NEW(AmmoResource)) { this.netname = "rockets"; #ifdef GAMEQC this.m_field = ammo_rockets; #endif } REGISTER_RESOURCE(CELLS, NEW(AmmoResource)) { this.netname = "cells"; #ifdef GAMEQC this.m_field = ammo_cells; #endif } REGISTER_RESOURCE(PLASMA, NEW(AmmoResource)) { this.netname = "plasma"; #ifdef GAMEQC this.m_field = ammo_plasma; #endif #ifdef CSQC this.m_hidden = true; // WIP ammo type #endif } REGISTER_RESOURCE(FUEL, NEW(AmmoResource)) { this.netname = "fuel"; #ifdef GAMEQC this.m_field = ammo_fuel; #endif #ifdef CSQC this.m_hidden = true; // displayed in a separate panel #endif }