int col_init() { width = layers_game_layer()->width; height = layers_game_layer()->height; tiles = (TILE *)map_get_data(layers_game_layer()->data); for(int i = 0; i < width*height; i++) { int index = tiles[i].index; if(index > 128) continue; if(index == TILE_DEATH) tiles[i].index = COLFLAG_DEATH; else if(index == TILE_SOLID) tiles[i].index = COLFLAG_SOLID; else if(index == TILE_NOHOOK) tiles[i].index = COLFLAG_SOLID|COLFLAG_NOHOOK; else tiles[i].index = index; } return 1; }
void mods_init() { //if(!data) /* only load once */ //data = load_data_from_memory(internal_data); for(int i = 0; i < NUM_NETOBJTYPES; i++) snap_set_staticsize(i, netobj_get_size(i)); layers_init(); col_init(); game.controller = new GAMECONTROLLER_BALL; MAPITEM_LAYER_TILEMAP *tmap = layers_game_layer(); TILE *tiles = (TILE *)map_get_data(tmap->data); for(int y = 0; y < tmap->height; y++) { for(int x = 0; x < tmap->width; x++) { int index = tiles[y*tmap->width+x].index; if(index >= ENTITY_OFFSET) { vec2 pos(x*32.0f+16.0f, y*32.0f+16.0f); game.controller->on_entity(index-ENTITY_OFFSET, pos); } } } //game.world.insert_entity(game.controller); #ifdef CONF_DEBUG if(config.dbg_dummies) { for(int i = 0; i < config.dbg_dummies ; i++) { mods_connected(MAX_CLIENTS-i-1); mods_client_enter(MAX_CLIENTS-i-1); if(game.controller->is_teamplay()) game.players[MAX_CLIENTS-i-1]->team = i&1; } } #endif }
void mods_init() { //if(!data) /* only load once */ //data = load_data_from_memory(internal_data); for(int i = 0; i < NUM_NETOBJTYPES; i++) snap_set_staticsize(i, netobj_get_size(i)); layers_init(); col_init(); // reset everything here //world = new GAMEWORLD; //players = new PLAYER[MAX_CLIENTS]; // select gametype if(strcmp(config.sv_gametype, "mod") == 0) game.controller = new GAMECONTROLLER_MOD; else if(strcmp(config.sv_gametype, "ctf") == 0) game.controller = new GAMECONTROLLER_CTF; else if(strcmp(config.sv_gametype, "tdm") == 0) game.controller = new GAMECONTROLLER_TDM; else if(strcmp(config.sv_gametype, "race") == 0) game.controller = new GAMECONTROLLER_RACE; else game.controller = new GAMECONTROLLER_DM; // setup core world //for(int i = 0; i < MAX_CLIENTS; i++) // game.players[i].core.world = &game.world.core; // create all entities from the game layer MAPITEM_LAYER_TILEMAP *tmap = layers_game_layer(); TILE *tiles = (TILE *)map_get_data(tmap->data); /* num_spawn_points[0] = 0; num_spawn_points[1] = 0; num_spawn_points[2] = 0; */ for(int y = 0; y < tmap->height; y++) { for(int x = 0; x < tmap->width; x++) { int index = tiles[y*tmap->width+x].index; if(index >= ENTITY_OFFSET) { game.controller->on_entity(index-ENTITY_OFFSET, x, y); } } } //game.world.insert_entity(game.controller); #ifdef CONF_DEBUG if(config.dbg_dummies) { for(int i = 0; i < config.dbg_dummies ; i++) { mods_connected(MAX_CLIENTS-i-1); mods_client_enter(MAX_CLIENTS-i-1); if(game.controller->is_teamplay()) game.players[MAX_CLIENTS-i-1]->team = i&1; } } #endif }