/** @file world/init.cpp Implementace hlavickoveho souboru world/init.h @author Petr Wolf */ #include "world/init.h" using namespace World; void World::BUILDING_Init(BUILDING * building) { int i; building->id = 0; building->nameid = 0; building->modelid = 0; building->construction_modelid = 0; for (i = 0; i < MAX_ACTION_SOUNDS; i++) building->soundsid[i] = 0; building->symbolid = 0; building->hit_probability = 0; building->lives = 0; building->base_cost = 0; building->repair_cost = 0; building->construction_duration = 0; building->orientation_count = 0; building->construction_position = (CONSTRUCTION_POSITION)0; building->structure_type = (STRUCTURE_TYPE)0; building->defense_bonus = 0; building->counterattack = 0; building->eyesight_distance = 0; for (i = 1; i <= TERRAIN_TYPES_COUNT; i++) building->terrain[i] = 0; building->unit_recruitment.data = NULL; building->unit_recruitment.length = 0; building->bonuses.data = NULL; building->bonuses.length = 0; } void World::HEX_Init(HEX * hex) { hex->terrain = (TERRAIN_TYPE)1; // plain hex->elevation = (ELEVATION_TYPE)0; // sea level hex->unit = 0; hex->building = 0; hex->unit_occurrence.length = 0; hex->unit_occurrence.data = NULL; } void World::LIVING_BUILDING_Init(LIVING_BUILDING * living_building) { living_building->type = 0; living_building->player = 0; strcpy(living_building->name, ""); living_building->lives = 0; living_building->construction_duration = 0; living_building->orientation = 0; } void World::LIVING_UNIT_Init(LIVING_UNIT * living_unit) { int i; living_unit->type = 0; living_unit->player = 0; strcpy(living_unit->name, ""); living_unit->bonuses.data = NULL; living_unit->bonuses.length = 0; living_unit->state = (UNIT_STATE)0; living_unit->lives = 0; for (i = 0; i < MAX_LIVES; i++) living_unit->wounds[i] = 0; living_unit->assaults_count = 0; living_unit->points_of_movement = 0; living_unit->level = 0; living_unit->experience = 0; living_unit->orientation = 0; } void World::UNIT_Init(UNIT * unit) { int i; unit->id = 0; unit->nameid = 0; unit->modelid = 0; for (i = 0; i < MAX_ACTION_SOUNDS; i++) unit->soundsid[i] = 0; unit->symbolid = 0; unit->type = (UNIT_TYPE)0; unit->max_points_of_movement = 0; for (i = 0; i < ELEVATION_TYPES_COUNT; i++) unit->movement_elevation[i] = 0; for (i = 1; i <= TERRAIN_TYPES_COUNT; i++) unit->movement_terrain[i] = 0; for (i = 0; i < WEATHER_STATES_COUNT; i++) unit->movement_weather[i] = 0; unit->movement_uphill = 0; unit->movement_downhill = 0; unit->can_enter_building = 1; unit->men_in_row = 0; unit->attack = 0; unit->defense = 0; unit->counterattack = 0; unit->movement_and_fight_combination = (MOVEMENT_AND_FIGHT_COMBINATION)0; unit->fight_type = (FIGHT_TYPE)0; for (i = 1; i <= TERRAIN_TYPES_COUNT; i++) unit->attack_bonus_from_terrain[i] = 0; for (i = 1; i <= TERRAIN_TYPES_COUNT; i++) unit->defense_bonus_from_terrain[i] = 0; for (i = 1; i <= TERRAIN_TYPES_COUNT; i++) unit->attack_bonus_against_terrain[i] = 0; for (i = 0; i < UNIT_TYPES_COUNT; i++) unit->attack_bonus_against_unit[i] = 0; unit->attack_bonus_against_building = 0; unit->attack_range = 0; unit->hit_probability = 0; unit->default_occurrence = 0; unit->cost = 0; unit->pay = 0; for (i = 0; i < UNIT_PROPERTY_COUNT; i++) unit->bonuses[i] = false; unit->max_lives = 0; unit->eyesight_distance = 0; unit->can_build_building = 0; } void World::UNIT_PROPERTY_BONUS_Init(UNIT_PROPERTY_BONUS * bonus) { bonus->id = 0; bonus->nameid = 0; bonus->imageid = 0; bonus->property = (UNIT_PROPERTY)0; bonus->cost = 0; bonus->bonus = 0; } void World::TOWN_Init(World::TOWN * town) { strncpy(town->name, "", K8_MAX_NAME_LEN); town->owner = 0; town->citysize = 0; for (int i = 0; i < MAX_CITY_SIZE; i++) town->position[i] = 0; } void World::KINGDOM_Init(World::KINGDOM * kingdom) { kingdom->id = 0; kingdom->roleid = 0; kingdom->centerx = 0; kingdom->centery = 0; } void World::PLAYER_Init(World::PLAYER * player) { // GAME_DATA strncpy(player->game_data.name, "", MAX_STRLEN); player->game_data.money = 0; for (int i = 0; i <= MAX_PLAYERS; i++) { player->game_data.relations[i] = NULL; } // CLIENT_DATA strncpy(player->client_data.name, "", MAX_STRLEN); player->client_data.client_id = 0; player->client_data.newclient_id = 0; player->client_data.oldclient_id = 0; player->client_data.type = (PLAYER_TYPE)0; player->client_data.acommands = (PLAYER_ALLOWED_COMMANDS)0; player->client_data.connected = 0; // STATISTICS PLAYER_STATISTICS_Init(&player->statistics); } void World::PLAYER_STATISTICS_Init(World::PLAYER_STATISTICS * statistics) { statistics->units_killed = 0; statistics->units_lost = 0; statistics->units_created = 0; statistics->buildings_built = 0; statistics->buildings_captured = 0; statistics->buildings_lost = 0; statistics->buildings_destroyed = 0; statistics->towns_captured = 0; statistics->towns_lost = 0; statistics->kingdoms_captured = 0; statistics->kingdoms_lost = 0; statistics->money_gained = 0; }