bool TestState::update() { if (timeToExit) { chatServer->quit(); return false; } // check if the map has been loaded then tell the game server we're ready if (!mLoaded && mapEngine->mapLoaded()) { Packet *packet = new Packet(PGMSG_MAP_LOADED); networkManager->sendPacket(packet); mLoaded = true; Texture *texture = graphicsEngine->getTexture(resourceManager->getDataPath("glowtile_red.png")); interfaceManager->getMouse()->cursor = new Node("Cursor", texture); mapEngine->getLayer(mapEngine->getLayers() - 1)->addNode(interfaceManager->getMouse()->cursor); } // Check for input, if escape pressed, exit if (inputManager->getKey(AG_KEY_ESCAPE)) { // bring up menu to choose whether to log off or quit if (AG_WindowIsVisible(popUp)) AG_WindowHide(popUp); else AG_WindowShow(popUp); } // number of milliseconds since last frame ms = SDL_GetTicks() - lastframe; lastframe = SDL_GetTicks(); mTime += ms; if (mTime > 1000) { graphicsEngine->saveFrames(); mTime = 0; } if (networkManager->isConnected()) { // pass the number of milliseconds to logic beingManager->logic(ms); player->getSelectedCharacter()->logic(ms); player->logic(ms); graphicsEngine->getCamera()->logic(ms); chatServer->process(); } SDL_Delay(0); return true; }
static void OnConfigApplyDisp(AG_Event *event) { int ver; AG_Button *self = (AG_Button *)AG_SELF(); struct gui_disp *cfg = (struct gui_disp *)AG_PTR(1); int i; LockVM(); if(cfg != NULL){ configdat.nDrawFPS = cfg->nDrawFPS; configdat.nEmuFPS = cfg->nEmuFPS; configdat.nBrightness = cfg->nBrightness; configdat.nRenderMethod = cfg->nRenderMethod; configdat.uWidth = cfg->uWidth; configdat.uHeight = cfg->uHeight; configdat.bFullScan = cfg->bFullScan; configdat.bFullScanFS = cfg->bFullScanFS; configdat.bSmoosing = cfg->bSmoosing; configdat.bUseSIMD = cfg->bUseSIMD; #ifdef _USE_OPENCL configdat.bUseOpenCL = cfg->bUseOpenCL; configdat.nCLGlobalWorkThreads = cfg->nCLGlobalWorkThreads; configdat.bCLSparse = cfg->bCLSparse; configdat.nCLDeviceNum = cfg->nCLDeviceNum; configdat.nCLPlatformNum = cfg->nCLPlatformNum; configdat.bCLInteropGL = cfg->bCLInteropGL; for(i = 0; i < 8; i++) { if(cfg->sDeviceName[i] != NULL) free(cfg->sDeviceName[i]); } #endif free(cfg); } ver = fm7_ver; ApplyCfg(); /* * VMヴァージョンが違ったら強制リセット */ if(ver != fm7_ver){ system_reset(); } /* * ここにアイコン変更入れる */ /* * 終了処理 */ UnlockVM(); if(self != NULL) { AG_WindowHide(self->wid.window); AG_ObjectDetach(self); } }
static void OnConfigApplySound(AG_Event *event) { int ver; AG_Button *self = (AG_Button *)AG_SELF(); struct gui_sound *cfg = AG_PTR(1); LockVM(); if(cfg != NULL){ configdat.iTotalVolume = cfg->iTotalVolume; configdat.nFMVolume = cfg->nFMVolume; configdat.nPSGVolume = cfg->nPSGVolume; configdat.nBeepVolume = cfg->nBeepVolume; configdat.nCMTVolume = cfg->nCMTVolume; configdat.nWaveVolume = cfg->nWaveVolume; configdat.uChSeparation = cfg->uChSeparation; configdat.nSampleRate = cfg->nSampleRate; configdat.nSoundBuffer = cfg->nSoundBuffer; configdat.nBeepFreq = cfg->nBeepFreq; configdat.bFMHQmode = cfg->bFMHQmode; configdat.nStereoOut = cfg->nStereoOut; configdat.bTapeMon = cfg->bTapeMon; configdat.bOPNEnable = cfg->bOPNEnable; configdat.bWHGEnable = cfg->bWHGEnable; configdat.bTHGEnable = cfg->bTHGEnable; #ifdef FDDSND configdat.bFddSound = cfg->bFddSound; #endif free(cfg); } ver = fm7_ver; ApplyCfg(); /* * VMヴァージョンが違ったら強制リセット */ if(ver != fm7_ver){ system_reset(); } /* * ここにアイコン変更入れる */ /* * 終了処理 */ UnlockVM(); if(self != NULL) { AG_WindowHide(self->wid.window); AG_ObjectDetach(self); } }
static void Destroy(void *p) { AG_FileSelector *fs = p; if (fs ->panel != NULL) { AG_WindowHide(fs->panel); AG_ObjectDetach(fs->filedlg); AG_ObjectDetach(fs->panel); } AG_ObjectDestroy(fs->filedlg); }
static void SetBootMode(AG_Event *event) { AG_Button *self = (AG_Button *)AG_SELF(); int DosMode = AG_INT(1); if(DosMode) { // DOSモード OnDos(event); } else { OnBasic(event); } AG_WindowHide(self->wid.window); AG_ObjectDetach(self->wid.window); }
void TestState::enter() { int screenWidth = graphicsEngine->getScreenWidth(); int screenHeight = graphicsEngine->getScreenHeight(); AG_Window *chatWindow = AG_WindowNewNamed(AG_WINDOW_NOBUTTONS, "ChatWindow"); AG_WindowSetCaption(chatWindow, "Chat"); AG_WindowSetSpacing(chatWindow, 5); AG_WindowSetGeometry(chatWindow, 10, screenHeight - 185, 400, 175); AG_WindowShow(chatWindow); AG_Notebook *book = AG_NotebookNew(chatWindow, AG_NOTEBOOK_EXPAND); AG_ObjectSetName(book, "ChannelsFolder"); AG_NotebookTab *nbTab = AG_NotebookAddTab(book, "Global Chat", AG_BOX_VERT); AG_ObjectSetName(nbTab, "GlobalChat"); AG_Console *console = AG_ConsoleNew(nbTab, AG_CONSOLE_EXPAND|AG_CONSOLE_AUTOSCROLL); AG_ObjectSetName(console, "Chat"); AG_Textbox *chatInput = AG_TextboxNewS(chatWindow, AG_TEXTBOX_CATCH_TAB, ""); AG_TextboxSizeHint(chatInput, "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); AG_SetEvent(chatInput, "textbox-return", submit_chat, "%p%p%p", chatServer, chatInput, console); // add elements to interface manager interfaceManager->addWindow(chatWindow); popUp = AG_WindowNew(AG_WINDOW_NOBUTTONS); AG_WindowSetCaption(popUp, "Exit Game"); AG_WindowSetGeometry(popUp, screenWidth / 2 - 75, screenHeight / 2 - 40, 150, 80); AG_WindowHide(popUp); AG_Button *logOut = AG_ButtonNewFn(popUp, 0, "Log Out", handle_logout, 0); AG_ButtonJustify(logOut, AG_TEXT_CENTER); AG_Button *exitGame = AG_ButtonNewFn(popUp, 0, "Exit to Desktop", handle_exit, 0); AG_ButtonJustify(exitGame, AG_TEXT_CENTER); interfaceManager->addWindow(popUp); std::string nick = player->getSelectedCharacter()->getName(); std::string host = "neo.us.whatnet.org"; chatServer->setNick(nick); #ifndef WITHOUT_CHAT chatServer->connect(host); #endif // add listener interfaceManager->addMouseListener(&handle_mouse); }
static void Collapse(AG_FileSelector *fs) { if (fs->panel == NULL) { return; } fs->wSaved = WIDTH(fs->panel); fs->hSaved = HEIGHT(fs->panel); AG_WindowHide(fs->panel); AG_ObjectDetach(fs->filedlg); AG_ObjectDetach(fs->panel); fs->panel = NULL; AG_SetInt(fs->button, "state", 0); }