Exemple #1
0
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]);
	}
	 */
}
Exemple #3
0
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_);
}
Exemple #5
0
void LevelEditor::refresh() {
  changeMap(previewScene_.levelHeaderIndex());
}
Exemple #6
0
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;
}