void Maps::moveMap(Player* player, unsigned char* packet){ if(getInt(packet+1) == 0){ int tomap; if(info.find(player->getMap())==info.end()) tomap = player->getMap(); else tomap = info[player->getMap()].rm; player->setHP(50, 0); changeMap(player, tomap, 0); // TODO - Random return; } int portalsize = packet[5]; char portalname[10]; getString(packet+7, portalsize, portalname);; PortalInfo portal; for(unsigned int i=0; i<info[player->getMap()].Portals.size(); i++) if(strcmp(info[player->getMap()].Portals[i].from, portalname) == 0){ portal = info[player->getMap()].Portals[i]; break; } int tonum = 0; if(info.find(portal.toid) != info.end()){ for(unsigned int i=0; i<info[portal.toid].Portals.size(); i++){ if(strcmp(portal.to, info[portal.toid].Portals[i].from) ==0){ tonum = info[portal.toid].Portals[i].id; break; } } } changeMap(player, portal.toid, tonum); }
GameField::GameField(Game& parent, unsigned const saveId) : kuto::Task() , game_(parent), project_( parent.project() ) , map_( *addChildFront(GameMap::createTask(*this)) ) , eventManager_( *addChild(GameEventManager::createTask(*this)) ) , battle_(NULL) , fadeEffect_( *addChild(GameFadeEffect::createTask()) ) , fadeEffectScreen_( *addChild(GameFadeEffect::createTask()) ) , state_(kStateField) , systemMenu_( *addChild(GameSystemMenu::createTask(*this)) ) , pictManager_( *addChild( GamePictureManager::createTask(*this) ) ) , debugMenu_( *addChild(GameDebugMenu::createTask(*this)) ) { if ( rpg2k::ID_MIN <= saveId && saveId <= rpg2k::SAVE_DATA_MAX && project_.getLSD(saveId).exists() ) { project_.loadLSD(saveId); } else { project_.newGame(); } rpg2k::structure::EventState& party = project_.getLSD().party(); kuto::Point2 const playerPos(party.x(), party.y()); // std::vector<uint16_t> const playerIds = project_.getLSD().member(); // int const playerDir = rpg2k::EventDir::DOWN; changeMap( party.mapID(), party.x(), party.y() ); GameCharaStatus status; /* dummyLeader_ = addChild(kuto::TaskCreatorParam3<GamePlayer, GameField&, int, GameCharaStatus&>::createTask(*this, 1, status)); // project_.playerStatus(1)); dummyLeader_->pauseUpdate(); dummyLeader_->setPosition(playerPos); dummyLeader_->setDirection(rpg2k::EventDir::Type(playerDir)); */ fadeInfos_[kFadePlaceMapHide] = GameFadeEffect::kTypeFade; fadeInfos_[kFadePlaceMapShow] = GameFadeEffect::kTypeFade; fadeInfos_[kFadePlaceBattleStartHide] = GameFadeEffect::kTypeStripeVertical; fadeInfos_[kFadePlaceBattleStartShow] = GameFadeEffect::kTypeFade; fadeInfos_[kFadePlaceBattleEndHide] = GameFadeEffect::kTypeFade; fadeInfos_[kFadePlaceBattleEndShow] = GameFadeEffect::kTypeFade; /* for (uint i = 0; i < playerIds.size(); i++) { addPlayer(playerIds[i]); } */ }
static void setRec(int j, gpointer w) { gchar* title; if ((activeTree == NULL) || (activeTree->Recs->len == 0)) { return; } if (j < 0) { j = activeTree->Recs->len - 1; } else if (j >= activeTree->Recs->len) { j = 0; } activeTree->ActiveRec = j; activeRec = (Recons*) g_ptr_array_index(activeTree->Recs, j); drawTree(); changeMap(); title = g_strdup_printf("ev.view: %s: %s", activeTree->ID, activeRec->ID); gtk_window_set_title(GTK_WINDOW(w), title); g_free(title); }
void VRAMEditorLayeredGraphicScene::refresh() { changeMap(areaNum_, mapNum_); }
void LevelEditor::refresh() { changeMap(previewScene_.levelHeaderIndex()); }
LevelEditor::LevelEditor( EditableLevelEffectsHeaders& levelEffectsHeaders__, EditableLevelGraphicsData& levelGraphicsData__, EditableLevelObjectEntryGroups& levelObjectEntryGroups__, EditableLevelPaletteHeaders& paletteHeaders__, EditableMapData& mapData__, EditableMetatileBehaviors& metatileBehaviors__, EditableMetatileHeightMaps& metatileHeightMaps__, EditableMetatileWidthMaps& metatileWidthMaps__, EditableSpawnPoints& spawnPoints__, EditableSpriteMappings& spriteMappings__, EditableStandardPalettes& palettes__, EditableWarpDestinations& warpDestinations__, EditorMetadata& metadata__) : levelEffectsHeaders_(levelEffectsHeaders__), levelGraphicsData_(levelGraphicsData__), levelObjectEntryGroups_(levelObjectEntryGroups__), paletteHeaders_(paletteHeaders__), mapData_(mapData__), metatileBehaviors_(metatileBehaviors__), metatileHeightMaps_(metatileHeightMaps__), metatileWidthMaps_(metatileWidthMaps__), spawnPoints_(spawnPoints__), spriteMappings_(spriteMappings__), palettes_(palettes__), warpDestinations_(warpDestinations__), metadata_(metadata__), toolManager_(), vramCache_(), previewScene_(levelEffectsHeaders__, levelGraphicsData__, levelObjectEntryGroups__, paletteHeaders__, mapData__, metatileBehaviors__, metatileHeightMaps__, metatileWidthMaps__, spawnPoints__, spriteMappings__, palettes__, warpDestinations__, toolManager_, vramCache_), metatilePickerScene_(mapData_.metatileStructures() .metatileStructureSet( mapData_.levelHeaders().levelHeaderByIndex( previewScene_.levelHeaderIndex()) .tileStructureID()), metatileBehaviors_, metatileWidthMaps_, metatileHeightMaps_, toolManager_, vramCache_), // wrapScrollCache_(0, 0), // needWrapCacheRefresh_(false), // lastRenderedScrollX_(0), // lastRenderedScrollY_(0), levelViewMode_(viewLevelVisual) // scrollX_(0), // scrollY_(0) { changeMap(previewScene_.levelHeaderIndex()); }
int SessionController::launch(Character &character, Interface &interface) { //Initialization Map map = SaveUtils::loadMap(character.getName(), character.getMap()); SessionScreen sessionScreen; character.checkView(map); sessionScreen.display(character, interface, map); GameInput input; //Game Loop while (input.getValue() != CLOSE_INPUT) { //To know if we have to count the current turn. bool played = false; //To know if we have to refresh the screen. bool toRefresh = true; //To know if the player have changed his position. bool moved = false; input = sessionScreen.recupInput(); switch (input.getValue()) { moved = false; //Quit Game case ESCAPE_INPUT : { interface.write("Return to the menu (y or n)?"); sessionScreen.display(character, interface, map); GameInput tmpInput; int tmpValue; do { tmpInput = sessionScreen.recupInput(); tmpValue = tmpInput.getValue(); } while ((tmpValue != N_INPUT) && (tmpValue != Y_INPUT)); if (tmpValue == N_INPUT) interface.write("Okay then."); else { SaveUtils::save(character, interface); SaveUtils::saveMap(character.getName(), character.getMap(), map); return TO_MAIN_MENU; } break; } //Display Map case M_INPUT : { MapController mapController(map, character); input.setValue(mapController.launch(map, character)); break; } //Display Inventory case I_INPUT : { InventoryController inventoryController; input.setValue(inventoryController.launch(character)); break; } //Pick Item case P_INPUT : { /*if (map.cell[character.getX()][character.getY()].drops.empty()) interface.write("There's nothing here."); else { //character.equipement.legs = &map.cell[character.getX()][character.getY()].drops.front(); }*/ break; } //Change map case Q_INPUT : { if (changeMap(character, map, interface)) { SaveUtils::save(character, interface); return REDO; } else interface.write("You cannot exit from here !"); break; } //Moving inputs case UP_INPUT : { moved = character.move(0,-1,map); played = true; break; } case DOWN_INPUT : { moved = character.move(0,1,map); played = true; break; } case RIGHT_INPUT : { moved = character.move(1,0,map); played = true; break; } case LEFT_INPUT : { moved = character.move(-1,0,map); played = true; break; } default: toRefresh = false; } if (moved) { interface.showItems(map.cell[character.getX()][character.getY()]); interface.showDestination(map.cell[character.getX()][character.getY()]); } if (played) { map.refreshCells(character.getX(), character.getY()); character.checkView(map); } if (toRefresh) sessionScreen.display(character, interface, map); } SaveUtils::save(character, interface); SaveUtils::saveMap(character.getName(), character.getMap(), map); return CLOSE_INPUT; }