void Unload() { BattleEntityDestroy(&entity); BattleEntityDestroy(&entity2); BattleEntityDestroy(&e3); BattleEnd(); }
void Battlefield::Update(uint32 uiDiff) { if(m_battleInProgress) { if(m_battleDurationTimer <= uiDiff) { BattleEnd(); m_battleInProgress = false; } else m_battleDurationTimer -= uiDiff; } else { if(m_nextBattleTimer <= uiDiff) { BattleStart(); m_battleInProgress = true; } else m_nextBattleTimer -= uiDiff; if(m_preBattleTimer <= uiDiff && !m_invitationSent) { sBattlefieldMgr.ChangeState(this); sLog.outDebug("Inviting players in queue to battle"); WorldPacket send_data(SMSG_BATTLEFIELD_MGR_ENTRY_INVITE,13); uint8 guidMask[] = { 5, 3, 7, 2, 6, 1, 0, 4 }; uint8 guidBytes[] = { 1, 2, 5, 4, 7, 0, 3, 6 }; send_data.WriteGuidMask(getGuid(),guidMask,8); send_data.FlushBits(); send_data.WriteGuidBytes(getGuid(),guidBytes,2,0); send_data << uint32(time(NULL) + 20); // unk1 send_data.WriteGuidBytes(getGuid(),guidBytes,6,2); BattlefieldQueue * queue = sBattlefieldMgr.GetQueueForBattlefield(getGuid()); for(PlayerQueue::iterator itr = queue->m_inQueue.begin(); itr != queue->m_inQueue.end(); ++itr) { (*itr)->GetSession()->SendPacket(&send_data); } m_invitationSent = true; } else m_preBattleTimer -= uiDiff; } OnUpdate(uiDiff); }
//=============================================== //シーンの描画 //=============================================== void CSceneManager::DrawScene(eSceneType type) { m_CurrentScene = type; switch(m_CurrentScene) { /*初期化画面*/ case SCENE_INIT: { Initialize(); break; } /*AI待ち画面*/ case SCENE_WAIT: { obj[SCENE_WAIT].DoAllTasks(); WaitAI(); break; } case SCENE_CHOOSESPECIAL: { obj[SCENE_CHOOSESPECIAL].DoAllTasks(); ChooseSpecial(); break; } case SCENE_CHOOSECHARA: { obj[SCENE_CHOOSECHARA].DoAllTasks(); ChooseChara(); break; } /*メイン画面*/ case SCENE_MAIN: { obj[SCENE_MAIN].DoAllTasks(); GameMain(); break; } /*戦闘画面*/ case SCENE_BATTLE: { obj[SCENE_BATTLE].DoAllTasks(); Battle(); break; } /*戦闘終了画面*/ case SCENE_BATTLEEND: { BattleEnd(); break; } /*終了処理画面*/ case SCENE_FINAL: { Finalize(); break; } } }