int __add_to_category(int argc, char *argv[]) { verify_number_of_parameters(argc, 4); Product *p = malloc(sizeof (Product)); p->id = atoi(argv[3]); p->category_id = atoi(argv[4]); int status = add_to_category(p); free(p); return status; }
void GameSpec::load_object(const gamedata::unit_object &object, unit_type_list &list) { // check graphics if (this->valid_graphic_id(object.graphic_standing0)) { list.emplace_back(std::make_unique<ObjectProducer>(*this, &object)); auto producer_ptr = list.back().get(); index_t id = producer_ptr->id(); this->producers[id] = producer_ptr; add_to_category("object", id); } }
void GameSpec::load_building(const gamedata::unit_building &building, unit_type_list &list) { // check graphics if (this->valid_graphic_id(building.graphic_standing0)) { list.emplace_back(std::make_unique<BuildingProducer>(*this, &building)); auto producer_ptr = list.back().get(); index_t id = producer_ptr->id(); this->producers[id] = producer_ptr; this->buildings[building.id0] = &building; add_to_category("building", id); } }
void GameSpec::load_living(const gamedata::unit_living &unit, unit_type_list &list) { // check graphics if (this->valid_graphic_id(unit.graphic_dying0) && this->valid_graphic_id(unit.graphic_standing0) && this->valid_graphic_id(unit.walking_graphics0)) { list.emplace_back(std::make_unique<LivingProducer>(*this, &unit)); auto producer_ptr = list.back().get(); index_t id = producer_ptr->id(); this->producers[id] = producer_ptr; add_to_category("living", id); } }