void ResourceCache::LoadPlayerResources(const TiXmlHandle& hndl) { PlayerResource player_1(LoadPlayer(PlayerType::Player_1, "Player_1", hndl)); PlayerResource player_2(LoadPlayer(PlayerType::Player_2, "Player_2", hndl)); PlayerResource player_3(LoadPlayer(PlayerType::Player_3, "Player_3", hndl)); PlayerResource player_4(LoadPlayer(PlayerType::Player_4, "Player_4", hndl)); mPlayerRes.insert({ player_1.GetType(), player_1 }); mPlayerRes.insert({ player_2.GetType(), player_2 }); mPlayerRes.insert({ player_3.GetType(), player_3 }); mPlayerRes.insert({ player_4.GetType(), player_4 }); }
void PlayerParameters::Load() { TiXmlDocument fichier("data/player/param.xml"); if(!fichier.LoadFile(TIXML_ENCODING_LEGACY)) throw Exception("Impossible de charger le fichier: data/player/param.xml"); TiXmlElement *rootNode = fichier.RootElement(); TiXmlNode *player = 0; while((player=rootNode->IterateChildren("player",player))) { LoadPlayer(player); } }
void IStage::init(std::ifstream& f) { /* // 先に登録されているオブジェクトを消してから読み込む auto& objs = gm()->GetObjects("Player"); for (auto& obj : objs) obj->kill(); //*/ LoadPlayer(f); LoadEnemies(f); }
void LoadCommand::Execute() { statsStruct stats; stats = LoadPlayer(); int i; GetGame()->GetPlayer().SetName(stats.statsArray[0]); GetGame()->GetPlayer().SetRace(stats.statsArray[1]); i = convertStringToInt(stats.statsArray[2]); GetGame()->GetPlayer().SetAge(i); i = convertStringToInt(stats.statsArray[3]); GetGame()->GetPlayer().SetGender((i == 1 ? Male : Female)); i = convertStringToInt(stats.statsArray[4]); GetGame()->GetPlayer().SetClass((Class)i); i = convertStringToInt(stats.statsArray[5]); GetGame()->GetPlayer().SetExperience(i); i = convertStringToInt(stats.statsArray[6]); GetGame()->GetPlayer().SetHitpoints(i); std::cout<<"Game Loaded!\n"; }
void __fastcall LoadGame(bool firstflag) { int v1; // esi int v2; // edi int v5; // ebx int v6; // eax int v7; // eax int v8; // ecx bool v9; // sf unsigned char v10; // of int *v11; // esi int *v12; // esi int i; // esi int *v14; // esi int *v15; // esi int j; // esi int *v17; // esi int *v18; // esi int k; // esi int l; // esi signed int v21; // esi int m; // esi int v23; // esi int *v24; // esi int *v25; // esi int n; // esi int *v27; // esi char *v29; // edi char *v30; // edi char *v31; // edi char *v32; // edi int (*v33)[112]; // ebx _DWORD *v34; // edi char *v35; // edi char *v36; // edi char *v37; // edi char *v38; // edi signed int v39; // ebx bool *v40; // edi char *v41; // edi int v42; // esi char dst[260]; // [esp+0h] [ebp-120h] int len; // [esp+104h] [ebp-1Ch] int v46; // [esp+108h] [ebp-18h] int v47; // [esp+10Ch] [ebp-14h] void *ptr; // [esp+110h] [ebp-10h] int v49; // [esp+114h] [ebp-Ch] int from_save; // [esp+118h] [ebp-8h] int quest_num; // [esp+11Ch] [ebp-4h] FreeGameMem(); pfile_remove_temp_files(); pfile_get_game_name(dst); ptr = pfile_read(dst, &len); tbuff = ptr; if ( ILoad_2() != 'RETL' ) TermMsg("Invalid save file"); setlevel = OLoad(); setlvlnum = ILoad(); currlevel = ILoad(); leveltype = ILoad(); v1 = ILoad(); v2 = ILoad(); invflag = OLoad(); chrflag = OLoad(); v5 = ILoad(); v47 = ILoad(); v49 = ILoad(); v6 = ILoad(); quest_num = 0; v46 = v6; do { *(int *)((char *)glSeedTbl + quest_num) = ILoad_2(); v7 = ILoad(); v8 = quest_num; quest_num += 4; v10 = __OFSUB__(quest_num, 68); v9 = quest_num - 68 < 0; *(int *)((char *)gnLevelTypeTbl + v8) = v7; } while ( v9 ^ v10 ); LoadPlayer(myplr); quest_num = 0; do LoadQuest(quest_num++); while ( quest_num < 16 ); quest_num = 0; do LoadPortal(quest_num++); while ( quest_num < 4 ); LoadGameLevel(firstflag, 4); SyncInitPlr(myplr); SyncPlrAnim(myplr); ViewX = v1; numitems = v47; nummissiles = v49; ViewY = v2; nummonsters = v5; nobjects = v46; v11 = monstkills; do { *v11 = ILoad_2(); ++v11; } while ( (signed int)v11 < (signed int)&monstkills[200] ); if ( leveltype ) { v12 = monstactive; do { *v12 = ILoad(); ++v12; } while ( (signed int)v12 < (signed int)&monstactive[200] ); for ( i = 0; i < nummonsters; ++i ) LoadMonster(monstactive[i]); v14 = missileactive; do { *v14 = BLoad(); ++v14; } while ( (signed int)v14 < (signed int)&missileactive[125] ); v15 = missileavail; do { *v15 = BLoad(); ++v15; } while ( (signed int)v15 < (signed int)&missileavail[125] ); for ( j = 0; j < nummissiles; ++j ) LoadMissile(missileactive[j]); v17 = objectactive; do { *v17 = BLoad(); ++v17; } while ( (signed int)v17 < (signed int)&objectactive[127] ); v18 = objectavail; do { *v18 = BLoad(); ++v18; } while ( (signed int)v18 < (signed int)&objectavail[127] ); for ( k = 0; k < nobjects; ++k ) LoadObject(objectactive[k]); for ( l = 0; l < nobjects; ++l ) SyncObjectAnim(objectactive[l]); numlights = ILoad(); v21 = 0; do lightactive[v21++] = BLoad(); while ( v21 < 32 ); for ( m = 0; m < numlights; ++m ) LoadLighting((unsigned char)lightactive[m]); visionid = ILoad(); v23 = 0; numvision = ILoad(); if ( numvision > 0 ) { do LoadVision(v23++); while ( v23 < numvision ); } } v24 = itemactive; do { *v24 = BLoad(); ++v24; } while ( (signed int)v24 < (signed int)&itemactive[127] ); v25 = itemavail; do { *v25 = BLoad(); ++v25; } while ( (signed int)v25 < (signed int)&itemavail[127] ); for ( n = 0; n < numitems; ++n ) LoadItem(itemactive[n]); v27 = UniqueItemFlag; do { *v27 = OLoad(); ++v27; } while ( (signed int)v27 < (signed int)&UniqueItemFlag[128] ); quest_num = 0; do { from_save = 112; v29 = (char *)dTransVal + quest_num; do { *v29 = BLoad(); v29 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); quest_num = 0; do { from_save = 112; v30 = (char *)dFlags + quest_num; do { *v30 = BLoad(); v30 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); quest_num = 0; do { from_save = 112; v31 = (char *)dPlayer + quest_num; do { *v31 = BLoad(); v31 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); quest_num = 0; do { from_save = 112; v32 = (char *)dItem + quest_num; do { *v32 = BLoad(); v32 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); if ( leveltype ) { v33 = dMonster; do { v34 = (unsigned int *)v33; from_save = 112; do { *v34 = ILoad(); v34 += 112; --from_save; } while ( from_save ); v33 = (int (*)[112])((char *)v33 + 4); } while ( (signed int)v33 < (signed int)dMonster[1] ); quest_num = 0; do { from_save = 112; v35 = (char *)dDead + quest_num; do { *v35 = BLoad(); v35 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); quest_num = 0; do { from_save = 112; v36 = (char *)dObject + quest_num; do { *v36 = BLoad(); v36 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); quest_num = 0; do { from_save = 112; v37 = (char *)dTransVal + quest_num; do { *v37 = BLoad(); v37 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); quest_num = 0; do { from_save = 112; v38 = (char *)dTransVal2 + quest_num; do { *v38 = BLoad(); v38 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); v39 = 0; do { v40 = (bool *)automapview + v39; from_save = 40; do { *v40 = OLoad(); v40 += 40; --from_save; } while ( from_save ); ++v39; } while ( v39 < 40 ); quest_num = 0; do { from_save = 112; v41 = (char *)dMissile + quest_num; do { *v41 = BLoad(); v41 += 112; --from_save; } while ( from_save ); ++quest_num; } while ( quest_num < 112 ); } numpremium = ILoad(); premiumlevel = ILoad(); v42 = 0; do LoadPremium(v42++); while ( v42 < 6 ); automapflag = OLoad(); AutoMapScale = ILoad(); mem_free_dbg(ptr); AutomapZoomReset(); ResyncQuests(); if ( leveltype ) ProcessLightList(); RedoPlayerVision(); ProcessVisionList(); missiles_process_charge(); ResetPal(); SetCursor(CURSOR_HAND); gbProcessPlayers = 1; }
void Game::LoadGame() { LoadPlayer(); }
void LevelFactory::ReadXML(const std::string& aFilePath) { Prism::Engine::GetInstance()->GetModelLoader()->Pause(); Prism::Engine::GetInstance()->myIsLoading = true; FindTextures("Data/Resource/Texture/Particle/"); myCurrentLevel->myScene = new Prism::Scene(); myCurrentLevel->myWeaponFactory = new WeaponFactory(); myCurrentLevel->myWeaponFactory->LoadWeapons("Data/Script/LI_list_weapon.xml"); myCurrentLevel->myWeaponFactory->LoadProjectiles("Data/Script/LI_list_projectile.xml"); myCurrentLevel->myEntityFactory = new EntityFactory(myCurrentLevel->myWeaponFactory); myCurrentLevel->myEntityFactory->LoadEntites("Data/Script/LI_list_entity.xml", myDifficults[myCurrentDifficultyID].myMultiplier); myCurrentLevel->myCollisionManager = new CollisionManager(); myCurrentLevel->myBulletManager = new BulletManager(*myCurrentLevel->myCollisionManager, *myCurrentLevel->myScene); myCurrentLevel->myBulletManager->LoadFromFactory(myCurrentLevel->myWeaponFactory, myCurrentLevel->myEntityFactory, "Data/Script/LI_list_projectile.xml"); myDirectionalLights.DeleteAll(); myPointLights.DeleteAll(); mySpotLights.DeleteAll(); LoadPlayer(); myCurrentLevel->myEmitterManager = new EmitterManager(myCurrentLevel->myPlayer); ReadLevelSettings(); myCurrentLevel->myEntities.Add(myCurrentLevel->myPlayer); myCurrentLevel->myCamera = new Prism::Camera(myCurrentLevel->myPlayer->myOrientation); myCurrentLevel->myPlayer->GetComponent<GUIComponent>()->SetCamera(myCurrentLevel->myCamera); myCurrentLevel->GetEmitterManager()->AddEmitter(myCurrentLevel->myPlayer->GetComponent<ParticleEmitterComponent>()); myCurrentLevel->myPlayer->SetPlayerScene(*myCurrentLevel->myScene); Sleep(10); XMLReader reader; reader.OpenDocument(aFilePath); tinyxml2::XMLElement* levelElement = reader.ForceFindFirstChild("root"); levelElement = reader.ForceFindFirstChild(levelElement, "scene"); std::string skySphere; std::string cubeMap; std::string missionXML; std::string eventXML; std::string conversationXML; reader.ForceReadAttribute(reader.ForceFindFirstChild(levelElement, "missionxml"), "source", missionXML); reader.ForceReadAttribute(reader.ForceFindFirstChild(levelElement, "eventxml"), "source", eventXML); reader.ForceReadAttribute(reader.ForceFindFirstChild(levelElement, "conversationxml"), "source", conversationXML); CU::Vector3<float> playerPos; CU::Vector3<float> playerRot; tinyxml2::XMLElement* playerPosElement; playerPosElement = reader.ForceFindFirstChild(levelElement, "PlayerStartTranslate"); playerPosElement = reader.ForceFindFirstChild(playerPosElement, "position"); reader.ForceReadAttribute(playerPosElement, "X", playerPos.x); reader.ForceReadAttribute(playerPosElement, "Y", playerPos.y); reader.ForceReadAttribute(playerPosElement, "Z", playerPos.z); playerPosElement = reader.ForceFindFirstChild(levelElement, "PlayerStartTranslate"); playerPosElement = reader.ForceFindFirstChild(playerPosElement, "rotation"); reader.ForceReadAttribute(playerPosElement, "X", playerRot.x); reader.ForceReadAttribute(playerPosElement, "Y", playerRot.y); reader.ForceReadAttribute(playerPosElement, "Z", playerRot.z); myCurrentLevel->myPlayer->myOrientation = CU::Matrix44f(); myCurrentLevel->myPlayer->myOrientation = myCurrentLevel->myPlayer->myOrientation.CreateRotateAroundX(playerRot.x) * myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->myOrientation = myCurrentLevel->myPlayer->myOrientation.CreateRotateAroundY(playerRot.y) * myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->myOrientation = myCurrentLevel->myPlayer->myOrientation.CreateRotateAroundZ(playerRot.z) * myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->myOrientation = CU::GetOrientation(myCurrentLevel->myPlayer->myOrientation, playerRot); myCurrentLevel->myPlayer->myOrientation.SetPos(playerPos * 10.f); myCurrentLevel->myPlayer->myOriginalOrientation = myCurrentLevel->myPlayer->myOrientation; myCurrentLevel->myPlayer->Reset(); myCurrentLevel->myConversationManager = new ConversationManager(conversationXML); myCurrentLevel->myMissionManager = new MissionManager(*myCurrentLevel, *myCurrentLevel->myPlayer, missionXML); myCurrentLevel->myEventManager = new EventManager(eventXML, *myCurrentLevel->myConversationManager , *myCurrentLevel->myPlayer); reader.ReadAttribute(reader.ForceFindFirstChild(levelElement, "skysphere"), "source", skySphere); reader.ReadAttribute(reader.ForceFindFirstChild(levelElement, "cubemap"), "source", cubeMap); Prism::Engine::GetInstance()->GetEffectContainer()->SetCubeMap(cubeMap); SetSkySphere(skySphere, "Data/Resource/Shader/S_effect_skybox.fx"); LoadLights(reader, levelElement); LoadProps(reader, levelElement); LoadDefendables(reader, levelElement, myDifficults[myCurrentDifficultyID].myHealthMultiplier); LoadStructures(reader, levelElement); LoadTriggers(reader, levelElement); LoadPowerups(reader, levelElement); reader.CloseDocument(); myCurrentLevel->myEMPHexagon = new Entity(eEntityType::EMP, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC , "EMP"); myCurrentLevel->myEMPHexagon->AddComponent<GraphicsComponent>()->Init("Data/Resource/Model/Weapon/SM_emp_hexasphere.fbx" , "Data/Resource/Shader/S_effect_emp.fx"); myCurrentLevel->myEMPHexagon2 = new Entity(eEntityType::EMP, *myCurrentLevel->myScene, Prism::eOctreeType::STATIC , "EMP"); myCurrentLevel->myEMPHexagon2->AddComponent<GraphicsComponent>()->Init("Data/Resource/Model/Weapon/SM_emp_hexasphere.fbx" , "Data/Resource/Shader/S_effect_emp.fx"); for (int i = 0; i < myCurrentLevel->myEntities.Size(); ++i) { if (myCurrentLevel->myEntities[i]->GetComponent<AIComponent>() != nullptr) { std::string targetName = myCurrentLevel->myEntities[i]->GetComponent<AIComponent>()->GetTargetName(); Entity* target = myCurrentLevel->GetEntityWithName(targetName); myCurrentLevel->myEntities[i]->GetComponent<AIComponent>()->SetEntityToFollow(myCurrentLevel->myPlayer, myCurrentLevel->myPlayer); if (target != nullptr) { myCurrentLevel->myEntities[i]->GetComponent<AIComponent>()->SetEntityToFollow(target, myCurrentLevel->myPlayer); } } if (myCurrentLevel->myEntities[i]->GetComponent<ParticleEmitterComponent>() != nullptr) { myCurrentLevel->myEmitterManager->AddEmitter(myCurrentLevel->myEntities[i]->GetComponent<ParticleEmitterComponent>()); } } for (int i = 0; i < static_cast<int>(eBulletType::COUNT); ++i) { if (i <= 8) { for (int j = 0; j < myCurrentLevel->myBulletManager->GetBullet(i)->myPlayerBullets.Size(); ++j) { if (myCurrentLevel->myBulletManager->GetBullet(i)->myPlayerBullets[j]->GetComponent<ParticleEmitterComponent>() != nullptr) { myCurrentLevel->myEmitterManager->AddEmitter(myCurrentLevel->myBulletManager->GetBullet(i)->myPlayerBullets[j]->GetComponent<ParticleEmitterComponent>()); } if (myCurrentLevel->myBulletManager->GetBullet(i)->myEnemyBullets[j]->GetComponent<ParticleEmitterComponent>() != nullptr) { myCurrentLevel->myEmitterManager->AddEmitter(myCurrentLevel->myBulletManager->GetBullet(i)->myEnemyBullets[j]->GetComponent<ParticleEmitterComponent>()); } } } } AddToScene(); myCurrentLevel->myMissionManager->Init(); myCurrentLevel->myPlayer->GetComponent<InputComponent>()->SetSkyPosition(); myCurrentLevel->myPlayer->GetComponent<GUIComponent>()->SetCockpitOrientation(); Prism::Engine::GetInstance()->GetModelLoader()->UnPause(); Prism::Engine::GetInstance()->GetModelLoader()->WaitUntilFinished(); Prism::Engine::GetInstance()->GetEffectContainer()->GetEffect("Data/Resource/Shader/S_effect_pbl.fx")->SetAmbientHue(myAmbientHue); Prism::Engine::GetInstance()->myIsLoading = false; myIsLoading = false; }
int CMapFileIO::LoadMap(CLevelMap &map, HANDLE hFile) const { XML_MANAGER_HANDLE xml = 0; xml = CreateWorker(); if(!xml) return 1; DWORD res = ReadFromFileHandle(xml, hFile); if(res != ERROR_SUCCESS) return 1; CloseHandle(hFile); XML_NODE_HANDLE group; //dimensions group = RetrieveNode(xml, 0, L"dimensions"); if(!group) return 1; LPWSTR mapwt = GetNodeAttr(xml, group, L"width"); if(!mapwt) return 1; LPWSTR mapht = GetNodeAttr(xml, group, L"height"); if(!mapht) return 1; int mapw = _wtoi(mapwt); int maph = _wtoi(mapht); map.SetDimensions(mapw, maph); ReleaseTextString(mapwt); ReleaseTextString(mapht); ReleaseNode(group); //background group = RetrieveNode(xml, 0, L"background"); if(!group) return 1; map.SetBackground(LoadBackground(xml, group)); ReleaseNode(group); //player group = RetrieveNode(xml, 0, L"player"); CStubCreature* pPlr = 0; if(group) { pPlr = LoadPlayer(xml, group); map.SetPlayerPos(pPlr->GetPosition()); delete pPlr; } ReleaseNode(group); //tiletypes LoadTileTypesDict(map.m_TilesDictionary); //tiles group = RetrieveNode(xml, 0, L"tiles"); if(!group) return 1; LoadTileList(map.m_pTiles, map.m_TilesDictionary, xml, group); ReleaseNode(group); //creatures group = RetrieveNode(xml, 0, L"creatures"); if(group) LoadCreaturesList( map.m_pCreatures, xml, group ); ReleaseNode(group); map.AssignMyEnviroment(); ReleaseWorker(xml); return 0; }