예제 #1
0
void NavigationScene::update() {
    if (_smackerFileHash != 0) {
        showMouse(false);
        _smackerPlayer->open(_smackerFileHash, false);
        _vm->_screen->clear();
        _vm->_screen->setSmackerDecoder(_smackerPlayer->getSmackerDecoder());
        _smackerDone = false;
        /*
        if (!_interactive)
        	_smackerDone = true;
        */
        _smackerFileHash = 0;
    } else if (_smackerDone) {
        if (_leaveSceneAfter) {
            _vm->_screen->setSmackerDecoder(NULL);
            sendMessage(_parentModule, 0x1009, _navigationIndex);
        } else {
            const NavigationItem &navigationItem = (*_navigationList)[_navigationIndex];
            createMouseCursor();
            showMouse(true);
            _isTurning = false;
            _isWalkingForward = false;
            _interactive = true;
            _vm->_soundMan->setTwoSoundsPlayFlag(false);
            _vm->_soundMan->setSoundThreePlayFlag(false);
            _smackerDone = false;
            _smackerPlayer->open(navigationItem.fileHash, true);
            _vm->_screen->clear();
            _vm->_screen->setSmackerDecoder(_smackerPlayer->getSmackerDecoder());
            sendMessage(_parentModule, 0x100A, _navigationIndex);
        }
    }
    Scene::update();
}
예제 #2
0
void end_lesson(int min,int sec,int eff,int err, int speed)
{
	int change=0,y,x;
	show_summary(min, sec, eff, err, speed);
	draw_3dbox(260,220,320,240,15);
	settextstyle(0,0,1);
	color_text(280,227,"Ok",3);
	showMouse();
	while(1)
	{
		while(1)
		{
			x=getMouseX(); /* get the mouse position*/
			y=getMouseY();
			if(x>=260&&x<=320&&y>=220&&y<=240 && !change)
			{
				change = 1;
				settextstyle(0,0,1);
				hideMouse();
				draw_3dbox(260,220,320,240,6);	/* change the color of the box*/
				/* change the text color*/
				color_text(280,227,"Ok",15);   /*cursor on yes*/
				showMouse();
			}

			if((x<=260||x>=320||y<=220||y>=240)&& change)
			{
				change = 0;
				hideMouse();
				draw_3dbox(260,220,320,240,15);
				/* when mouse moves away change the color to normal one*/
				color_text(280,227,"Ok",3);
				showMouse();         /*cursor on yes/no*/
			}

			if(mouseClicked())
			{
				x=getMouseX();       /*get the position where mouse is clicked*/
				y=getMouseY();
				while(1)
					if(mouseReleased())		/* get the position*/
						break;			/* where mouse is clicked*/
				break;					/* and released */
			}
		}/*end of while 2 which changes color of button*/

		/*check the position of mouse clicked*/
		if(x>=260&&x<=320&&y>=220&&y<=240)  // back
		{
			hideMouse();
			up_down_button(260,220,320,240,280,227,19,15,15,6);
			break;
		}
	}/*end of while 1*/

}
예제 #3
0
int main(int argc, char *argv[]){
    showEye();
    showHead();
    showMouse();

    return;
}
예제 #4
0
uint32 Scene1608::hmLowerFloor(int messageNum, const MessageParam &param, Entity *sender) {
	Scene::handleMessage(messageNum, param, sender);
	switch (messageNum) {
	case 0x100D:
		if (param.asInteger() == 0x20250B1A) {
			clearRectList();
			_klaymen->setVisible(false);
			showMouse(false);
			_sprite1->setVisible(false);
			//sendMessage(_asDoor, 0x4809, 0); // Play sound?
			_countdown1 = 28;
		}
		break;
	case 0x200D:
		sendMessage(_parentModule, 0x200D, 0);
		break;
	case 0x4826:
		if (sender == _asTape) {
			sendEntityMessage(_kmScene1608, 0x1014, _asTape);
			setMessageList(0x004B4770);
		} else if (sender == _asKey)
			setMessageList(0x004B46C8);
		break;
	}
	return 0;
}
예제 #5
0
void Scene1105::upClosePanel() {
	Scene::update();
	if (_backgroundIndex != 0) {
		_backgroundIndex--;
		if (_backgroundIndex == 14) {
			showMouse(false);
			_ssSymbols[0]->hide();
			_ssSymbols[1]->hide();
			_ssSymbols[2]->hide();
			_ssSymbolDice[0]->hide();
			_ssSymbolDice[1]->hide();
			_ssSymbolDice[2]->hide();
		}
		if (_backgroundIndex < 6 && _backgroundIndex % 2 == 0) {
			uint32 backgroundFileHash = kScene1105BackgroundFileHashes[3 - _backgroundIndex / 2]; // CHECKME
			if (_backgroundIndex == 4) {
				playSound(1);
				_asTeddyBear->hide();
			}
			changeBackground(backgroundFileHash);
			_palette->addPalette(backgroundFileHash, 0, 256, 0);
		}
		if (_backgroundIndex == 0) {
			SetUpdateHandler(&Scene1105::update);
			_isClosePanelDone = true;
		}
	}
}
void PostGameScene::onFocus()
{
	std::shared_ptr<MouseEventDataShow> showMouse(new MouseEventDataShow(false));
	m_EventManager->queueEvent(showMouse);
	std::shared_ptr<MouseEventDataLock> lockMouse(new MouseEventDataLock(true));
	m_EventManager->queueEvent(lockMouse);
}
예제 #7
0
void VoutWindow::processEvent( EvtMotion &rEvtMotion )
{
    int x = rEvtMotion.getXPos() - m_pParentWindow->getLeft() - getLeft();
    int y = rEvtMotion.getYPos() - m_pParentWindow->getTop() - getTop();

    vout_window_ReportMouseMoved( m_pWnd, x, y );
    showMouse();
}
예제 #8
0
파일: chicken.cpp 프로젝트: OmerMor/scummvm
bool CChicken::MouseDragEndMsg(CMouseDragEndMsg *msg) {
	if (_field13C) {
		showMouse();
		return true;
	} else {
		return CCarry::MouseDragEndMsg(msg);
	}
}
예제 #9
0
DiskplayerScene::DiskplayerScene(NeverhoodEngine *vm, Module *parentModule, int paletteIndex)
	: Scene(vm, parentModule), _diskIndex(0), _appearCountdown(0), _tuneInCountdown(0),
	_hasAllDisks(false), _dropKey(false), _inputDisabled(true), _updateStatus(kUSStopped) { 

	int availableDisksCount = 0;
	
	setBackground(0x8A000044);
	setPalette(kDiskplayerPaletteFileHashes[paletteIndex]);

	_ssPlayButton = insertSprite<DiskplayerPlayButton>(this);
	addCollisionSprite(_ssPlayButton);

	_asKey = insertSprite<AsDiskplayerSceneKey>();

	for (int i = 0; i < 20; i++) {
		_diskAvailable[i] = false;
		if (getSubVar(VA_IS_TAPE_INSERTED, i))
			availableDisksCount++;
	}

	for (int i = 0; i < availableDisksCount; i++)
		_diskAvailable[kDiskplayerInitArray[i] - 1] = true;

	for (int slotIndex = 0; slotIndex < 20; slotIndex++) {
		_diskSlots[slotIndex] = new DiskplayerSlot(_vm, this, slotIndex, _diskAvailable[slotIndex]);
		addEntity(_diskSlots[slotIndex]);
	}

	_hasAllDisks = availableDisksCount == 20;
	
	if (_hasAllDisks && !getGlobalVar(V_HAS_FINAL_KEY))
		_dropKey = true;

	_finalDiskSlot = new DiskplayerSlot(_vm, this, 20, false);
	addEntity(_finalDiskSlot);

	insertPuzzleMouse(0x000408A8, 20, 620);
	showMouse(false);

	_diskSmackerPlayer = new SmackerPlayer(_vm, this, 0x08288103, false, true);
	addEntity(_diskSmackerPlayer);
	addSurface(_diskSmackerPlayer->getSurface());
	_diskSmackerPlayer->setDrawPos(154, 86);
	_vm->_screen->setSmackerDecoder(_diskSmackerPlayer->getSmackerDecoder());

	_palette->usePalette();

	SetMessageHandler(&DiskplayerScene::handleMessage); 
	SetUpdateHandler(&DiskplayerScene::update); 
	_appearCountdown = 6;

}
예제 #10
0
/* this function draws the tutorial window each time it is called */
void tutorial_window(void)
{
	int i,y;
	clearviewport();
	/* back screen */
	draw_3dbox(118,5,getmaxx()-175,getmaxy()-5,6);	/* brown*/
	draw_3dbox(130,20,getmaxx()-190,getmaxy()-20,15);	/*white*/
	setfillstyle(1,4);
	bar(120,7,129,getmaxy()-7);	/* red */

	setlinestyle(SOLID_LINE,1,2);

	for(i=0,y=44;i<16;i++,y+=26)    /* the dots */
	{
		setcolor(7);
		circle(140,y,4);
		setfillstyle(1,7);
		floodfill(140,y,7);
	}
	setcolor(3);  		/* spiral portion of the book */
	for(i=0,y=40;i<16;i++,y+=26)
	{
		ellipse(128,y,140,340,14,11);
		ellipse(128,y+4,140,340,13,9);
	}

	setlinestyle(SOLID_LINE,1,3);
	setcolor(7);
	for(i=0;i<2;i++)
	{
		line(275,50-i,425+i,50-i);    	/* right page right corner */
		line(425-i,50+i,425-i,140);
		line(165-i,353,165-i,430);  	/* right page left corner */
		line(166+i,429-i,325,429-i);
		setlinestyle(SOLID_LINE,1,1);
		setcolor(8);    		/*for shade */
	}

	undr_line(165,81,12,250,18,7);
	draw_3dbox(500,12,620,125,1);
	settextstyle(0,0,1);
	color_text(545,32,"Time",15);
	button(520,45,600,63,15,1);
	button(520,75,600,110,15,1);
	keyboard_lesson();
	setcolor(4);
	circle(550,260,30);
	showMouse();

}
예제 #11
0
bool CCarryParrot::MouseDragEndMsg(CMouseDragEndMsg *msg) {
	stopMovie();

	if (msg->_mousePos.y >= 360) {
		petAddToInventory();
		return true;
	}

	if (compareViewNameTo("ParrotLobby.Node 1.N")) {
		if (msg->_mousePos.x >= 75 && msg->_mousePos.x <= 565 &&
				!CParrot::_v2 && !CCage::_open) {
			setVisible(false);
			_fieldE0 = 0;
			CTreeItem *perchedParrot = findUnder(getRoot(), "PerchedParrot");
			detach();
			addUnder(perchedParrot);
			sound8(true);

			CPutParrotBackMsg backMsg(msg->_mousePos.x);
			backMsg.execute(perchedParrot);
		} else {
			setVisible(false);
			_fieldE0 = 0;
			CParrot::_v4 = 2;
			playSound("z#475.wav");
			sound8(true);
			moveUnder(findRoom());

			CActMsg actMsg("Shut");
			actMsg.execute("ParrotCage");
		}
	} else {
		CCharacter *character = dynamic_cast<CCharacter *>(msg->_dropTarget);
		if (character) {
			CUseWithCharMsg charMsg(character);
			charMsg.execute(this, nullptr, 0);
		} else {
			setVisible(false);
			_fieldE0 = 0;
			playSound("z#475.wav");
			sound8(true);
			moveUnder(findRoom());
		}
	}

	showMouse();
	return true;
}
예제 #12
0
void VoutWindow::processEvent( EvtMouse &rEvtMouse )
{
    int button = -1;
    if( rEvtMouse.getButton() == EvtMouse::kLeft )
        button = 0;
    else if( rEvtMouse.getButton() == EvtMouse::kMiddle )
        button = 1;
    else if( rEvtMouse.getButton() == EvtMouse::kRight )
        button = 2;

    if( rEvtMouse.getAction() == EvtMouse::kDown )
        vout_window_ReportMousePressed( m_pWnd, button );
    else if( rEvtMouse.getAction() == EvtMouse::kUp )
        vout_window_ReportMouseReleased( m_pWnd, button );
    else if( rEvtMouse.getAction() == EvtMouse::kDblClick )
        vout_window_ReportMouseDoubleClick( m_pWnd, button );
    showMouse();
}
예제 #13
0
파일: glass.cpp 프로젝트: AReim1982/scummvm
bool CGlass::MouseDragEndMsg(CMouseDragEndMsg *msg) {
	showMouse();
	if (msg->_dropTarget) {
		if (msg->_dropTarget->isPet()) {
			petAddToInventory();
		} else {
			CCharacter *npc = dynamic_cast<CCharacter *>(msg->_dropTarget);
			if (npc) {
				CUseWithCharMsg useMsg(npc);
				useMsg.execute(this);
			} else {
				CUseWithOtherMsg otherMsg(msg->_dropTarget);
				otherMsg.execute(this);
			}
		}
	} else if (compareViewNameTo(_fullViewName) && msg->_mousePos.y < 360) {
		setPosition(_origPos);
	} else {
		petAddToInventory();
	}

	return true;
}
예제 #14
0
void Window::close()
{
	showMouse(true);

	SDL_EnableScreenSaver();

	if (m_pRenderer != NULL)
	{		
		SDL_DestroyRenderer(m_pRenderer);

		m_pRenderer	= NULL;
	}

	if (m_pWindow != NULL)
	{
		SDL_GL_MakeCurrent(m_pWindow, NULL);

		SDL_DestroyWindow(m_pWindow);

		m_pWindow	= NULL;
	}	

	SDL_Quit();
}
예제 #15
0
uint32 Scene1105::handleMessage(int messageNum, const MessageParam &param, Entity *sender) {
	uint32 messageResult = 0;
	Scene::handleMessage(messageNum, param, sender);
	switch (messageNum) {
	case 0x0001:
		if (param.asPoint().x <= 20 || param.asPoint().x >= 620) {
			if (!_isActionButtonClicked && _backgroundIndex == 0) {
				if (_isPanelOpen) {
					_isPanelOpen = false;
					_backgroundIndex = 15;
					SetUpdateHandler(&Scene1105::upClosePanel);
				} else
					_isClosePanelDone = true;
				_leaveResult = 0;
			}
		}
		break;
	case 0x2001:
		showMouse(false);
		_backgroundIndex = 24;
		SetUpdateHandler(&Scene1105::upOpenPanel);
		break;
	case 0x2003:
		_backgroundIndex = 24;
		_leaveResult = 1;
		SetUpdateHandler(&Scene1105::upClosePanel);
		break;
	case 0x4807:
		if (sender == _ssActionButton) {
			if (getSubVar(VA_GOOD_DICE_NUMBERS, 0) == getSubVar(VA_CURR_DICE_NUMBERS, 0) &&
				getSubVar(VA_GOOD_DICE_NUMBERS, 1) == getSubVar(VA_CURR_DICE_NUMBERS, 1) &&
				getSubVar(VA_GOOD_DICE_NUMBERS, 2) == getSubVar(VA_CURR_DICE_NUMBERS, 2)) {
				setGlobalVar(V_ROBOT_TARGET, 1);
				playSound(2);
				_doMoveTeddy = true;
			} else {
				sendMessage(_asTeddyBear, 0x2002, 0);
			}
			showMouse(false);
			_isActionButtonClicked = true;
		}
		break;
	case 0x4826:
		if (_isPanelOpen) {
			if (sender == _ssActionButton) {
				sendMessage(_ssActionButton, 0x480B, 0);
				_isPanelOpen = false;
			} else if (!getGlobalVar(V_ROBOT_TARGET)) {
				if (sender == _ssSymbol1UpButton) {
					if (getSubVar(VA_CURR_DICE_NUMBERS, 0) < 9) {
						incSubVar(VA_CURR_DICE_NUMBERS, 0, +1);
						sendMessage(_ssSymbol1UpButton, 0x480B, 0);
						sendMessage(_ssSymbolDice[0], 0x2000, 0);
					}
				} else if (sender == _ssSymbol1DownButton) {
					if (getSubVar(VA_CURR_DICE_NUMBERS, 0) > 1) {
						incSubVar(VA_CURR_DICE_NUMBERS, 0, -1);
						sendMessage(_ssSymbol1DownButton, 0x480B, 0);
						sendMessage(_ssSymbolDice[0], 0x2000, 0);
					}
				} else if (sender == _ssSymbol2UpButton) {
					if (getSubVar(VA_CURR_DICE_NUMBERS, 1) < 9) {
						incSubVar(VA_CURR_DICE_NUMBERS, 1, +1);
						sendMessage(_ssSymbol2UpButton, 0x480B, 0);
						sendMessage(_ssSymbolDice[1], 0x2000, 0);
					}
				} else if (sender == _ssSymbol2DownButton) {
					if (getSubVar(VA_CURR_DICE_NUMBERS, 1) > 1) {
						incSubVar(VA_CURR_DICE_NUMBERS, 1, -1);
						sendMessage(_ssSymbol2DownButton, 0x480B, 0);
						sendMessage(_ssSymbolDice[1], 0x2000, 0);
					}
				} else if (sender == _ssSymbol3UpButton) {
					if (getSubVar(VA_CURR_DICE_NUMBERS, 2) < 9) {
						incSubVar(VA_CURR_DICE_NUMBERS, 2, +1);
						sendMessage(_ssSymbol3UpButton, 0x480B, 0);
						sendMessage(_ssSymbolDice[2], 0x2000, 0);
					}
				} else if (sender == _ssSymbol3DownButton) {
					if (getSubVar(VA_CURR_DICE_NUMBERS, 2) > 1) {
						incSubVar(VA_CURR_DICE_NUMBERS, 2, -1);
						sendMessage(_ssSymbol3DownButton, 0x480B, 0);
						sendMessage(_ssSymbolDice[2], 0x2000, 0);
					}
				}
			}
		}
		break;
	}
	return messageResult;
}
예제 #16
0
void CursorManager::initialize() {
	changeCursor(_cursors[CursorIndex_Idle][_cursorIsPushed]);
	showMouse(true);
}
예제 #17
0
void DiskplayerScene::update() {
	Scene::update();

	if (_updateStatus == kUSTuningIn && _diskSmackerPlayer->isDone()) {
		if (_diskAvailable[_diskIndex])
			playDisk();
		else
			playStatic();
	} else if (_updateStatus == kUSPlaying && _diskSmackerPlayer->isDone()) {
		_diskSlots[_diskIndex]->stop();
		_diskIndex++;
		if (_hasAllDisks) {
			if (_diskIndex != 20) {
				playDisk();
			} else if (_dropKey) {
				playDisk();
				_updateStatus = kUSPlayingFinal;
			} else {
				_diskIndex = 0;
				stop();
			}
		} else if (_diskIndex != 20) {
			tuneIn();
		} else {
			_diskIndex = 0;
			stop();
		}
	} else if (_updateStatus == kUSPlayingFinal) {
		if (_diskSmackerPlayer->getFrameNumber() == 133) {
			_asKey->stDropKey();
			setGlobalVar(V_HAS_FINAL_KEY, 1);
		} else if (_diskSmackerPlayer->isDone()) {
			for (int i = 0; i < 20; i++) {
				_diskSlots[i]->setLocked(false);
				_diskSlots[i]->stop();
			}
			_diskIndex = 0;
			stop();
			showMouse(true);
			_dropKey = false;
		}
	}

	if (_appearCountdown != 0 && (--_appearCountdown == 0)) {
		_diskSlots[_diskIndex]->appear();
		if (_dropKey) {
			_diskSlots[_diskIndex]->activate();
			_diskSlots[_diskIndex]->setLocked(true);
		}
		_diskIndex++;
		while (!_diskAvailable[_diskIndex] && _diskIndex < 19)
			_diskIndex++;					
		if (_diskIndex < 20) {
			_appearCountdown = 1;
		} else {
			_diskIndex = 0;
			_inputDisabled = false;
			if (_dropKey) {
				_ssPlayButton->press();
				_tuneInCountdown = 2;
			} else {
				showMouse(true);
				_diskSlots[_diskIndex]->activate();
			}
		}
	}

	if (_tuneInCountdown != 0 && (--_tuneInCountdown == 0))
		playDisk();

}
예제 #18
0
int main()
 {
  mkdir(Menufold);
  char sorcepath[100];
  int i;
  char Ch;
  fstream fin;
  fstream foutMenu;
  fstream foutDesk;
  screenMain();
  stanterdScreen(50,1,9);
  strcpy(sorcepath,"C:\\MISION\\HELP\\Ad_Book.PIF");

  fin.open("C:\\MISION\\VISION\\Ad_Book.PIF",ios::nocreate|ios::in);
  if(!fin)
   {
    cout<<"\n\n\n\n\n\n\n\n\n\n\n\t\t\tFirst Use INSTAL.EXE\n\n\n\n\n";
    getch();
    exit(0);
   }

  fin.close();

  fin.open(sorcepath,ios::nocreate|ios::in|ios::binary);
  if(fin)
   {
    foutDesk.open(Desktop,ios::out|ios::trunc|ios::binary);
    foutMenu.open(StartMenu,ios::out|ios::trunc|ios::binary);
   }
  else
   {
    cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\t\tError In Process\n\n\t\t\t\tAborted !";
    getch();
    exit(0);
   }
  while(fin)
   {
    fin.get(Ch);
    foutDesk.put(Ch);
    foutMenu.put(Ch);
   }
  fin.close();
  foutDesk.close();
  foutMenu.close();
  cout<<"\n\n\n\n\n\n\n\n\n\n\n\n\n\t\t\tDesktop Shortcut Is Created\n\n\t\t\tFile Is Added To Start Menu \n\n\n\n";
  fin.open("C:\\MISION\\help\\help.htm",ios::nocreate|ios::in);
  foutMenu.open(StartMenuhtm,ios::out|ios::trunc|ios::binary);
  while(fin)
   {
    fin.get(Ch);
    foutMenu.put(Ch);
   };
  fin.close();
  foutMenu.close();
  stanterdScreen(50,1,9);
  forMyCollege();
  delay(250);
  Report(11,"Graphics&Header","dreamBlitzer");
  Report(11,"Mouse","CCoder");
  Report(11,"Data Management","MadCoder");
  Report(11,"File & Storage","Looxers");
  Report(11,"Desktop & Menu","dreamBlitzer");
  setcolor(11);
  sprintf(msg1,"Thank You");
  outtextxy(((getmaxx()-(textwidth(msg1)))/2),getmaxy()/2-50,msg1);
  initMouse();
  showMouse();
  setMouseCurserPosition(50,50);
  outtextxy(180,275,"Press Esc To Exit . . . !");
  do
   {
    i=getBiosKey();
   }
   while(i!=ESC);
  return(0);
 }
예제 #19
0
int continue_close(int min, int sec, int eff, int err, int speed)
{
	unsigned int sum;
	void* summary;
	int x,y,j=-2,pr=-1,i;

    //	sum=imagesize(200,90,380,250);
	sum=imagesize(170,90,410,250);
	summary= malloc(sum);
	getimage(170,90,410,250,summary);

	show_summary(min,sec,eff,err,speed);
	draw_3dbox(210,220,280,240,15);
	draw_3dbox(305,220,370,240,15);
	settextstyle(0,0,1);
	color_text(214,227,"Continue",3);
	color_text(317,227,"Close",3);
	showMouse();
	while(1)
	{
		while(1)
		{
			x=getMouseX(); /* get the mouse position*/
			y=getMouseY();
			for(i=0;i<2;i++)
			{
				if(x>=210+(i*95)&&x<=280+(i*90)&&y>=220&&y<=240 )
				{
					j=i;     /* check the position*/
					break;
				}
			}
			settextstyle(0,0,1);
			if(j>=0&&j<2&& j!=pr)
			{
				hideMouse();
				draw_3dbox(210+(j*95),220,280+(j*90),240,6);	/* change the color of the box*/
				/* change the text color*/
				if(j)
					color_text(317,227,"Close",15);	/*cursor on no*/
				else if(!j)
					color_text(214,227,"Continue",15);   /*cursor on yes*/
				showMouse();
			}
			if(j!=pr && pr>=0 && pr<2)
			{
				hideMouse();
				draw_3dbox(210+(pr*95),220,280+(pr*90),240,15);
				/* when mouse moves away change the color to normal one*/
				if(pr)
					color_text(317,227,"Close",3);
				else if(!pr)
					color_text(214,227,"Continue",3);
				showMouse();         /*cursor on yes/no*/
			}
			pr = j;	/* keeps the current postion to use next time as previous*/
			j = -1;
			if(mouseClicked())
			{
				x=getMouseX();       /*get the position where mouse is clicked*/
				y=getMouseY();
				break;
			}
		}/*end of while 2 which changes color of button*/

		/*check the position of mouse clicked*/
		if(x>=210&&x<=280&&y>=220&&y<=240)  // continue
		{
			hideMouse();
			up_down_button(210,220,280,240,214,227,18,15,15,6);
			putimage(170,90,summary,COPY_PUT);
			//showMouse();     /*if clicked on back return to previous stage*/
			free(summary);
			return 0;
		}
		else if(x>=305&&x<=370&&y>=220&&y<=240)
		{
			hideMouse();
			up_down_button(305,220,370,240,317,227,23,15,15,6);
			free(summary);   //if clicked on close exit from the lesson
			time_interval=0, min=0, sec=0, minute=0,second=0,eff=0, err=0, speed=0;
			pressed=0, correct= 0, wrong= 0, cpm=0, correction=0;
			showMouse();
			return 1;
		}
	}/*end of while 1*/
}
예제 #20
0
bool Window::initialize()
{
	if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_JOYSTICK | SDL_INIT_EVENTS) != 0)
	{
		Log::instance()->logError("Unable to initialize SDL\n%s", SDL_GetError());

		return	false;
	}

	const GameHeader&	gameHeader	= System::getGameHeader();
	
	bool	bFullscreen	= gameHeader.bFullScreen;

	if (true == bFullscreen)
	{
		SDL_DisplayMode	displayMode;

		if (SDL_GetCurrentDisplayMode(0, &displayMode) != 0)
		{
			Log::instance()->logError("Unable to get current display mode\n%s", SDL_GetError());
			
			return	false;
		}

		m_iWidth	= displayMode.w;
		m_iHeight	= displayMode.h;
	}

	else
	{
		m_iWidth	= gameHeader.iWindowedWidth;
		m_iHeight	= gameHeader.iWindowedHeight;
	}

	int	iFlags	= SDL_WINDOW_OPENGL;
	
	if (true == gameHeader.bFullScreen)
	{
		iFlags	|= SDL_WINDOW_FULLSCREEN_DESKTOP;
	}
	
	else
	{
		iFlags	|= SDL_WINDOW_RESIZABLE;
	}

	if (SDL_CreateWindowAndRenderer(m_iWidth, m_iHeight, iFlags, &m_pWindow, &m_pRenderer) != 0)
	{
		Log::instance()->logError("Unable to create windows and renderer\n%s", SDL_GetError());
			
		return	false;
	}

	if (false == checkRenderer())
	{
		return	false;
	}

	if (true == bFullscreen)
	{
		showMouse(false);
	}

	SDL_SetWindowTitle(m_pWindow, gameHeader.strAppName.c_str());

	// Create app icon
	Image*	pImage	= Image::create("AppIcon.png");

	if (pImage != NULL)
	{
		SDL_Surface*	pIconSurface	= SDL_CreateRGBSurfaceFrom(pImage->getPixels(), pImage->getWidth(), pImage->getHeight(), 32, 
			pImage->getWidth() * 4, 0x000000FF, 0x0000FF00, 0x00FF0000, 0xFF000000);

		if (pIconSurface != NULL)
		{
			SDL_SetWindowIcon(m_pWindow, pIconSurface);

			SDL_FreeSurface(pIconSurface);
		}
	
		delete	pImage;
	}

	SDL_DisableScreenSaver();

	return	true;
}