Пример #1
0
	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;
	}
Пример #2
0
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);
	}
}
Пример #3
0
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);
	}


}
Пример #4
0
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);
}
Пример #5
0
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);
}
Пример #6
0
	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);
	}
Пример #7
0
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);
}