Пример #1
0
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;
}
Пример #2
0
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);
	}
}
Пример #3
0
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);
	}
}
Пример #4
0
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);
	}
}