mirror of
				https://github.com/OpenMW/openmw.git
				synced 2025-10-31 16:26:38 +00:00 
			
		
		
		
	functional HUD map
This commit is contained in:
		
							parent
							
								
									a1f80e029e
								
							
						
					
					
						commit
						7a3034701f
					
				
					 4 changed files with 68 additions and 7 deletions
				
			
		|  | @ -61,6 +61,8 @@ HUD::HUD(int width, int height, int fpsLevel) | |||
|     setSpellIcon("icons\\s\\b_tx_s_rstor_health.dds"); | ||||
|     setSpellStatus(65, 100); | ||||
|     setEffect("icons\\s\\tx_s_chameleon.dds"); | ||||
| 
 | ||||
|     LocalMapBase::init(minimap, this); | ||||
| } | ||||
| 
 | ||||
| void HUD::setFPS(float fps) | ||||
|  | @ -152,6 +154,17 @@ void HUD::setPlayerDir(const float x, const float y) | |||
|     rotatingSubskin->setAngle(angle); | ||||
| } | ||||
| 
 | ||||
| void HUD::setPlayerPos(const float x, const float y) | ||||
| { | ||||
|     MyGUI::IntSize size = minimap->getCanvasSize(); | ||||
|     MyGUI::IntPoint middle = MyGUI::IntPoint((1/3.f + x/3.f)*size.width,(1/3.f + y/3.f)*size.height); | ||||
|     MyGUI::IntCoord viewsize = minimap->getCoord(); | ||||
|     MyGUI::IntPoint pos(0.5*viewsize.width - middle.left, 0.5*viewsize.height - middle.top); | ||||
| 
 | ||||
|     minimap->setViewOffset(pos); | ||||
|     compass->setPosition(MyGUI::IntPoint(x*512-16, y*512-16)); | ||||
| } | ||||
| 
 | ||||
| MapWindow::MapWindow() | ||||
|   : Layout("openmw_map_window_layout.xml"), mGlobal(false) | ||||
| { | ||||
|  |  | |||
|  | @ -63,13 +63,14 @@ namespace MWGui | |||
|     void setTriangleCount(size_t count); | ||||
|     void setBatchCount(size_t count); | ||||
|     void setPlayerDir(const float x, const float y); | ||||
|     void setPlayerPos(const float x, const float y); | ||||
| 
 | ||||
|     MyGUI::ProgressPtr health, magicka, stamina; | ||||
|     MyGUI::ImageBox *weapImage, *spellImage; | ||||
|     MyGUI::ProgressPtr weapStatus, spellStatus; | ||||
|     MyGUI::WidgetPtr effectBox; | ||||
|     MyGUI::ImageBox* effect1; | ||||
|     MyGUI::ImageBox* minimap; | ||||
|     MyGUI::ScrollView* minimap; | ||||
|     MyGUI::ImageBox* compass; | ||||
|     MyGUI::ImageBox* crosshair; | ||||
| 
 | ||||
|  |  | |||
|  | @ -405,17 +405,24 @@ void WindowManager::changeCell(MWWorld::Ptr::CellStore* cell) | |||
| { | ||||
|     if (!(cell->cell->data.flags & ESM::Cell::Interior)) | ||||
|     { | ||||
|         std::string name; | ||||
|         if (cell->cell->name != "") | ||||
|             map->setCellName( cell->cell->name ); | ||||
|             name = cell->cell->name; | ||||
|         else | ||||
|             map->setCellName( cell->cell->region ); | ||||
|             name = cell->cell->region; | ||||
| 
 | ||||
|         map->setCellName( name ); | ||||
| 
 | ||||
|         map->setCellPrefix("Cell"); | ||||
|         hud->setCellPrefix("Cell"); | ||||
|         map->setActiveCell( cell->cell->data.gridX, cell->cell->data.gridY ); | ||||
|         hud->setActiveCell( cell->cell->data.gridX, cell->cell->data.gridY ); | ||||
|     } | ||||
|     else | ||||
|     { | ||||
|         map->setCellName( cell->cell->name ); | ||||
|         map->setCellPrefix( cell->cell->name ); | ||||
|         hud->setCellPrefix( cell->cell->name ); | ||||
|     } | ||||
| 
 | ||||
| } | ||||
|  | @ -423,11 +430,13 @@ void WindowManager::changeCell(MWWorld::Ptr::CellStore* cell) | |||
| void WindowManager::setInteriorMapTexture(const int x, const int y) | ||||
| { | ||||
|     map->setActiveCell(x,y, true); | ||||
|     hud->setActiveCell(x,y, true); | ||||
| } | ||||
| 
 | ||||
| void WindowManager::setPlayerPos(const float x, const float y) | ||||
| { | ||||
|     map->setPlayerPos(x,y); | ||||
|     hud->setPlayerPos(x,y); | ||||
| } | ||||
| 
 | ||||
| void WindowManager::setPlayerDir(const float x, const float y) | ||||
|  |  | |||
|  | @ -38,10 +38,48 @@ | |||
|         <!-- Map box --> | ||||
|         <Widget type="Widget" skin="HUD_Box" position="223 123 65 65" | ||||
|             align="Right Bottom"> | ||||
|             <Widget type="ImageBox" skin="ImageBox" position="2 2 61 61" align="Left Bottom" | ||||
|                 name="MiniMap"/> | ||||
|             <Widget type="ImageBox" skin="RotatingSkin" position="17 18 32 32" align="Left Bottom" | ||||
|                 name="Compass"/> | ||||
| 
 | ||||
|             <Widget type="ScrollView" skin="MW_MapView" position="2 2 61 61" align="Left Bottom" name="MiniMap"> | ||||
|                 <Property key="CanvasSize" value="1536 1536"/> | ||||
|                <!-- 3x3 maps, 1024x1024 each, but we will downsample to 512 to antialias them --> | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_0_0"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_0_0_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="512 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_1_0"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_1_0_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="1024 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_2_0"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_2_0_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="0 512 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_0_1"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_0_1_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="512 512 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_1_1"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_1_1_fog"> | ||||
|                         <Widget type="ImageBox" skin="RotatingSkin" position="0 0 32 32" align="Left Bottom" name="Compass"/> | ||||
|                     </Widget> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="1024 512 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_2_1"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_2_1_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="0 1024 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_0_2"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_0_2_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="512 1024 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_1_2"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_1_2_fog"/> | ||||
|                 </Widget> | ||||
| 
 | ||||
|                 <Widget type="ImageBox" skin="ImageBox" position="1024 1024 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_2_2"> | ||||
|                     <Widget type="ImageBox" skin="ImageBox" position="0 0 512 512" align="ALIGN_TOP ALIGN_LEFT" name="Map_2_2_fog"/> | ||||
|                 </Widget> | ||||
|             </Widget> | ||||
|         </Widget> | ||||
| 
 | ||||
|         <!-- Crosshair --> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue