remove xbox files that arent needed
@@ -24,10 +24,8 @@
|
||||
#include "..\..\Minecraft.World\SignTileEntity.h"
|
||||
#include "..\..\Minecraft.Client\StatsCounter.h"
|
||||
#include "..\GameMode.h"
|
||||
#include "..\Xbox\Social\SocialManager.h"
|
||||
#include "Tutorial\TutorialMode.h"
|
||||
#if defined _XBOX || defined _WINDOWS64
|
||||
#include "..\..\Minecraft.Client\Xbox\XML\ATGXmlParser.h"
|
||||
#include "..\..\Minecraft.Client\Xbox\XML\xmlFilesCallback.h"
|
||||
#endif
|
||||
#include "Minecraft_Macros.h"
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
#include "DLCManager.h"
|
||||
#include "DLCAudioFile.h"
|
||||
#if defined _XBOX || defined _WINDOWS64
|
||||
#include "..\..\Xbox\XML\ATGXmlParser.h"
|
||||
#include "..\..\Xbox\XML\xmlFilesCallback.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
#include "Common\DLC\DLCAudioFile.h"
|
||||
|
||||
#if defined _XBOX || defined _WINDOWS64
|
||||
#include "Xbox\XML\ATGXmlParser.h"
|
||||
#include "Xbox\XML\xmlFilesCallback.h"
|
||||
#endif
|
||||
|
||||
|
||||
@@ -264,48 +264,12 @@
|
||||
<Filter Include="Windows64\Source Files\Social">
|
||||
<UniqueIdentifier>{541f67ae-2627-40af-8316-d76ee9bb6985}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis">
|
||||
<UniqueIdentifier>{ccfdb851-7965-4551-88bb-4312ddbf830a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\OrbisExtras">
|
||||
<UniqueIdentifier>{2b9abc76-798a-4aae-ba50-2dfc8f78ae81}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\4JLibs">
|
||||
<UniqueIdentifier>{35491a01-dd6f-4313-b857-5e3eb323b44f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\4JLibs\inc">
|
||||
<UniqueIdentifier>{bcac2142-c160-4a73-96c5-cbdf681a16f0}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\4JLibs\libs">
|
||||
<UniqueIdentifier>{290b2f1c-dcd8-4ebc-9d6d-fa6de190117e}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Source Files">
|
||||
<UniqueIdentifier>{a7ec80a7-ea10-438c-a10f-7eeef759c32d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Source Files\Leaderboards">
|
||||
<UniqueIdentifier>{9a2c49f6-2f9d-4e9d-a4ea-a0a04ecba75f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Source Files\Sentient">
|
||||
<UniqueIdentifier>{24e96065-3dd4-4150-bde2-128d133fd2c4}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Source Files\Social">
|
||||
<UniqueIdentifier>{10961b95-cb43-4a00-b999-04b66a1a0b43}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\GameConfig">
|
||||
<UniqueIdentifier>{6aaa8af3-3df6-43f4-9346-9adfe45ca3a7}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\XML">
|
||||
<UniqueIdentifier>{aba0f713-fcfb-417e-9616-c8474225de71}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Common\Source Files\Audio">
|
||||
<UniqueIdentifier>{94298ae6-25e0-4cc9-8c5a-efd53e156baa}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Xbox\Source Files\Audio">
|
||||
<UniqueIdentifier>{6ec99327-b465-4e61-b064-023a09bdf907}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Source Files\Audio">
|
||||
<UniqueIdentifier>{2095b7df-1779-4788-b004-3479d5ab59d8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Windows64\Miles Sound System">
|
||||
<UniqueIdentifier>{4c9eb137-a48c-44a4-be08-ef1745834ece}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -315,15 +279,6 @@
|
||||
<Filter Include="Windows64\Miles Sound System\lib">
|
||||
<UniqueIdentifier>{7c655cf2-f74e-4e6a-9114-405f5bc28a56}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Miles Sound System">
|
||||
<UniqueIdentifier>{2e1858a4-a24b-49d8-b19c-c24b45f75a4f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Miles Sound System\include">
|
||||
<UniqueIdentifier>{096eb9da-ee6c-46ba-a0f4-dd8d1748b6a1}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Miles Sound System\lib">
|
||||
<UniqueIdentifier>{50dc7509-93df-4e0a-8a9a-cea040e92180}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Windows64\Miles Sound System\dll">
|
||||
<UniqueIdentifier>{a36a05f3-bc99-4097-b7a8-f81c37eec6e3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -381,18 +336,6 @@
|
||||
<Filter Include="Common\Source Files\zlib">
|
||||
<UniqueIdentifier>{3a9d8989-ff64-411c-84ad-b7dfb2520d5a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Iggy">
|
||||
<UniqueIdentifier>{de5f0642-c9ab-431b-a255-a936076ffed2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Iggy\gdraw">
|
||||
<UniqueIdentifier>{76ac5981-4824-487a-992f-273bfa73fb68}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Iggy\include">
|
||||
<UniqueIdentifier>{b1794e73-9397-4e45-8a0d-a4f6dc72c321}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Iggy\lib">
|
||||
<UniqueIdentifier>{ff6b8d80-d0ed-4225-b56c-1d0a19824e2f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Common\Source Files\UI\Components">
|
||||
<UniqueIdentifier>{67f51112-db23-4c8a-af1b-f748f7bbce8f}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -465,9 +408,6 @@
|
||||
<Filter Include="Xbox\Source Files\XUI\Base Scene">
|
||||
<UniqueIdentifier>{ad3528e0-0c39-42d5-b756-fdf691df5f17}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Orbis\Network">
|
||||
<UniqueIdentifier>{147837b5-da79-4938-abcf-f8926a72b25c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="net\minecraft\server\commands">
|
||||
<UniqueIdentifier>{34edb787-189e-49c7-8412-f5def16b6f99}</UniqueIdentifier>
|
||||
</Filter>
|
||||
@@ -480,12 +420,6 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<None Include="ReadMe.txt" />
|
||||
<None Include="Xbox\GameConfig\Minecraft.gameconfig">
|
||||
<Filter>Xbox\GameConfig</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\GameConfig\Minecraft.spa">
|
||||
<Filter>Xbox\GameConfig</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\res\audio\minecraft.xsb">
|
||||
<Filter>Xbox\res\audio</Filter>
|
||||
</None>
|
||||
@@ -495,27 +429,12 @@
|
||||
<None Include="Xbox\res\audio\streamed.xwb">
|
||||
<Filter>Xbox\res\audio</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\4JLibs\Media\4J_strings.resx">
|
||||
<Filter>Xbox\4JLibs\Media</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\res\terrain_MipmapLevel2.bmp">
|
||||
<Filter>Xbox\res</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\res\terrain_MipmapLevel3.bmp">
|
||||
<Filter>Xbox\res</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\xex.xml">
|
||||
<Filter>Xbox\xexxml</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\xex-dev.xml">
|
||||
<Filter>Xbox\xexxml</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\Sentient\MinecraftTelemetry.xml">
|
||||
<Filter>Xbox\Source Files\Sentient\Telemetry</Filter>
|
||||
</None>
|
||||
<None Include="Xbox\Sentient\trialConfigv1.bin">
|
||||
<Filter>Xbox\Source Files\Sentient\DynamicConf</Filter>
|
||||
</None>
|
||||
<None Include="ClassDiagram.cd" />
|
||||
<None Include="Windows64\GameConfig\Minecraft.gameconfig">
|
||||
<Filter>Windows64\GameConfig</Filter>
|
||||
@@ -541,7 +460,6 @@
|
||||
<None Include="Network Implementation Notes.txt">
|
||||
<Filter>Common\Source Files\Network</Filter>
|
||||
</None>
|
||||
<None Include="..\..\Users\PeakB\Downloads\MCLCE-StringTable-Compiler-master\MCLCE-StringTable-Compiler-master\languages.loc" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="stdafx.h">
|
||||
@@ -988,24 +906,6 @@
|
||||
<ClInclude Include="StatsScreen.h">
|
||||
<Filter>net\minecraft\client\gui\achievement</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\4JLibs\inc\4J_Input.h">
|
||||
<Filter>Xbox\4JLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\4JLibs\inc\4J_Profile.h">
|
||||
<Filter>Xbox\4JLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\4JLibs\inc\4J_Render.h">
|
||||
<Filter>Xbox\4JLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\4JLibs\inc\4J_Storage.h">
|
||||
<Filter>Xbox\4JLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\GameConfig\Minecraft.spa.h">
|
||||
<Filter>Xbox\GameConfig</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Xbox_App.h">
|
||||
<Filter>Xbox\Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="PlayerConnection.h">
|
||||
<Filter>net\minecraft\server\network</Filter>
|
||||
</ClInclude>
|
||||
@@ -1204,132 +1104,18 @@
|
||||
<ClInclude Include="Common\XUI\XUI_SaveMessage.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\XML\ATGXmlParser.h">
|
||||
<Filter>Xbox\XML</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientAvatar.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientBoxArt.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientConfig.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCore.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCulture.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCultureBackCompat_SenBoxArt.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCultureBackCompat_SenClientUGC.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCultureBackCompat_SenCore.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCultureBackCompat_SenNews.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientCultureBackCompat_SenSuperstars.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientDynamicConfig.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientFame.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientFile.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientHelp.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientMain.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientMarkers.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientNews.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientPackage.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientRawData.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientResource.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientStats.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientSuperstars.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientSys.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientTypes.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientUGC.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientUGCLeaderboards.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientUGCTypes.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientUser.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientUtil.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\Include\SenClientXML.h">
|
||||
<Filter>Xbox\SentientLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\SentientStats.h">
|
||||
<Filter>Xbox\Source Files\Sentient\Telemetry</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\TelemetryEnum.h">
|
||||
<Filter>Xbox\Source Files\Sentient\Telemetry</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\MinecraftTelemetry.h">
|
||||
<Filter>Xbox\Source Files\Sentient\Telemetry</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\XUI\XUI_SettingsAll.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Help & Options\Settings</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\XUI\XUI_Ctrl_4JIcon.h">
|
||||
<Filter>Xbox\Source Files\XUI\Controls</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\DynamicConfigurations.h">
|
||||
<Filter>Xbox\Source Files\Sentient\DynamicConf</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\XUI\XUI_LoadSettings.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\XUI\XUI_Ctrl_SplashPulser.h">
|
||||
<Filter>Xbox\Source Files\XUI\Controls</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Font\XUI_FontRenderer.h">
|
||||
<Filter>Xbox\Source Files\Font</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Font\XUI_Font.h">
|
||||
<Filter>Xbox\Source Files\Font</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Font\XUI_FontData.h">
|
||||
<Filter>Xbox\Source Files\Font</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\XUI\XUI_DebugTips.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Debug</Filter>
|
||||
</ClInclude>
|
||||
@@ -1345,12 +1131,6 @@
|
||||
<ClInclude Include="PistonPieceRenderer.h">
|
||||
<Filter>net\minecraft\client\renderer\tileentity</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\SentientManager.h">
|
||||
<Filter>Xbox\Source Files\Sentient</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Sentient\SentientTelemetryCommon.h">
|
||||
<Filter>Xbox\Source Files\Sentient\Telemetry</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\XUI\XUI_SettingsOptions.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Help & Options\Settings</Filter>
|
||||
</ClInclude>
|
||||
@@ -1363,9 +1143,6 @@
|
||||
<ClInclude Include="Common\XUI\XUI_SettingsGraphics.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Help & Options\Settings</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\XML\xmlFilesCallback.h">
|
||||
<Filter>Xbox\XML</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="ServerPlayerGameMode.h">
|
||||
<Filter>net\minecraft\server\level</Filter>
|
||||
</ClInclude>
|
||||
@@ -1549,18 +1326,9 @@
|
||||
<ClInclude Include="Common\XUI\XUI_Scene_Win.h">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Social\SocialManager.h">
|
||||
<Filter>Xbox\Source Files\Social</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="extraX64client.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Resource.h">
|
||||
<Filter>Windows</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\targetver.h">
|
||||
<Filter>Windows</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\Trial\TrialMode.h">
|
||||
<Filter>Common\Source Files\Trial</Filter>
|
||||
</ClInclude>
|
||||
@@ -1948,9 +1716,6 @@
|
||||
<ClInclude Include="Common\Audio\Consoles_SoundEngine.h">
|
||||
<Filter>Common\Source Files\Audio</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Audio\SoundEngine.h">
|
||||
<Filter>Xbox\Source Files\Audio</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\Audio\SoundEngine.h">
|
||||
<Filter>Common\Source Files\Audio</Filter>
|
||||
</ClInclude>
|
||||
@@ -2104,9 +1869,6 @@
|
||||
<ClInclude Include="Common\UI\UIScene_DebugOverlay.h">
|
||||
<Filter>Common\Source Files\UI\Scenes\Debug</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Xbox_UIController.h">
|
||||
<Filter>Xbox\Source Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\Network\SessionInfo.h">
|
||||
<Filter>Common\Source Files\Network</Filter>
|
||||
</ClInclude>
|
||||
@@ -2332,9 +2094,6 @@
|
||||
<ClInclude Include="Common\Leaderboards\LeaderboardManager.h">
|
||||
<Filter>Common\Source Files\Leaderboards</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Leaderboards\XboxLeaderboardManager.h">
|
||||
<Filter>Xbox\Source Files\Leaderboards</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\UI\UIScene_HowToPlay.h">
|
||||
<Filter>Common\Source Files\UI\Scenes\Help & Options</Filter>
|
||||
</ClInclude>
|
||||
@@ -2506,9 +2265,6 @@
|
||||
<ClInclude Include="Common\UI\IUIScene_StartGame.h">
|
||||
<Filter>Common\Source Files\UI\Scenes\Frontend Menu screens</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\4JLibs\inc\4J_xtms.h">
|
||||
<Filter>Xbox\4JLibs\inc</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Common\UI\UIControl_SpaceIndicatorBar.h">
|
||||
<Filter>Common\Source Files\UI\Controls</Filter>
|
||||
</ClInclude>
|
||||
@@ -2530,6 +2286,12 @@
|
||||
<ClInclude Include="Common\Audio\stb_vorbis.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\XML\xmlFilesCallback.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Xbox\Resource.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="stdafx.cpp">
|
||||
@@ -2973,12 +2735,6 @@
|
||||
<ClCompile Include="BufferedImage.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Xbox_App.cpp">
|
||||
<Filter>Xbox\Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Xbox_Minecraft.cpp">
|
||||
<Filter>Xbox\Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PendingConnection.cpp">
|
||||
<Filter>net\minecraft\server\network</Filter>
|
||||
</ClCompile>
|
||||
@@ -3162,42 +2918,21 @@
|
||||
<ClCompile Include="Common\XUI\XUI_SaveMessage.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\XML\ATGXmlParser.cpp">
|
||||
<Filter>Xbox\XML</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Sentient\SentientStats.cpp">
|
||||
<Filter>Xbox\Source Files\Sentient\Telemetry</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\XUI\XUI_SettingsAll.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Help & Options\Settings</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\XUI\XUI_Ctrl_4JIcon.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Controls</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Sentient\DynamicConfigurations.cpp">
|
||||
<Filter>Xbox\Source Files\Sentient\DynamicConf</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\XUI\XUI_LoadSettings.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\XUI\XUI_Ctrl_SplashPulser.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Controls</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Font\XUI_FontRenderer.cpp">
|
||||
<Filter>Xbox\Source Files\Font</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Font\XUI_Font.cpp">
|
||||
<Filter>Xbox\Source Files\Font</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Font\XUI_FontData.cpp">
|
||||
<Filter>Xbox\Source Files\Font</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\XUI\XUI_DebugTips.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Sentient\SentientManager.cpp">
|
||||
<Filter>Xbox\Source Files\Sentient</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\XUI\XUI_SkinSelect.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens\Help & Options\Settings</Filter>
|
||||
</ClCompile>
|
||||
@@ -3387,9 +3122,6 @@
|
||||
<ClCompile Include="Common\XUI\XUI_Scene_Win.cpp">
|
||||
<Filter>Xbox\Source Files\XUI\Menu screens</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Social\SocialManager.cpp">
|
||||
<Filter>Xbox\Source Files\Social</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Extrax64Stubs.cpp">
|
||||
<Filter>Source Files</Filter>
|
||||
</ClCompile>
|
||||
@@ -3687,9 +3419,6 @@
|
||||
<ClCompile Include="OzelotModel.cpp">
|
||||
<Filter>net\minecraft\client\model</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Audio\SoundEngine.cpp">
|
||||
<Filter>Xbox\Source Files\Audio</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\Audio\SoundEngine.cpp">
|
||||
<Filter>Common\Source Files\Audio</Filter>
|
||||
</ClCompile>
|
||||
@@ -3831,9 +3560,6 @@
|
||||
<ClCompile Include="Common\UI\UIScene_DebugOverlay.cpp">
|
||||
<Filter>Common\Source Files\UI\Scenes\Debug</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Xbox_UIController.cpp">
|
||||
<Filter>Xbox\Source Files</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\Network\GameNetworkManager.cpp">
|
||||
<Filter>Common\Source Files\Network</Filter>
|
||||
</ClCompile>
|
||||
@@ -4041,9 +3767,6 @@
|
||||
<ClCompile Include="Common\Leaderboards\LeaderboardManager.cpp">
|
||||
<Filter>Common\Source Files\Leaderboards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Xbox\Leaderboards\XboxLeaderboardManager.cpp">
|
||||
<Filter>Xbox\Source Files\Leaderboards</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Common\UI\UIScene_HowToPlay.cpp">
|
||||
<Filter>Common\Source Files\UI\Scenes\Help & Options</Filter>
|
||||
</ClCompile>
|
||||
@@ -4232,39 +3955,6 @@
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Render_d.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Render.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Input_d.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Input_r.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Profile.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Profile_d.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Profile_r.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Storage.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Storage_d.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Storage_r.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_Input.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Windows64\4JLibs\libs\4J_Render_PC.lib">
|
||||
<Filter>Windows64\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
@@ -4292,29 +3982,9 @@
|
||||
<Library Include="Windows64\4JLibs\libs\4J_Storage_d.lib">
|
||||
<Filter>Windows64\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_XTMS_d.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
<Library Include="Xbox\4JLibs\libs\4J_XTMS_r.lib">
|
||||
<Filter>Xbox\4JLibs\libs</Filter>
|
||||
</Library>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Xsd Include="Xbox\Sentient\SentientStats.xsd">
|
||||
<Filter>Xbox\SentientLibs</Filter>
|
||||
</Xsd>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Image Include="Xbox\MinecraftWindows.ico">
|
||||
<Filter>Windows</Filter>
|
||||
</Image>
|
||||
<Image Include="Xbox\small.ico">
|
||||
<Filter>Windows</Filter>
|
||||
</Image>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ResourceCompile Include="Xbox\MinecraftWindows.rc">
|
||||
<Filter>Windows</Filter>
|
||||
</ResourceCompile>
|
||||
<Image Include="Xbox\MinecraftWindows.ico" />
|
||||
<Image Include="Xbox\small.ico" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
@@ -2,6 +2,6 @@
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<LastConfigDeployed>Debug</LastConfigDeployed>
|
||||
<ShowAllFiles>false</ShowAllFiles>
|
||||
<ShowAllFiles>true</ShowAllFiles>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -1,171 +0,0 @@
|
||||
<root>
|
||||
|
||||
<data name="IDS_NULL">
|
||||
<value>Not Used</value>
|
||||
</data>
|
||||
|
||||
<data name="IDS_OK">
|
||||
<value>OK</value>
|
||||
</data>
|
||||
<data name="IDS_BACK">
|
||||
<value>Back</value>
|
||||
</data>
|
||||
<data name="IDS_CANCEL">
|
||||
<value>Cancel</value>
|
||||
</data>
|
||||
<data name="IDS_YES">
|
||||
<value>Yes</value>
|
||||
</data>
|
||||
<data name="IDS_NO">
|
||||
<value>No</value>
|
||||
</data>
|
||||
<data name="IDS_CORRUPTSAVE_TITLE">
|
||||
<value>Corrupt Save</value>
|
||||
</data>
|
||||
<data name="IDS_CORRUPTSAVE_TEXT">
|
||||
<value>Your save data appears to be corrupt. Create a new save and overwrite the corrupt one?</value>
|
||||
</data>
|
||||
<data name="IDS_NOFREESPACE_TITLE">
|
||||
<value>No Free Space</value>
|
||||
</data>
|
||||
<data name="IDS_NOFREESPACE_TEXT">
|
||||
<value>Your selected storage device doesn't have enough free space to create a game save.</value>
|
||||
</data>
|
||||
<data name="IDS_SELECTAGAIN">
|
||||
<value>Select again</value>
|
||||
</data>
|
||||
<data name="IDS_PLAYWITHOUTSAVING">
|
||||
<value>Play without saving</value>
|
||||
</data>
|
||||
<data name="IDS_CREATEANEWSAVE">
|
||||
<value>Create a new save</value>
|
||||
</data>
|
||||
<data name="IDS_OVERWRITESAVE_TITLE">
|
||||
<value>Overwrite save?</value>
|
||||
</data>
|
||||
<data name="IDS_OVERWRITESAVE_TEXT">
|
||||
<value>Your selected storage device already contains this save. Is it OK to overwrite it?</value>
|
||||
</data>
|
||||
<data name="IDS_OVERWRITESAVE_NO">
|
||||
<value>No - don't overwrite</value>
|
||||
</data>
|
||||
<data name="IDS_OVERWRITESAVE_YES">
|
||||
<value>Overwrite and save</value>
|
||||
</data>
|
||||
<data name="IDS_FAILED_TO_SAVE_TITLE">
|
||||
<value>Save failed</value>
|
||||
</data>
|
||||
<data name="IDS_STORAGEDEVICEPROBLEM_TITLE">
|
||||
<value>Storage Device Problem</value>
|
||||
</data>
|
||||
<data name="IDS_FAILED_TO_SAVE_TEXT">
|
||||
<value>Your storage device is unavailable or has an error</value>
|
||||
</data>
|
||||
<data name="IDS_FAILED_TO_LOADSAVE_TEXT">
|
||||
<value>Your storage device is unavailable or has an error. Please select a new storage device.</value>
|
||||
</data>
|
||||
<data name="IDS_SELECTANEWDEVICE">
|
||||
<value>Select a new storage device</value>
|
||||
</data>
|
||||
<data name="IDS_NODEVICE_TITLE">
|
||||
<value>No storage device selected</value>
|
||||
</data>
|
||||
<data name="IDS_NODEVICE_TEXT">
|
||||
<value>If you do not select a storage device, game saves will be disabled</value>
|
||||
</data>
|
||||
<data name="IDS_NODEVICE_ACCEPT">
|
||||
<value>Select a storage device</value>
|
||||
</data>
|
||||
<data name="IDS_NODEVICE_DECLINE">
|
||||
<value>Continue without saving</value>
|
||||
</data>
|
||||
<data name="IDS_DEVICEGONE_TEXT">
|
||||
<value>Your storage device has been removed. Please select a new one.</value>
|
||||
</data>
|
||||
<data name="IDS_DEVICEGONE_TITLE">
|
||||
<value>Loading failed</value>
|
||||
</data>
|
||||
<data name="IDS_KEYBOARDUI_SAVEGAME_TITLE">
|
||||
<value>Name the save</value>
|
||||
</data>
|
||||
<data name="IDS_KEYBOARDUI_SAVEGAME_TEXT">
|
||||
<value>Enter a name for your savegame</value>
|
||||
</data>
|
||||
<data name="IDS_WARNING_ARCADE_TITLE">
|
||||
<value>Return to Xbox Dashboard</value>
|
||||
</data>
|
||||
<data name="IDS_WARNING_ARCADE_TEXT">
|
||||
<value>Are you sure you want to exit the game?</value>
|
||||
</data>
|
||||
|
||||
<data name="IDS_PRO_RETURNEDTOMENU_TITLE">
|
||||
<value>Signed out</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_RETURNEDTOTITLESCREEN_TEXT">
|
||||
<value>You have been returned to the title screen because your gamer profile was signed out</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_RETURNEDTOMENU_TEXT">
|
||||
<value>The match has ended because a gamer profile was signed out</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_RETURNEDTOMENU_ACCEPT">
|
||||
<value>Continue playing</value>
|
||||
</data>
|
||||
|
||||
<data name="IDS_PRO_NOTONLINE_TITLE">
|
||||
<value>Gamer profile not online</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_NOTONLINE_TEXT">
|
||||
<value>This game has some features which require an Xbox LIVE enabled gamer profile, but you are currently offline.</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_XBOXLIVE_NOTIFICATION">
|
||||
<value>This feature requires a gamer profile which is signed into Xbox LIVE.</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_NOTONLINE_ACCEPT">
|
||||
<value>Connect to Xbox LIVE</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_NOTONLINE_DECLINE">
|
||||
<value>Continue playing offline</value>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="IDS_PRO_ACHIEVEMENTPROBLEM_TITLE">
|
||||
<value>Achievement Award Problem</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_ACHIEVEMENTPROBLEM_TEXT">
|
||||
<value> There was a problem accessing your gamer profile. Your achievement could not be awarded at this time.</value>
|
||||
</data>
|
||||
|
||||
|
||||
<data name="IDS_PRO_NOPROFILE_TITLE">
|
||||
<value>Gamer profile problem</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_NOPROFILEOPTIONS_TEXT">
|
||||
<value>Saving of settings to gamer profile has failed.</value>
|
||||
</data>
|
||||
|
||||
<data name="IDS_PRO_GUESTPROFILE_TITLE">
|
||||
<value>Guest Gamer Profile</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_GUESTPROFILE_TEXT">
|
||||
<value>Guest gamer profile cannot access this feature. Please use a different gamer profile.</value>
|
||||
</data>
|
||||
|
||||
<data name="IDS_STO_SAVING_SHORT">
|
||||
<value>Saving…</value>
|
||||
</data>
|
||||
<data name="IDS_STO_SAVING_LONG">
|
||||
<value>Saving content. Please don't turn off your console.</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_UNLOCKGAME_TITLE">
|
||||
<value>Unlock Full Game</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_UNLOCKGAME_TEXT">
|
||||
<value>This is the Minecraft trial game. If you had the full game, you would just have earned an achievement!
|
||||
Unlock the full game to experience the joy of Minecraft and to play with your friends across the globe through Xbox LIVE.
|
||||
Would you like to unlock the full game?</value>
|
||||
</data>
|
||||
<data name="IDS_PRO_PROFILEPROBLEM_TEXT">
|
||||
<value>You are being returned to the main menu because of a problem reading your profile.</value>
|
||||
</data>
|
||||
|
||||
</root>
|
||||
@@ -1,127 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#define MAP_STYLE_0 0
|
||||
#define MAP_STYLE_1 1
|
||||
#define MAP_STYLE_2 2
|
||||
|
||||
#define _360_JOY_BUTTON_A 0x00000001
|
||||
#define _360_JOY_BUTTON_B 0x00000002
|
||||
#define _360_JOY_BUTTON_X 0x00000004
|
||||
#define _360_JOY_BUTTON_Y 0x00000008
|
||||
|
||||
#define _360_JOY_BUTTON_START 0x00000010
|
||||
#define _360_JOY_BUTTON_BACK 0x00000020
|
||||
#define _360_JOY_BUTTON_RB 0x00000040
|
||||
#define _360_JOY_BUTTON_LB 0x00000080
|
||||
|
||||
#define _360_JOY_BUTTON_RTHUMB 0x00000100
|
||||
#define _360_JOY_BUTTON_LTHUMB 0x00000200
|
||||
#define _360_JOY_BUTTON_DPAD_UP 0x00000400
|
||||
#define _360_JOY_BUTTON_DPAD_DOWN 0x00000800
|
||||
|
||||
#define _360_JOY_BUTTON_DPAD_LEFT 0x00001000
|
||||
#define _360_JOY_BUTTON_DPAD_RIGHT 0x00002000
|
||||
// fake digital versions of analog values
|
||||
#define _360_JOY_BUTTON_LSTICK_RIGHT 0x00004000
|
||||
#define _360_JOY_BUTTON_LSTICK_LEFT 0x00008000
|
||||
|
||||
#define _360_JOY_BUTTON_RSTICK_DOWN 0x00010000
|
||||
#define _360_JOY_BUTTON_RSTICK_UP 0x00020000
|
||||
#define _360_JOY_BUTTON_RSTICK_RIGHT 0x00040000
|
||||
#define _360_JOY_BUTTON_RSTICK_LEFT 0x00080000
|
||||
|
||||
#define _360_JOY_BUTTON_LSTICK_DOWN 0x00100000
|
||||
#define _360_JOY_BUTTON_LSTICK_UP 0x00200000
|
||||
#define _360_JOY_BUTTON_RT 0x00400000
|
||||
#define _360_JOY_BUTTON_LT 0x00800000
|
||||
|
||||
// Stick axis maps - to allow changes for SouthPaw in-game axis mapping
|
||||
#define AXIS_MAP_LX 0
|
||||
#define AXIS_MAP_LY 1
|
||||
#define AXIS_MAP_RX 2
|
||||
#define AXIS_MAP_RY 3
|
||||
|
||||
// Trigger map - to allow for swap triggers in-game
|
||||
#define TRIGGER_MAP_0 0
|
||||
#define TRIGGER_MAP_1 1
|
||||
|
||||
class C_4JInput
|
||||
{
|
||||
public:
|
||||
enum EKeyboardResult
|
||||
{
|
||||
EKeyboard_Pending,
|
||||
EKeyboard_Cancelled,
|
||||
EKeyboard_ResultAccept,
|
||||
EKeyboard_ResultDecline,
|
||||
};
|
||||
|
||||
enum EKeyboardMode
|
||||
{
|
||||
EKeyboardMode_Default,
|
||||
EKeyboardMode_Numeric,
|
||||
EKeyboardMode_Password,
|
||||
EKeyboardMode_Alphabet,
|
||||
EKeyboardMode_Full,
|
||||
EKeyboardMode_Alphabet_Extended,
|
||||
EKeyboardMode_IP_Address,
|
||||
EKeyboardMode_Phone
|
||||
};
|
||||
|
||||
void Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC );
|
||||
void Tick(void);
|
||||
void SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax );
|
||||
void SetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction,unsigned int uiActionVal);
|
||||
unsigned int GetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction);
|
||||
void SetJoypadMapVal(int iPad,unsigned char ucMap);
|
||||
unsigned char GetJoypadMapVal(int iPad);
|
||||
void SetJoypadSensitivity(int iPad, float fSensitivity);
|
||||
unsigned int GetValue(int iPad,unsigned char ucAction, bool bRepeat=false);
|
||||
bool ButtonPressed(int iPad,unsigned char ucAction=255); // toggled
|
||||
bool ButtonReleased(int iPad,unsigned char ucAction); //toggled
|
||||
bool ButtonDown(int iPad,unsigned char ucAction=255); // button held down
|
||||
// Functions to remap the axis and triggers for in-game (not menus) - SouthPaw, etc
|
||||
void SetJoypadStickAxisMap(int iPad,unsigned int uiFrom, unsigned int uiTo);
|
||||
void SetJoypadStickTriggerMap(int iPad,unsigned int uiFrom, unsigned int uiTo);
|
||||
void SetKeyRepeatRate(float fRepeatDelaySecs,float fRepeatRateSecs);
|
||||
void SetDebugSequence( const char *chSequenceA,int( *Func)(LPVOID),LPVOID lpParam );
|
||||
FLOAT GetIdleSeconds(int iPad);
|
||||
bool IsPadConnected(int iPad);
|
||||
|
||||
// In-Game values which may have been remapped due to Southpaw, swap triggers, etc
|
||||
float GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay=true);
|
||||
float GetJoypadStick_LY(int iPad, bool bCheckMenuDisplay=true);
|
||||
float GetJoypadStick_RX(int iPad, bool bCheckMenuDisplay=true);
|
||||
float GetJoypadStick_RY(int iPad, bool bCheckMenuDisplay=true);
|
||||
unsigned char GetJoypadLTrigger(int iPad, bool bCheckMenuDisplay=true);
|
||||
unsigned char GetJoypadRTrigger(int iPad, bool bCheckMenuDisplay=true);
|
||||
|
||||
void SetMenuDisplayed(int iPad, bool bVal);
|
||||
|
||||
EKeyboardResult RequestKeyboard(UINT uiTitle, UINT uiText, UINT uiDesc, DWORD dwPad, WCHAR *pwchResult, UINT uiResultSize,int( *Func)(LPVOID,const bool),LPVOID lpParam,EKeyboardMode eMode,CXuiStringTable *pStringTable=NULL);
|
||||
EKeyboardResult RequestKeyboard(UINT uiTitle, LPCWSTR pwchDefault, UINT uiDesc, DWORD dwPad, WCHAR *pwchResult, UINT uiResultSize,int( *Func)(LPVOID,const bool),LPVOID lpParam, EKeyboardMode eMode,CXuiStringTable *pStringTable=NULL);
|
||||
|
||||
// Online check strings against offensive list - TCR 92
|
||||
// TCR # 092 CMTV Player Text String Verification
|
||||
// Requirement Any player-entered text visible to another player on Xbox LIVE must be verified using the Xbox LIVE service before being transmitted. Text that is rejected by the Xbox LIVE service must not be displayed.
|
||||
//
|
||||
// Remarks
|
||||
// This requirement applies to any player-entered string that can be exposed to other players on Xbox LIVE. It includes session names, content descriptions, text messages, tags, team names, mottos, comments, and so on.
|
||||
//
|
||||
// Games may decide to not send the text, blank it out, or use generic text if the text was rejected by the Xbox LIVE service.
|
||||
//
|
||||
// Games verify the text by calling the XStringVerify function.
|
||||
//
|
||||
// Exemption It is not required to use the Xbox LIVE service to verify real-time text communication. An example of real-time text communication is in-game text chat.
|
||||
//
|
||||
// Intent Protect players from inappropriate language.
|
||||
/*
|
||||
bool VerifyStrings(WCHAR **pwStringA,int iStringC,int( *Func)(LPVOID,STRING_VERIFY_RESPONSE *),LPVOID lpParam);
|
||||
void CancelQueuedVerifyStrings(int( *Func)(LPVOID,STRING_VERIFY_RESPONSE *),LPVOID lpParam);
|
||||
void CancelAllVerifyInProgress(void);
|
||||
*/
|
||||
//bool InputDetected(DWORD dwUserIndex,WCHAR *pwchInput);
|
||||
};
|
||||
|
||||
// Singleton
|
||||
extern C_4JInput InputManager;
|
||||
@@ -1,124 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
enum eAwardType
|
||||
{
|
||||
eAwardType_Achievement = 0,
|
||||
eAwardType_GamerPic,
|
||||
eAwardType_Theme,
|
||||
eAwardType_AvatarItem,
|
||||
};
|
||||
|
||||
enum eUpsellType
|
||||
{
|
||||
eUpsellType_Custom = 0, // This is the default, and means that the upsell dialog was initiated in the app code
|
||||
eUpsellType_Achievement,
|
||||
eUpsellType_GamerPic,
|
||||
eUpsellType_Theme,
|
||||
eUpsellType_AvatarItem,
|
||||
};
|
||||
|
||||
enum eUpsellResponse
|
||||
{
|
||||
eUpsellResponse_Declined,
|
||||
eUpsellResponse_Accepted_NoPurchase,
|
||||
eUpsellResponse_Accepted_Purchase,
|
||||
};
|
||||
|
||||
|
||||
|
||||
class C_4JProfile
|
||||
{
|
||||
public:
|
||||
struct PROFILESETTINGS
|
||||
{
|
||||
int iYAxisInversion;
|
||||
int iControllerSensitivity;
|
||||
int iVibration;
|
||||
bool bSwapSticks;
|
||||
};
|
||||
|
||||
|
||||
// 4 players have game defined data, puiGameDefinedDataChangedBitmask needs to be checked by the game side to see if there's an update needed - it'll have the bits set for players to be updated
|
||||
void Initialise( DWORD dwTitleID,
|
||||
DWORD dwOfferID,
|
||||
unsigned short usProfileVersion,
|
||||
UINT uiProfileValuesC,
|
||||
UINT uiProfileSettingsC,
|
||||
DWORD *pdwProfileSettingsA,
|
||||
int iGameDefinedDataSizeX4,
|
||||
unsigned int *puiGameDefinedDataChangedBitmask);
|
||||
void SetTrialTextStringTable(CXuiStringTable *pStringTable,int iAccept,int iReject);
|
||||
void SetTrialAwardText(eAwardType AwardType,int iTitle,int iText); // achievement popup in the trial game
|
||||
int GetLockedProfile();
|
||||
void SetLockedProfile(int iProf);
|
||||
bool IsSignedIn(int iQuadrant);
|
||||
bool IsSignedInLive(int iProf);
|
||||
bool IsGuest(int iQuadrant);
|
||||
UINT RequestSignInUI(bool bFromInvite,bool bLocalGame,bool bNoGuestsAllowed,bool bMultiplayerSignIn,bool bAddUser, int( *Func)(LPVOID,const bool, const int iPad),LPVOID lpParam,int iQuadrant=XUSER_INDEX_ANY);
|
||||
UINT DisplayOfflineProfile(int( *Func)(LPVOID,const bool, const int iPad),LPVOID lpParam,int iQuadrant=XUSER_INDEX_ANY);
|
||||
UINT RequestConvertOfflineToGuestUI(int( *Func)(LPVOID,const bool, const int iPad),LPVOID lpParam,int iQuadrant=XUSER_INDEX_ANY);
|
||||
void SetPrimaryPlayerChanged(bool bVal);
|
||||
bool QuerySigninStatus(void);
|
||||
void GetXUID(int iPad, XUID *pXuid,bool bOnlineXuid);
|
||||
BOOL AreXUIDSEqual(XUID xuid1,XUID xuid2);
|
||||
BOOL XUIDIsGuest(XUID xuid);
|
||||
bool AllowedToPlayMultiplayer(int iProf);
|
||||
void StartTrialGame(); // disables saves and leaderboard, and change state to readyforgame from pregame
|
||||
void AllowedPlayerCreatedContent(int iPad, bool thisQuadrantOnly, BOOL *allAllowed, BOOL *friendsAllowed);
|
||||
BOOL CanViewPlayerCreatedContent(int iPad, bool thisQuadrantOnly, PXUID pXuids, DWORD dwXuidCount );
|
||||
|
||||
|
||||
// SYS
|
||||
int GetPrimaryPad();
|
||||
void SetPrimaryPad(int iPad);
|
||||
char* GetGamertag(int iPad);
|
||||
wchar_t* GetDisplayName(int iPad);
|
||||
bool IsFullVersion();
|
||||
void SetSignInChangeCallback(void ( *Func)(LPVOID, bool, unsigned int),LPVOID lpParam);
|
||||
void SetNotificationsCallback(void ( *Func)(LPVOID, DWORD, unsigned int),LPVOID lpParam);
|
||||
bool RegionIsNorthAmerica(void);
|
||||
bool LocaleIsUSorCanada(void);
|
||||
HRESULT GetLiveConnectionStatus();
|
||||
bool IsSystemUIDisplayed();
|
||||
void SetProfileReadErrorCallback(void ( *Func)(LPVOID), LPVOID lpParam);
|
||||
|
||||
|
||||
// PROFILE DATA
|
||||
int SetDefaultOptionsCallback(int( *Func)(LPVOID,PROFILESETTINGS *, const int iPad),LPVOID lpParam);
|
||||
int SetOldProfileVersionCallback(int( *Func)(LPVOID,unsigned char *, const unsigned short,const int),LPVOID lpParam);
|
||||
PROFILESETTINGS * GetDashboardProfileSettings(int iPad);
|
||||
void WriteToProfile(int iQuadrant, bool bGameDefinedDataChanged=false, bool bOverride5MinuteLimitOnProfileWrites=false);
|
||||
void ForceQueuedProfileWrites(int iPad=XUSER_INDEX_ANY);
|
||||
void *GetGameDefinedProfileData(int iQuadrant);
|
||||
void ResetProfileProcessState(); // after a sign out from the primary player, call this
|
||||
void Tick( void );
|
||||
|
||||
// ACHIEVEMENTS & AWARDS
|
||||
|
||||
void RegisterAward(int iAwardNumber,int iGamerconfigID, eAwardType eType, bool bLeaderboardAffected=false,
|
||||
CXuiStringTable*pStringTable=NULL, int iTitleStr=-1, int iTextStr=-1, int iAcceptStr=-1, char *pszThemeName=NULL, unsigned int uiThemeSize=0L);
|
||||
int GetAwardId(int iAwardNumber);
|
||||
eAwardType GetAwardType(int iAwardNumber);
|
||||
bool CanBeAwarded(int iQuadrant, int iAwardNumber);
|
||||
void Award(int iQuadrant, int iAwardNumber, bool bForce=false);
|
||||
bool IsAwardsFlagSet(int iQuadrant, int iAward);
|
||||
|
||||
// RICH PRESENCE
|
||||
|
||||
void RichPresenceInit(int iPresenceCount, int iContextCount);
|
||||
void RegisterRichPresenceContext(int iGameConfigContextID);
|
||||
void SetRichPresenceContextValue(int iPad,int iContextID, int iVal);
|
||||
void SetCurrentGameActivity(int iPad,int iNewPresence, bool bSetOthersToIdle=false);
|
||||
|
||||
// PURCHASE
|
||||
void DisplayFullVersionPurchase(bool bRequired, int iQuadrant, int iUpsellParam = -1);
|
||||
void SetUpsellCallback(void ( *Func)(LPVOID lpParam, eUpsellType type, eUpsellResponse response, int iUserData),LPVOID lpParam);
|
||||
|
||||
// Debug
|
||||
void SetDebugFullOverride(bool bVal); // To override the license version (trail/full). Only in debug/release, not ContentPackage
|
||||
|
||||
};
|
||||
|
||||
// Singleton
|
||||
extern C_4JProfile ProfileManager;
|
||||
|
||||
@@ -1,238 +0,0 @@
|
||||
#pragma once
|
||||
#include <xsocialpost.h>
|
||||
|
||||
const int GL_MODELVIEW_MATRIX = 0;
|
||||
const int GL_PROJECTION_MATRIX = 1;
|
||||
const int GL_MODELVIEW = 0;
|
||||
const int GL_PROJECTION = 1;
|
||||
const int GL_TEXTURE = 2;
|
||||
|
||||
// These things required for tex gen
|
||||
|
||||
const int GL_S = 0;
|
||||
const int GL_T = 1;
|
||||
const int GL_R = 2;
|
||||
const int GL_Q = 3;
|
||||
|
||||
const int GL_TEXTURE_GEN_S = 0;
|
||||
const int GL_TEXTURE_GEN_T = 1;
|
||||
const int GL_TEXTURE_GEN_Q = 2;
|
||||
const int GL_TEXTURE_GEN_R = 3;
|
||||
|
||||
const int GL_TEXTURE_GEN_MODE = 0;
|
||||
const int GL_OBJECT_LINEAR = 0;
|
||||
const int GL_EYE_LINEAR = 1;
|
||||
const int GL_OBJECT_PLANE = 0;
|
||||
const int GL_EYE_PLANE = 1;
|
||||
|
||||
|
||||
// These things are used by glEnable/glDisable so must be different and non-zero (zero is used by things we haven't assigned yet)
|
||||
const int GL_TEXTURE_2D = 1;
|
||||
const int GL_BLEND = 2;
|
||||
const int GL_CULL_FACE = 3;
|
||||
const int GL_ALPHA_TEST = 4;
|
||||
const int GL_DEPTH_TEST = 5;
|
||||
const int GL_FOG = 6;
|
||||
const int GL_LIGHTING = 7;
|
||||
const int GL_LIGHT0 = 8;
|
||||
const int GL_LIGHT1 = 9;
|
||||
|
||||
|
||||
const int GL_DEPTH_BUFFER_BIT = D3DCLEAR_ZBUFFER;
|
||||
const int GL_COLOR_BUFFER_BIT = D3DCLEAR_TARGET;
|
||||
|
||||
const int GL_QUADS = D3DPT_QUADLIST;
|
||||
const int GL_TRIANGLES = D3DPT_TRIANGLELIST;
|
||||
const int GL_LINE_STRIP = D3DPT_LINESTRIP;
|
||||
const int GL_TRIANGLE_STRIP = D3DPT_TRIANGLESTRIP;
|
||||
const int GL_TRIANGLE_FAN = D3DPT_TRIANGLEFAN;
|
||||
const int GL_LINES=D3DPT_LINELIST;
|
||||
const int GL_SRC_ALPHA = D3DBLEND_SRCALPHA;
|
||||
const int GL_ONE_MINUS_SRC_ALPHA = D3DBLEND_INVSRCALPHA;
|
||||
const int GL_ONE = D3DBLEND_ONE;
|
||||
const int GL_ZERO = D3DBLEND_ZERO;
|
||||
const int GL_DST_ALPHA = D3DBLEND_DESTALPHA;
|
||||
const int GL_SRC_COLOR = D3DBLEND_SRCCOLOR;
|
||||
const int GL_DST_COLOR = D3DBLEND_DESTCOLOR;
|
||||
const int GL_ONE_MINUS_DST_COLOR = D3DBLEND_INVDESTCOLOR;
|
||||
const int GL_ONE_MINUS_SRC_COLOR = D3DBLEND_INVSRCCOLOR;
|
||||
const int GL_CONSTANT_ALPHA = D3DBLEND_CONSTANTALPHA;
|
||||
const int GL_ONE_MINUS_CONSTANT_ALPHA = D3DBLEND_INVCONSTANTALPHA;
|
||||
|
||||
const int GL_GREATER = D3DCMP_GREATER;
|
||||
const int GL_EQUAL = D3DCMP_EQUAL;
|
||||
const int GL_LEQUAL = D3DCMP_LESSEQUAL;
|
||||
const int GL_GEQUAL = D3DCMP_GREATEREQUAL;
|
||||
const int GL_ALWAYS = D3DCMP_ALWAYS;
|
||||
|
||||
const int GL_TEXTURE_MIN_FILTER = 1;
|
||||
const int GL_TEXTURE_MAG_FILTER = 2;
|
||||
const int GL_TEXTURE_WRAP_S = 3;
|
||||
const int GL_TEXTURE_WRAP_T = 4;
|
||||
|
||||
const int GL_NEAREST = 0;
|
||||
const int GL_LINEAR = 1;
|
||||
const int GL_EXP = 2;
|
||||
const int GL_NEAREST_MIPMAP_LINEAR = 0; // TODO - mipmapping bit of this
|
||||
|
||||
const int GL_CLAMP = 0;
|
||||
const int GL_REPEAT = 1;
|
||||
|
||||
const int GL_FOG_START = 1;
|
||||
const int GL_FOG_END = 2;
|
||||
const int GL_FOG_MODE = 3;
|
||||
const int GL_FOG_DENSITY = 4;
|
||||
const int GL_FOG_COLOR = 5;
|
||||
|
||||
const int GL_POSITION = 1;
|
||||
const int GL_AMBIENT = 2;
|
||||
const int GL_DIFFUSE = 3;
|
||||
const int GL_SPECULAR = 4;
|
||||
|
||||
const int GL_LIGHT_MODEL_AMBIENT = 1;
|
||||
|
||||
|
||||
class C4JRender
|
||||
{
|
||||
public:
|
||||
void Tick();
|
||||
void UpdateGamma(unsigned short usGamma);
|
||||
|
||||
// Matrix stack
|
||||
void MatrixMode(int type);
|
||||
void MatrixSetIdentity();
|
||||
void MatrixTranslate(float x,float y,float z);
|
||||
void MatrixRotate(float angle, float x, float y, float z);
|
||||
void MatrixScale(float x, float y, float z);
|
||||
void MatrixPerspective(float fovy, float aspect, float zNear, float zFar);
|
||||
void MatrixOrthogonal(float left,float right,float bottom,float top,float zNear,float zFar);
|
||||
void MatrixPop();
|
||||
void MatrixPush();
|
||||
void MatrixMult(float *mat);
|
||||
const float *MatrixGet(int type);
|
||||
void Set_matrixDirty();
|
||||
|
||||
// Core
|
||||
void Initialise(IDirect3DDevice9 *pDevice);
|
||||
void InitialiseContext();
|
||||
void Present();
|
||||
void Clear(int flags, D3DRECT *pRect = NULL);
|
||||
void SetClearColour(D3DCOLOR colour);
|
||||
bool IsWidescreen();
|
||||
bool IsHiDef();
|
||||
void CaptureThumbnail(LPD3DXBUFFER *pngOut);
|
||||
void CaptureScreen(LPD3DXBUFFER *jpgOut, XSOCIAL_PREVIEWIMAGE *previewOut);
|
||||
void BeginConditionalSurvey(int identifier);
|
||||
void EndConditionalSurvey();
|
||||
void BeginConditionalRendering(int identifier);
|
||||
void EndConditionalRendering();
|
||||
|
||||
// Vertex data handling
|
||||
typedef enum
|
||||
{
|
||||
VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1, // Position 3 x float, texture 2 x float, colour 4 x byte, normal 4 x byte, padding 1 DWORD
|
||||
VERTEX_TYPE_PS3_TS2_CS1, // Position 3 x short, texture 2 x short, colour 4 x byte, padding 1 DWORD
|
||||
VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1_LIT, // as VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1 with lighting applied,
|
||||
VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1_TEXGEN, // as VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1 with tex gen
|
||||
VERTEX_TYPE_COUNT
|
||||
} eVertexType;
|
||||
|
||||
// Pixel shader
|
||||
typedef enum
|
||||
{
|
||||
PIXEL_SHADER_TYPE_STANDARD,
|
||||
PIXEL_SHADER_TYPE_PROJECTION,
|
||||
PIXEL_SHADER_TYPE_LOD_FORCE,
|
||||
PIXEL_SHADER_COUNT
|
||||
} ePixelShaderType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
VIEWPORT_TYPE_FULLSCREEN,
|
||||
VIEWPORT_TYPE_SPLIT_TOP,
|
||||
VIEWPORT_TYPE_SPLIT_BOTTOM,
|
||||
VIEWPORT_TYPE_SPLIT_LEFT,
|
||||
VIEWPORT_TYPE_SPLIT_RIGHT,
|
||||
VIEWPORT_TYPE_QUADRANT_TOP_LEFT,
|
||||
VIEWPORT_TYPE_QUADRANT_TOP_RIGHT,
|
||||
VIEWPORT_TYPE_QUADRANT_BOTTOM_LEFT,
|
||||
VIEWPORT_TYPE_QUADRANT_BOTTOM_RIGHT,
|
||||
} eViewportType;
|
||||
|
||||
void DrawVertices(D3DPRIMITIVETYPE PrimitiveType, int count, void *dataIn, eVertexType vType, C4JRender::ePixelShaderType psType);
|
||||
void DrawVertexBuffer(D3DPRIMITIVETYPE PrimitiveType, int count, IDirect3DVertexBuffer9 *buffer, C4JRender::eVertexType vType, C4JRender::ePixelShaderType psType);
|
||||
|
||||
// Command buffers
|
||||
void CBuffLockStaticCreations();
|
||||
int CBuffCreate(int count);
|
||||
void CBuffDelete(int first, int count);
|
||||
void CBuffStart(int index);
|
||||
void CBuffClear(int index);
|
||||
int CBuffSize(int index);
|
||||
void CBuffEnd(int vertexCount);
|
||||
bool CBuffCall(int index, bool full = true);
|
||||
void CBuffTick();
|
||||
void CBuffDeferredModeStart();
|
||||
void CBuffDeferredModeEnd();
|
||||
|
||||
typedef enum
|
||||
{
|
||||
TEXTURE_FORMAT_RxGyBzAw, // Normal 32-bit RGBA texture, 8 bits per component
|
||||
TEXTURE_FORMAT_R0G0B0Ax, // One 8-bit component mapped to alpha channel, R=G=B=0
|
||||
TEXTURE_FORMAT_R1G1B1Ax, // One 8-bit component mapped to alpha channel, R=G=B=1
|
||||
TEXTURE_FORMAT_RxGxBxAx, // One 8-bit component mapped to all channels
|
||||
MAX_TEXTURE_FORMATS
|
||||
} eTextureFormat;
|
||||
|
||||
// Textures
|
||||
int TextureCreate();
|
||||
void TextureFree(int idx);
|
||||
void TextureBind(int idx);
|
||||
void TextureBindVertex(int idx);
|
||||
void TextureSetTextureLevels(int levels);
|
||||
int TextureGetTextureLevels();
|
||||
void TextureData(int width, int height, void *data, int level, eTextureFormat format = TEXTURE_FORMAT_RxGyBzAw);
|
||||
void TextureDataUpdate(void *data, int level);
|
||||
void TextureSetParam(int param, int value);
|
||||
HRESULT LoadTextureData(const char *szFilename,D3DXIMAGE_INFO *pSrcInfo, int **ppDataOut);
|
||||
HRESULT LoadTextureData(BYTE *pbData, DWORD dwBytes,D3DXIMAGE_INFO *pSrcInfo, int **ppDataOut);
|
||||
HRESULT SaveTextureData(const char *szFilename, D3DXIMAGE_INFO *pSrcInfo, int *ppDataOut);
|
||||
void TextureGetStats();
|
||||
|
||||
// State control
|
||||
void StateSetColour(float r, float g, float b, float a);
|
||||
void StateSetDepthMask(bool enable);
|
||||
void StateSetBlendEnable(bool enable);
|
||||
void StateSetBlendFunc(int src, int dst);
|
||||
void StateSetBlendFactor(unsigned int colour);
|
||||
void StateSetAlphaFunc(int func, float param);
|
||||
void StateSetDepthFunc(int func);
|
||||
void StateSetFaceCull(bool enable);
|
||||
void StateSetFaceCullCW(bool cw);
|
||||
void StateSetLineWidth(float width);
|
||||
void StateSetWriteEnable(bool red, bool green, bool blue, bool alpha);
|
||||
void StateSetDepthTestEnable(bool enable);
|
||||
void StateSetAlphaTestEnable(bool enable);
|
||||
void StateSetDepthSlopeAndBias(float slope, float bias);
|
||||
void StateSetFogEnable(bool enable);
|
||||
void StateSetFogMode(int mode);
|
||||
void StateSetFogNearDistance(float dist);
|
||||
void StateSetFogFarDistance(float dist);
|
||||
void StateSetFogDensity(float density);
|
||||
void StateSetFogColour(float red, float green, float blue);
|
||||
void StateSetLightingEnable(bool enable);
|
||||
void StateSetVertexTextureUV( float u, float v);
|
||||
void StateSetLightColour(int light, float red, float green, float blue);
|
||||
void StateSetLightAmbientColour(float red, float green, float blue);
|
||||
void StateSetLightDirection(int light, float x, float y, float z);
|
||||
void StateSetLightEnable(int light, bool enable);
|
||||
void StateSetViewport(eViewportType viewportType);
|
||||
void StateSetEnableViewportClipPlanes(bool enable);
|
||||
void StateSetTexGenCol(int col, float x, float y, float z, float w, bool eyeSpace);
|
||||
void StateSetForceLOD(int LOD);
|
||||
};
|
||||
|
||||
|
||||
// Singleton
|
||||
extern C4JRender RenderManager;
|
||||
|
||||
@@ -1,306 +0,0 @@
|
||||
#pragma once
|
||||
using namespace std;
|
||||
#include <vector>
|
||||
|
||||
|
||||
class CXuiStringTable;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
FILETIME fTime;
|
||||
XCONTENT_DATA Content;
|
||||
bool bSaveIsDamaged;
|
||||
}
|
||||
SAVE_DETAILS,*PSAVE_DETAILS;
|
||||
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(CALLBACK * TMSCLIENT_PROG_CALLBACK)(
|
||||
__in float progress,
|
||||
__in_opt void* userCallbackData
|
||||
);
|
||||
|
||||
//typedef std::vector <PXMARKETPLACE_CONTENTOFFER_INFO> OfferDataArray;
|
||||
typedef std::vector <PXMARKETPLACE_CURRENCY_CONTENTOFFER_INFO> OfferDataArray;
|
||||
typedef std::vector <PXCONTENT_DATA> XContentDataArray;
|
||||
//typedef std::vector <PSAVE_DETAILS> SaveDetailsArray;
|
||||
|
||||
// Current version of the dlc data creator
|
||||
#define CURRENT_DLC_VERSION_NUM 3
|
||||
|
||||
class C4JStorage
|
||||
{
|
||||
|
||||
public:
|
||||
// Structs defined in the DLC_Creator, but added here to be used in the app
|
||||
typedef struct
|
||||
{
|
||||
unsigned int uiFileSize;
|
||||
DWORD dwType;
|
||||
DWORD dwWchCount; // count of WCHAR in next array
|
||||
WCHAR wchFile[1];
|
||||
}
|
||||
DLC_FILE_DETAILS, *PDLC_FILE_DETAILS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwType;
|
||||
DWORD dwWchCount; // count of WCHAR in next array;
|
||||
WCHAR wchData[1]; // will be an array of size dwBytes
|
||||
}
|
||||
DLC_FILE_PARAM, *PDLC_FILE_PARAM;
|
||||
// End of DLC_Creator structs
|
||||
|
||||
typedef struct
|
||||
{
|
||||
WCHAR wchDisplayName[XCONTENT_MAX_DISPLAYNAME_LENGTH];
|
||||
CHAR szFileName[XCONTENT_MAX_FILENAME_LENGTH];
|
||||
DWORD dwImageOffset;
|
||||
DWORD dwImageBytes;
|
||||
}
|
||||
CACHEINFOSTRUCT;
|
||||
|
||||
// structure to hold DLC info in TMS
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwVersion;
|
||||
DWORD dwNewOffers;
|
||||
DWORD dwTotalOffers;
|
||||
DWORD dwInstalledTotalOffers;
|
||||
BYTE bPadding[1024-sizeof(DWORD)*4]; // future expansion
|
||||
}
|
||||
DLC_TMS_DETAILS;
|
||||
|
||||
enum eGTS_FileTypes
|
||||
{
|
||||
eGTS_Type_Skin=0,
|
||||
eGTS_Type_Cape,
|
||||
eGTS_Type_MAX
|
||||
};
|
||||
|
||||
enum eGlobalStorage
|
||||
{
|
||||
//eGlobalStorage_GameClip=0,
|
||||
eGlobalStorage_Title=0,
|
||||
eGlobalStorage_TitleUser,
|
||||
eGlobalStorage_Max
|
||||
};
|
||||
|
||||
enum EMessageResult
|
||||
{
|
||||
EMessage_Undefined=0,
|
||||
EMessage_Busy,
|
||||
EMessage_Pending,
|
||||
EMessage_Cancelled,
|
||||
EMessage_ResultAccept,
|
||||
EMessage_ResultDecline,
|
||||
EMessage_ResultThirdOption,
|
||||
EMessage_ResultFourthOption
|
||||
};
|
||||
|
||||
enum ESaveGameControlState
|
||||
{
|
||||
ESaveGameControl_Idle=0,
|
||||
ESaveGameControl_Save,
|
||||
ESaveGameControl_InternalRequestingDevice,
|
||||
ESaveGameControl_InternalGetSaveName,
|
||||
ESaveGameControl_InternalSaving,
|
||||
ESaveGameControl_CopySave,
|
||||
ESaveGameControl_CopyingSave,
|
||||
};
|
||||
|
||||
enum ELoadGameStatus
|
||||
{
|
||||
ELoadGame_Idle=0,
|
||||
ELoadGame_InProgress,
|
||||
ELoadGame_NoSaves,
|
||||
ELoadGame_ChangedDevice,
|
||||
ELoadGame_DeviceRemoved
|
||||
};
|
||||
|
||||
enum EDeleteGameStatus
|
||||
{
|
||||
EDeleteGame_Idle=0,
|
||||
EDeleteGame_InProgress,
|
||||
};
|
||||
|
||||
|
||||
enum ESGIStatus
|
||||
{
|
||||
ESGIStatus_Error=0,
|
||||
ESGIStatus_Idle,
|
||||
ESGIStatus_ReadInProgress,
|
||||
ESGIStatus_NoSaves,
|
||||
};
|
||||
|
||||
enum EDLCStatus
|
||||
{
|
||||
EDLC_Error=0,
|
||||
EDLC_Idle,
|
||||
EDLC_NoOffers,
|
||||
EDLC_AlreadyEnumeratedAllOffers,
|
||||
EDLC_NoInstalledDLC,
|
||||
EDLC_Pending,
|
||||
EDLC_LoadInProgress,
|
||||
EDLC_Loaded,
|
||||
EDLC_ChangedDevice
|
||||
};
|
||||
|
||||
enum ESavingMessage
|
||||
{
|
||||
ESavingMessage_None=0,
|
||||
ESavingMessage_Short,
|
||||
ESavingMessage_Long
|
||||
};
|
||||
|
||||
enum ETMSStatus
|
||||
{
|
||||
ETMSStatus_Idle=0,
|
||||
ETMSStatus_Fail,
|
||||
ETMSStatus_ReadInProgress,
|
||||
ETMSStatus_ReadFileListInProgress,
|
||||
ETMSStatus_WriteInProgress,
|
||||
ETMSStatus_Fail_ReadInProgress,
|
||||
ETMSStatus_Fail_ReadFileListInProgress,
|
||||
ETMSStatus_Fail_ReadDetailsNotRetrieved,
|
||||
ETMSStatus_Fail_WriteInProgress,
|
||||
ETMSStatus_DeleteInProgress,
|
||||
ETMSStatus_Pending,
|
||||
};
|
||||
|
||||
enum eTMS_FileType
|
||||
{
|
||||
eTMS_FileType_Normal=0,
|
||||
eTMS_FileType_Graphic,
|
||||
};
|
||||
|
||||
enum eTMS_FILETYPEVAL
|
||||
{
|
||||
TMS_FILETYPE_BINARY=0,
|
||||
TMS_FILETYPE_CONFIG=1,
|
||||
TMS_FILETYPE_JSON=2,
|
||||
TMS_FILETYPE_MAX,
|
||||
};
|
||||
enum eTMS_UGCTYPE
|
||||
{
|
||||
TMS_UGCTYPE_NONE,
|
||||
TMS_UGCTYPE_IMAGE,
|
||||
TMS_UGCTYPE_MAX
|
||||
};
|
||||
|
||||
typedef struct
|
||||
{
|
||||
CHAR szFilename[256];
|
||||
int iFileSize;
|
||||
eTMS_FILETYPEVAL eFileTypeVal;
|
||||
}
|
||||
TMSPP_FILE_DETAILS, *PTMSPP_FILE_DETAILS;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int iCount;
|
||||
PTMSPP_FILE_DETAILS FileDetailsA;
|
||||
}
|
||||
TMSPP_FILE_LIST, *PTMSPP_FILE_LIST;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
DWORD dwSize;
|
||||
PBYTE pbData;
|
||||
}
|
||||
TMSPP_FILEDATA, *PTMSPP_FILEDATA;
|
||||
|
||||
C4JStorage();
|
||||
|
||||
void Tick(void);
|
||||
|
||||
// Messages
|
||||
C4JStorage::EMessageResult RequestMessageBox(UINT uiTitle, UINT uiText, UINT *uiOptionA,UINT uiOptionC, DWORD dwPad=XUSER_INDEX_ANY,
|
||||
int( *Func)(LPVOID,int,const C4JStorage::EMessageResult)=NULL,LPVOID lpParam=NULL, CXuiStringTable *pStringTable=NULL, WCHAR *pwchFormatString=NULL,DWORD dwFocusButton=0);
|
||||
void CancelMessageBoxRequest();
|
||||
|
||||
C4JStorage::EMessageResult GetMessageBoxResult();
|
||||
|
||||
// save device
|
||||
bool SetSaveDevice(int( *Func)(LPVOID,const bool),LPVOID lpParam, bool bForceResetOfSaveDevice=false);
|
||||
|
||||
// savegame
|
||||
void Init(LPCWSTR pwchDefaultSaveName,char *pszSavePackName,int iMinimumSaveSize, int( *Func)(LPVOID, const ESavingMessage, int),LPVOID lpParam,LPCSTR szGroupID);
|
||||
void ResetSaveData(); // Call before a new save to clear out stored save file name
|
||||
void SetDefaultSaveNameForKeyboardDisplay(LPCWSTR pwchDefaultSaveName);
|
||||
void SetSaveTitle(LPCWSTR pwchDefaultSaveName);
|
||||
LPCWSTR GetSaveTitle();
|
||||
bool GetSaveUniqueNumber(INT *piVal);
|
||||
bool GetSaveUniqueFilename(char *pszName);
|
||||
void SetState(ESaveGameControlState eControlState,int( *Func)(LPVOID,const bool),LPVOID lpParam);
|
||||
void SetSaveDisabled(bool bDisable);
|
||||
bool GetSaveDisabled(void);
|
||||
unsigned int GetSaveSize();
|
||||
void GetSaveData(void *pvData,unsigned int *puiBytes);
|
||||
PVOID AllocateSaveData(unsigned int uiBytes);
|
||||
void SaveSaveData(unsigned int uiBytes,PBYTE pbThumbnail=NULL,DWORD cbThumbnail=0,PBYTE pbTextData=NULL, DWORD dwTextLen=0);
|
||||
void CopySaveDataToNewSave(PBYTE pbThumbnail,DWORD cbThumbnail,WCHAR *wchNewName,int ( *Func)(LPVOID lpParam, bool), LPVOID lpParam);
|
||||
void SetSaveDeviceSelected(unsigned int uiPad,bool bSelected);
|
||||
bool GetSaveDeviceSelected(unsigned int iPad);
|
||||
C4JStorage::ELoadGameStatus DoesSaveExist(bool *pbExists);
|
||||
bool EnoughSpaceForAMinSaveGame();
|
||||
|
||||
void SetSaveMessageVPosition(float fY); // The 'Saving' message will display at a default position unless changed
|
||||
// Get the info for the saves
|
||||
C4JStorage::ESGIStatus GetSavesInfo(int iPad,bool ( *Func)(LPVOID, int, CACHEINFOSTRUCT *, int, HRESULT),LPVOID lpParam,char *pszSavePackName);
|
||||
|
||||
void GetSaveCacheFileInfo(DWORD dwFile,XCONTENT_DATA &xContentData);
|
||||
void GetSaveCacheFileInfo(DWORD dwFile, PBYTE *ppbImageData, DWORD *pdwImageBytes);
|
||||
|
||||
// Load the save. Need to call GetSaveData once the callback is called
|
||||
C4JStorage::ELoadGameStatus LoadSaveData(XCONTENT_DATA *pContentData,int( *Func)(LPVOID lpParam,const bool), LPVOID lpParam);
|
||||
C4JStorage::EDeleteGameStatus DeleteSaveData(XCONTENT_DATA *pContentData,int( *Func)(LPVOID lpParam,const bool), LPVOID lpParam);
|
||||
|
||||
// DLC
|
||||
void RegisterMarketplaceCountsCallback(int ( *Func)(LPVOID lpParam, C4JStorage::DLC_TMS_DETAILS *, int), LPVOID lpParam );
|
||||
void SetDLCPackageRoot(char *pszDLCRoot);
|
||||
C4JStorage::EDLCStatus GetDLCOffers(int iPad,int( *Func)(LPVOID, int, DWORD, int),LPVOID lpParam, DWORD dwOfferTypesBitmask=XMARKETPLACE_OFFERING_TYPE_CONTENT);
|
||||
DWORD CancelGetDLCOffers();
|
||||
void ClearDLCOffers();
|
||||
//XMARKETPLACE_CONTENTOFFER_INFO& GetOffer(DWORD dw);
|
||||
XMARKETPLACE_CURRENCY_CONTENTOFFER_INFO& GetOffer(DWORD dw);
|
||||
int GetOfferCount();
|
||||
DWORD InstallOffer(int iOfferIDC,unsigned __int64 *ullOfferIDA,int( *Func)(LPVOID, int, int),LPVOID lpParam, bool bTrial=false);
|
||||
DWORD GetAvailableDLCCount( int iPad);
|
||||
|
||||
C4JStorage::EDLCStatus GetInstalledDLC(int iPad,int( *Func)(LPVOID, int, int),LPVOID lpParam);
|
||||
XCONTENT_DATA& GetDLC(DWORD dw);
|
||||
DWORD MountInstalledDLC(int iPad,DWORD dwDLC,int( *Func)(LPVOID, int, DWORD,DWORD),LPVOID lpParam,LPCSTR szMountDrive=NULL);
|
||||
DWORD UnmountInstalledDLC(LPCSTR szMountDrive=NULL);
|
||||
|
||||
// Global title storage
|
||||
C4JStorage::ETMSStatus ReadTMSFile(int iQuadrant,eGlobalStorage eStorageFacility,C4JStorage::eTMS_FileType eFileType,
|
||||
WCHAR *pwchFilename,BYTE **ppBuffer,DWORD *pdwBufferSize,int( *Func)(LPVOID, WCHAR *,int, bool, int)=NULL,LPVOID lpParam=NULL, int iAction=0);
|
||||
bool WriteTMSFile(int iQuadrant,eGlobalStorage eStorageFacility,WCHAR *pwchFilename,BYTE *pBuffer,DWORD dwBufferSize);
|
||||
bool DeleteTMSFile(int iQuadrant,eGlobalStorage eStorageFacility,WCHAR *pwchFilename);
|
||||
void StoreTMSPathName(WCHAR *pwchName=NULL);
|
||||
|
||||
// TMS++
|
||||
C4JStorage::ETMSStatus TMSPP_WriteFile(int iPad,C4JStorage::eGlobalStorage eStorageFacility,C4JStorage::eTMS_FILETYPEVAL eFileTypeVal,C4JStorage::eTMS_UGCTYPE eUGCType,CHAR *pchFilePath,CHAR *pchBuffer,DWORD dwBufferSize,int( *Func)(LPVOID,int,int)=NULL,LPVOID lpParam=NULL, int iUserData=0);
|
||||
C4JStorage::ETMSStatus TMSPP_GetUserQuotaInfo(int iPad,TMSCLIENT_CALLBACK Func,LPVOID lpParam, int iUserData=0);
|
||||
C4JStorage::ETMSStatus TMSPP_ReadFile(int iPad,C4JStorage::eGlobalStorage eStorageFacility,C4JStorage::eTMS_FILETYPEVAL eFileTypeVal,LPCSTR szFilename,int( *Func)(LPVOID,int,int,PTMSPP_FILEDATA, LPCSTR)=NULL,LPVOID lpParam=NULL, int iUserData=0);
|
||||
C4JStorage::ETMSStatus TMSPP_ReadFileList(int iPad,C4JStorage::eGlobalStorage eStorageFacility,CHAR *pchFilePath,int( *Func)(LPVOID,int,int,PTMSPP_FILE_LIST)=NULL,LPVOID lpParam=NULL, int iUserData=0);
|
||||
C4JStorage::ETMSStatus TMSPP_DeleteFile(int iPad,LPCSTR szFilePath,C4JStorage::eTMS_FILETYPEVAL eFileTypeVal,int( *Func)(LPVOID,int,int),LPVOID lpParam=NULL, int iUserData=0);
|
||||
bool TMSPP_InFileList(eGlobalStorage eStorageFacility, int iPad,const wstring &Filename);
|
||||
unsigned int CRC(unsigned char *buf, int len);
|
||||
|
||||
C4JStorage::ETMSStatus TMSPP_WriteFileWithProgress(int iPad,C4JStorage::eGlobalStorage eStorageFacility,C4JStorage::eTMS_FILETYPEVAL eFileTypeVal,C4JStorage::eTMS_UGCTYPE eUGCType,CHAR *pchFilePath,CHAR *pchBuffer,DWORD dwBufferSize,int( *Func)(LPVOID,int,int)=NULL,LPVOID lpParam=NULL, int iUserData=0,
|
||||
int( *CompletionFunc)(LPVOID,float fComplete)=NULL,LPVOID lpCompletionParam=NULL);
|
||||
void TMSPP_CancelWriteFileWithProgress(int iPad);
|
||||
|
||||
HRESULT TMSPP_SetTitleGroupID(LPCSTR szGroupID);
|
||||
|
||||
// #ifdef _DEBUG
|
||||
// void SetSaveName(int i);
|
||||
// #endif
|
||||
// string table for all the Storage problems. Loaded by the application
|
||||
CXuiStringTable *m_pStringTable;
|
||||
};
|
||||
|
||||
extern C4JStorage StorageManager;
|
||||
@@ -1,55 +0,0 @@
|
||||
/*++
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
Module Name:
|
||||
|
||||
xsgx_xtms.h
|
||||
|
||||
--*/
|
||||
#include "xtms.h"
|
||||
|
||||
#pragma once
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef XSGX_MOD1
|
||||
|
||||
typedef
|
||||
VOID
|
||||
(CALLBACK * TMSCLIENT_PROG_CALLBACK)(
|
||||
__in float progress,
|
||||
__in_opt void* userCallbackData
|
||||
);
|
||||
|
||||
|
||||
XBOXAPI
|
||||
HRESULT
|
||||
WINAPI
|
||||
XSGX_XTmsPutUserFile(
|
||||
__in HTMSCLIENT tmsClient,
|
||||
__in XUID xuid,
|
||||
__in_z LPCSTR filePath,
|
||||
__in_z LPCSTR fileType,
|
||||
__in_z LPCSTR displayName,
|
||||
__in_z LPCSTR ugcContentType,
|
||||
__in_bcount(fileSize) CONST CHAR* fileBuffer,
|
||||
__in DWORD fileSize,
|
||||
__in_opt DWORD bufferSize,
|
||||
__in_z_opt LPCSTR etag,
|
||||
__in ETAGFLAG etagFlag,
|
||||
__in TMSCLIENT_CALLBACK clientCallback,
|
||||
__in_opt PVOID userCallbackData,
|
||||
__in TMSCLIENT_PROG_CALLBACK clientProgCallback,
|
||||
__in_opt PVOID progCallbackData
|
||||
);
|
||||
|
||||
void XSGX_XTmsCancelPutUserFile(__in HTMSCLIENT tmsClient);
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
}
|
||||
#endif
|
||||
@@ -1,110 +0,0 @@
|
||||
#pragma once
|
||||
class Mob;
|
||||
class Options;
|
||||
using namespace std;
|
||||
#include "..\..\..\Minecraft.World\SoundTypes.h"
|
||||
|
||||
#ifdef _XBOX
|
||||
extern IXAudio2* g_pXAudio2; // pointer to XAudio2 instance used by QNet and XACT
|
||||
extern IXAudio2MasteringVoice* g_pXAudio2MasteringVoice; // pointer to XAudio2 mastering voice
|
||||
#endif
|
||||
|
||||
class SoundEngine : public ConsoleSoundEngine
|
||||
{
|
||||
#ifdef _XBOX
|
||||
//static const unsigned char *ucSoundNames[eSoundType_MAX][32];
|
||||
static const int MAX_POLYPHONY = 30; // 4J added
|
||||
static const int MAX_SAME_SOUNDS_PLAYING = 8; // 4J added
|
||||
static IXACT3Engine *m_pXACT3Engine;
|
||||
static X3DAUDIO_HANDLE m_xact3dInstance;
|
||||
static X3DAUDIO_DSP_SETTINGS m_DSPSettings;
|
||||
static X3DAUDIO_EMITTER m_emitter;
|
||||
static X3DAUDIO_LISTENER m_listeners[4];
|
||||
static int m_validListenerCount;
|
||||
|
||||
static X3DAUDIO_DISTANCE_CURVE m_VolumeCurve;
|
||||
static X3DAUDIO_DISTANCE_CURVE_POINT m_VolumeCurvePoints[2];
|
||||
|
||||
static X3DAUDIO_DISTANCE_CURVE m_DragonVolumeCurve;
|
||||
static X3DAUDIO_DISTANCE_CURVE_POINT m_DragonVolumeCurvePoints[2];
|
||||
|
||||
static X3DAUDIO_DISTANCE_CURVE m_VolumeCurveNoDecay;
|
||||
static X3DAUDIO_DISTANCE_CURVE_POINT m_VolumeCurvePointsNoDecay[2];
|
||||
|
||||
static IXACT3WaveBank *m_pWaveBank;
|
||||
static IXACT3WaveBank *m_pWaveBank2;
|
||||
static IXACT3WaveBank *m_pStreamedWaveBank;
|
||||
static IXACT3WaveBank *m_pStreamedWaveBankAdditional;
|
||||
static IXACT3SoundBank *m_pSoundBank;
|
||||
static IXACT3SoundBank *m_pSoundBank2;
|
||||
|
||||
static CRITICAL_SECTION m_CS;
|
||||
|
||||
struct soundInfo
|
||||
{
|
||||
// 4J-PB - adding the cue index so we can limit the number of the same sounds playing (rain)
|
||||
XACTINDEX idx;
|
||||
int iSoundBank;
|
||||
eSOUND_TYPE eSoundID;
|
||||
float x, y, z;
|
||||
float volume;
|
||||
float pitch;
|
||||
IXACT3Cue *pCue;
|
||||
bool updatePos;
|
||||
};
|
||||
|
||||
void update3DPosition( soundInfo *pInfo, bool bPlaceEmitterAtListener = false, bool bIsCDMusic = false);
|
||||
static vector<soundInfo *>currentSounds;
|
||||
|
||||
int noMusicDelay;
|
||||
Random *random;
|
||||
|
||||
// 4J Added
|
||||
#endif
|
||||
|
||||
#ifdef _XBOX
|
||||
char * m_chMusicName;
|
||||
soundInfo m_MusicInfo;
|
||||
|
||||
XACTINDEX m_musicIDX;
|
||||
bool m_bStreamingMusicReady;
|
||||
bool m_bStreamingWaveBank1Ready;
|
||||
bool m_bStreamingWaveBank2Ready;
|
||||
|
||||
// to handle volume changes
|
||||
XACTCATEGORY m_xactSFX;
|
||||
XACTCATEGORY m_xactMusic;
|
||||
#endif
|
||||
public:
|
||||
SoundEngine();
|
||||
virtual void destroy();
|
||||
virtual void play(int iSound, float x, float y, float z, float volume, float pitch);
|
||||
virtual void playStreaming(const wstring& name, float x, float y , float z, float volume, float pitch, bool bMusicDelay=true);
|
||||
virtual void playUI(int iSound, float volume, float pitch);
|
||||
virtual void playMusicTick();
|
||||
virtual void updateMusicVolume(float fVal);
|
||||
virtual void updateSystemMusicPlaying(bool isPlaying);
|
||||
virtual void updateSoundEffectVolume(float fVal);
|
||||
virtual void init(Options *);
|
||||
virtual void tick(shared_ptr<Mob> *players, float a); // 4J - updated to take array of local players rather than single one
|
||||
virtual void add(const wstring& name, File *file);
|
||||
virtual void addMusic(const wstring& name, File *file);
|
||||
virtual void addStreaming(const wstring& name, File *file);
|
||||
#ifndef __PS3__
|
||||
static void setXACTEngine( IXACT3Engine *pXACT3Engine);
|
||||
void CreateStreamingWavebank(const char *pchName, IXACT3WaveBank **ppStreamedWaveBank);
|
||||
void CreateSoundbank(const char *pchName, IXACT3SoundBank **ppSoundBank);
|
||||
|
||||
#endif // __PS3__
|
||||
virtual char *ConvertSoundPathToName(const wstring& name, bool bConvertSpaces=false);
|
||||
bool isStreamingWavebankReady(); // 4J Added
|
||||
#ifdef _XBOX
|
||||
bool isStreamingWavebankReady(IXACT3WaveBank *pWaveBank);
|
||||
#endif
|
||||
int initAudioHardware(int iMinSpeakers) { return iMinSpeakers;}
|
||||
|
||||
private:
|
||||
#ifndef __PS3__
|
||||
static void XACTNotificationCallback( const XACT_NOTIFICATION* pNotification );
|
||||
#endif // __PS3__
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
copy ..\..\Debug\Minecraft.Client_D.xex .\Package\default.xex
|
||||
|
||||
pause
|
||||
@@ -1,59 +0,0 @@
|
||||
mkdir .\Package
|
||||
copy ..\..\ContentPackage\default.xex .\Package\default.xex
|
||||
|
||||
REM Copy files from the Gameconfig
|
||||
|
||||
copy ..\GameConfig\01.png .\Package\
|
||||
copy ..\GameConfig\02.png .\Package\
|
||||
copy ..\GameConfig\03.png .\Package\
|
||||
copy ..\GameConfig\04.png .\Package\
|
||||
copy ..\GameConfig\05.png .\Package\
|
||||
copy ..\GameConfig\06.png .\Package\
|
||||
copy ..\GameConfig\07.png .\Package\
|
||||
copy ..\GameConfig\08.png .\Package\
|
||||
copy ..\GameConfig\09.png .\Package\
|
||||
copy ..\GameConfig\10.png .\Package\
|
||||
copy ..\GameConfig\11.png .\Package\
|
||||
copy ..\GameConfig\12.png .\Package\
|
||||
copy ..\GameConfig\13.png .\Package\
|
||||
copy ..\GameConfig\14.png .\Package\
|
||||
copy ..\GameConfig\15.png .\Package\
|
||||
copy ..\GameConfig\16.png .\Package\
|
||||
copy ..\GameConfig\17.png .\Package\
|
||||
copy ..\GameConfig\18.png .\Package\
|
||||
copy ..\GameConfig\19.png .\Package\
|
||||
copy ..\GameConfig\20.png .\Package\
|
||||
copy ..\GameConfig\32_584111F70002000100010001.png .\Package\
|
||||
copy ..\GameConfig\32_584111F70002000200010002.png .\Package\
|
||||
copy ..\GameConfig\64_584111F70002000100010001.png .\Package\
|
||||
copy ..\GameConfig\64_584111F70002000200010002.png .\Package\
|
||||
copy ..\GameConfig\ArcadeInfo.xml .\Package\
|
||||
copy ..\GameConfig\Minecraft_BOXART.png .\Package\
|
||||
copy ..\GameConfig\Minecraft_BKGND.png .\Package\
|
||||
copy ..\GameConfig\MinecraftIcon.png .\Package\
|
||||
copy ..\GameConfig\MinecraftMarketplace.png .\Package\
|
||||
copy ..\GameConfig\TitleAward1_F_icon-64.png .\Package\
|
||||
copy ..\GameConfig\TitleAward1_F_icon-128.png .\Package\
|
||||
copy ..\GameConfig\TitleAward1_M_icon-64.png .\Package\
|
||||
copy ..\GameConfig\TitleAward1_M_icon-128.png .\Package\
|
||||
copy ..\GameConfig\TitleAward2_F_icon-64.png .\Package\
|
||||
copy ..\GameConfig\TitleAward2_F_icon-128.png .\Package\
|
||||
copy ..\GameConfig\TitleAward2_M_icon-64.png .\Package\
|
||||
copy ..\GameConfig\TitleAward2_M_icon-128.png .\Package\
|
||||
copy ..\GameConfig\TitleAward3_icon-64.png .\Package\
|
||||
copy ..\GameConfig\TitleAward3_icon-128.png .\Package\
|
||||
copy ..\GameConfig\TitleAward3_icon-128.png .\Package\
|
||||
copy ..\GameConfig\Tshirt5_Porkchop_Female.bin .\Package\
|
||||
copy ..\GameConfig\Tshirt5_Porkchop_Male.bin .\Package\
|
||||
copy ..\GameConfig\MineCraft_Watch_Female.bin .\Package\
|
||||
copy ..\GameConfig\MineCraft_Watch_Male.bin .\Package\
|
||||
copy ..\GameConfig\Creeper_Cap.bin .\Package\
|
||||
copy ..\AvatarAwards .\Package\
|
||||
copy ..\584111F70AAAAAAA .\Package\
|
||||
|
||||
xcopy /Y /S /I ..\res\*.* .\Package\res\
|
||||
xcopy /Y /S /I ..\kinect\speech\*.* .\Package\
|
||||
mkdir .\Package\Tutorial\
|
||||
copy ..\Tutorial\Tutorial .\Package\Tutorial\Tutorial
|
||||
|
||||
pause
|
||||
@@ -1,34 +0,0 @@
|
||||
SET TOOLS_PATH="C:\Program Files (x86)\Microsoft Xbox 360 SDK\bin\win32"
|
||||
REM SET TOOLS_PATH="C:\Program Files\Microsoft Xbox 360 SDK\bin\win32"
|
||||
|
||||
SET KIT1="4j_new_2"
|
||||
SET KIT2="4j_dev03"
|
||||
SET KIT3="dev4j_ms_06"
|
||||
SET KIT4="dev4j_02"
|
||||
SET KIT5="Marvin2"
|
||||
|
||||
set TITLEID=584111F7
|
||||
|
||||
copy Online\%TITLEID%00000000 .\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\Arcadelicense full %TITLEID%00000000
|
||||
|
||||
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT1% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT1% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT2% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT2% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT3% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT3% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT4% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT4% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT5% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT5% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
|
||||
pause
|
||||
@@ -1,33 +0,0 @@
|
||||
SET TOOLS_PATH="C:\Program Files (x86)\Microsoft Xbox 360 SDK\bin\win32"
|
||||
REM SET TOOLS_PATH="C:\Program Files\Microsoft Xbox 360 SDK\bin\win32"
|
||||
|
||||
SET KIT1="4j_new_2"
|
||||
SET KIT2="4j_dev03"
|
||||
SET KIT3="dev4j_ms_06"
|
||||
SET KIT4="dev4j_02"
|
||||
SET KIT5="Marvin2"
|
||||
|
||||
set TITLEID=584111F7
|
||||
|
||||
copy Online\%TITLEID%00000000 .\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\Arcadelicense trial 584111F700000000
|
||||
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT1% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT1% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT2% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT2% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT3% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT3% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT4% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT4% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
%TOOLS_PATH%\xbdel /x:%KIT5% /r /f /h HDD:\Content\0000000000000000\%TITLEID%\000D0000\*.*
|
||||
%TOOLS_PATH%\xbcp /x:%KIT5% /t %TITLEID%00000000 HDD:\Content\0000000000000000\%TITLEID%\000D0000\%TITLEID%00000000
|
||||
|
||||
|
||||
pause
|
||||
@@ -1,3 +0,0 @@
|
||||
Copy Online\584111F700000000 .\584111F700000000
|
||||
Arcadelicense full 584111F700000000
|
||||
pause
|
||||
@@ -1,3 +0,0 @@
|
||||
Copy Online\584111F700000000 .\584111F700000000
|
||||
Arcadelicense trial 584111F700000000
|
||||
pause
|
||||
@@ -1,503 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "..\..\Tesselator.h"
|
||||
#include "XUI_FontData.h"
|
||||
#include "XUI_Font.h"
|
||||
|
||||
extern IDirect3DDevice9 *g_pD3DDevice;
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: XUI_Font()
|
||||
// Desc: Constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
XUI_Font::XUI_Font(int iFontData, float scaleFactor, XUI_FontData *fontData)
|
||||
: m_iFontData(iFontData), m_fScaleFactor(scaleFactor)
|
||||
{
|
||||
m_fontData = fontData;
|
||||
refCount = 0;
|
||||
|
||||
m_fCursorX = 0.0f;
|
||||
m_fCursorY = 0.0f;
|
||||
|
||||
m_fXScaleFactor = m_fYScaleFactor = scaleFactor;
|
||||
|
||||
m_fSlantFactor = 0.0f;
|
||||
m_bRotate = FALSE;
|
||||
m_dRotCos = cos( 0.0 );
|
||||
m_dRotSin = sin( 0.0 );
|
||||
|
||||
m_dwNestedBeginCount = 0L;
|
||||
|
||||
// Initialize the window
|
||||
D3DDISPLAYMODE DisplayMode;
|
||||
g_pD3DDevice->GetDisplayMode( 0, &DisplayMode );
|
||||
m_rcWindow.x1 = 0;
|
||||
m_rcWindow.y1 = 0;
|
||||
m_rcWindow.x2 = DisplayMode.Width;
|
||||
m_rcWindow.y2 = DisplayMode.Height;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: ~XUI_Font()
|
||||
// Desc: Destructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
XUI_Font::~XUI_Font()
|
||||
{
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: GetTextExtent()
|
||||
// Desc: Get the dimensions of a text string
|
||||
//--------------------------------------------------------------------------------------
|
||||
|
||||
VOID XUI_Font::GetTextExtent( const WCHAR* strText, FLOAT* pWidth,
|
||||
FLOAT* pHeight, BOOL bFirstLineOnly ) const
|
||||
{
|
||||
assert( pWidth != NULL );
|
||||
assert( pHeight != NULL );
|
||||
|
||||
// Set default text extent in output parameters
|
||||
int iWidth = 0;
|
||||
FLOAT fHeight = 0.0f;
|
||||
|
||||
if( strText )
|
||||
{
|
||||
// Initialize counters that keep track of text extent
|
||||
int ix = 0;
|
||||
FLOAT fy = m_fontData->getFontHeight(); // One character high to start
|
||||
if( fy > fHeight )
|
||||
fHeight = fy;
|
||||
|
||||
// Loop through each character and update text extent
|
||||
DWORD letter;
|
||||
while( (letter = *strText) != 0 )
|
||||
{
|
||||
++strText;
|
||||
|
||||
// Handle newline character
|
||||
if( letter == L'\n' )
|
||||
{
|
||||
if( bFirstLineOnly )
|
||||
break;
|
||||
ix = 0;
|
||||
fy += m_fontData->getFontYAdvance();
|
||||
// since the height has changed, test against the height extent
|
||||
if( fy > fHeight )
|
||||
fHeight = fy;
|
||||
}
|
||||
|
||||
// Handle carriage return characters by ignoring them. This helps when
|
||||
// displaying text from a file.
|
||||
if( letter == L'\r' )
|
||||
continue;
|
||||
|
||||
// Translate unprintable characters
|
||||
XUI_FontData::SChar sChar = m_fontData->getChar(letter);
|
||||
|
||||
// Get text extent for this character's glyph
|
||||
ix += sChar.getOffset();
|
||||
ix += sChar.getWAdvance();
|
||||
|
||||
// Since the x widened, test against the x extent
|
||||
if (ix > iWidth) iWidth = ix;
|
||||
}
|
||||
}
|
||||
|
||||
// Convert the width to a float here, load/hit/store. :(
|
||||
FLOAT fWidth = static_cast<FLOAT>(iWidth); // Delay the use if fWidth to reduce LHS pain
|
||||
// Apply the scale factor to the result
|
||||
fHeight *= m_fYScaleFactor;
|
||||
// Store the final results
|
||||
*pHeight = fHeight;
|
||||
|
||||
fWidth *= m_fXScaleFactor;
|
||||
*pWidth = fWidth;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: GetTextWidth()
|
||||
// Desc: Returns the width in pixels of a text string
|
||||
//--------------------------------------------------------------------------------------
|
||||
FLOAT XUI_Font::GetTextWidth( const WCHAR* strText ) const
|
||||
{
|
||||
FLOAT fTextWidth;
|
||||
FLOAT fTextHeight;
|
||||
GetTextExtent( strText, &fTextWidth, &fTextHeight );
|
||||
return fTextWidth;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: Begin()
|
||||
// Desc: Prepares the font vertex buffers for rendering.
|
||||
//--------------------------------------------------------------------------------------
|
||||
VOID XUI_Font::Begin()
|
||||
{
|
||||
PIXBeginNamedEvent( 0, "Text Rendering" );
|
||||
|
||||
// Set state on the first call
|
||||
if( 0 == m_dwNestedBeginCount )
|
||||
{
|
||||
// Cache the global pointer into a register
|
||||
IDirect3DDevice9 *pD3dDevice = g_pD3DDevice;
|
||||
assert( pD3dDevice );
|
||||
|
||||
// Set the texture scaling factor as a vertex shader constant
|
||||
//D3DSURFACE_DESC TextureDesc;
|
||||
//m_pFontTexture->GetLevelDesc( 0, &TextureDesc ); // Get the description
|
||||
|
||||
// Set render state
|
||||
assert(m_fontData->m_pFontTexture != NULL || m_fontData->m_iFontTexture > 0);
|
||||
if(m_fontData->m_pFontTexture != NULL)
|
||||
{
|
||||
pD3dDevice->SetTexture( 0, m_fontData->m_pFontTexture );
|
||||
}
|
||||
else
|
||||
{
|
||||
glBindTexture(GL_TEXTURE_2D, m_fontData->m_iFontTexture);
|
||||
}
|
||||
|
||||
//// Read the TextureDesc here to ensure no load/hit/store from GetLevelDesc()
|
||||
//FLOAT vTexScale[4];
|
||||
//vTexScale[0] = 1.0f / TextureDesc.Width; // LHS due to int->float conversion
|
||||
//vTexScale[1] = 1.0f / TextureDesc.Height;
|
||||
//vTexScale[2] = 0.0f;
|
||||
//vTexScale[3] = 0.0f;
|
||||
//
|
||||
//pD3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
|
||||
//pD3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
|
||||
//pD3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
|
||||
//pD3dDevice->SetRenderState( D3DRS_BLENDOP, D3DBLENDOP_ADD );
|
||||
//pD3dDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE );
|
||||
//pD3dDevice->SetRenderState( D3DRS_ALPHAREF, 0x08 );
|
||||
//pD3dDevice->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_GREATEREQUAL );
|
||||
//pD3dDevice->SetRenderState( D3DRS_FILLMODE, D3DFILL_SOLID );
|
||||
//pD3dDevice->SetRenderState( D3DRS_CULLMODE, D3DCULL_CCW );
|
||||
//pD3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE );
|
||||
//pD3dDevice->SetRenderState( D3DRS_STENCILENABLE, FALSE );
|
||||
//pD3dDevice->SetRenderState( D3DRS_VIEWPORTENABLE, FALSE );
|
||||
//pD3dDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR );
|
||||
//pD3dDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR );
|
||||
//pD3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSU, D3DTADDRESS_CLAMP );
|
||||
//pD3dDevice->SetSamplerState( 0, D3DSAMP_ADDRESSV, D3DTADDRESS_CLAMP );
|
||||
}
|
||||
|
||||
// Keep track of the nested begin/end calls.
|
||||
m_dwNestedBeginCount++;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: DrawText()
|
||||
// Desc: Draws text as textured polygons
|
||||
//--------------------------------------------------------------------------------------
|
||||
VOID XUI_Font::DrawText( DWORD dwColor, const WCHAR* strText, DWORD dwFlags,
|
||||
FLOAT fMaxPixelWidth )
|
||||
{
|
||||
DrawText( m_fCursorX, m_fCursorY, dwColor, strText, dwFlags, fMaxPixelWidth );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: DrawShadowText()
|
||||
// Desc: Draws text as textured polygons
|
||||
//--------------------------------------------------------------------------------------
|
||||
VOID XUI_Font::DrawShadowText( FLOAT fOriginX, FLOAT fOriginY, DWORD dwColor, DWORD dwShadowColor,
|
||||
const WCHAR* strText, DWORD dwFlags, FLOAT fMaxPixelWidth)
|
||||
{
|
||||
float fXShadow=1.0f, fYShadow=1.0f;
|
||||
// 4J Stu - Don't move the drop shadow as much
|
||||
//DrawText( fOriginX + (1*m_fXScaleFactor), fOriginY + (1*m_fYScaleFactor), dwColor, strText, dwFlags, fMaxPixelWidth, true );
|
||||
|
||||
// 4J-PB - if we're in 480 widescreen, we need to draw the drop shadow at +2 pixels, so that when the scene is halved, it's at +1
|
||||
if(!RenderManager.IsHiDef())
|
||||
{
|
||||
if(RenderManager.IsWidescreen())
|
||||
{
|
||||
fXShadow=2.0f;
|
||||
fYShadow=2.0f;
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// 480 SD mode - the draw text call will reposition the y
|
||||
//}
|
||||
}
|
||||
DrawText( fOriginX + fXShadow, fOriginY + fYShadow, dwColor, strText, dwFlags, fMaxPixelWidth, true );
|
||||
DrawText( fOriginX, fOriginY, dwColor, strText, dwFlags, fMaxPixelWidth );
|
||||
|
||||
//DrawText( fOriginX + 1, fOriginY + 1, dwShadowColor, strText, dwFlags, fMaxPixelWidth);
|
||||
//DrawText( fOriginX, fOriginY, dwColor, strText, dwFlags, fMaxPixelWidth );
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: DrawText()
|
||||
// Desc: Draws text as textured polygons
|
||||
// TODO: This function should use the Begin/SetVertexData/End() API when it
|
||||
// becomes available.
|
||||
//--------------------------------------------------------------------------------------
|
||||
VOID XUI_Font::DrawText( FLOAT fOriginX, FLOAT fOriginY, DWORD dwColor,
|
||||
const WCHAR* strText, DWORD dwFlags, FLOAT fMaxPixelWidth, bool darken /*= false*/ )
|
||||
{
|
||||
if( NULL == strText ) return;
|
||||
if( L'\0' == strText[0] ) return;
|
||||
|
||||
// 4J-PB - if we're in 480 widescreen mode, we need to ensure that the font characters are aligned on an even boundary if they are a 2x multiple
|
||||
if(!RenderManager.IsHiDef())
|
||||
{
|
||||
if(RenderManager.IsWidescreen())
|
||||
{
|
||||
int iScaleX=(int)m_fXScaleFactor;
|
||||
int iOriginX;
|
||||
if(iScaleX%2==0)
|
||||
{
|
||||
iOriginX=(int)fOriginX;
|
||||
if(iOriginX%2==1)
|
||||
{
|
||||
fOriginX+=1.0f;
|
||||
}
|
||||
}
|
||||
int iScaleY=(int)m_fYScaleFactor;
|
||||
int iOriginY;
|
||||
if(iScaleY%2==0)
|
||||
{
|
||||
iOriginY=(int)fOriginY;
|
||||
if(iOriginY%2==1)
|
||||
{
|
||||
fOriginY+=1.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// 480 SD mode - y needs to be on a pixel boundary when multiplied by 1.5, so if it's an odd number, subtract 1/3 from it
|
||||
int iOriginY=(int)fOriginY;
|
||||
if(iOriginY%2==1)
|
||||
{
|
||||
fOriginY-=1.0f/3.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Create a PIX user-defined event that encapsulates all of the text draw calls.
|
||||
// This makes DrawText calls easier to recognize in PIX captures, and it makes
|
||||
// them take up fewer entries in the event list.
|
||||
PIXBeginNamedEvent( dwColor, "DrawText: %S", strText );
|
||||
|
||||
// Set up stuff to prepare for drawing text
|
||||
Begin();
|
||||
|
||||
if (darken)
|
||||
{
|
||||
int oldAlpha = dwColor & 0xff000000;
|
||||
dwColor = (dwColor & 0xfcfcfc) >> 2;
|
||||
dwColor += oldAlpha;
|
||||
}
|
||||
|
||||
float r = ((dwColor >> 16) & 0xff) / 255.0f;
|
||||
float g = ((dwColor >> 8) & 0xff) / 255.0f;
|
||||
float b = ((dwColor) & 0xff) / 255.0f;
|
||||
float a = ((dwColor >> 24) & 0xff) / 255.0f;
|
||||
if (a == 0) a = 1;
|
||||
// a = 1;
|
||||
glColor4f(r, g, b, a);
|
||||
|
||||
// Set the starting screen position
|
||||
if( ( fOriginX < 0.0f ) || ( ( dwFlags & ATGFONT_RIGHT ) && ( fOriginX <= 0.0f ) ) )
|
||||
{
|
||||
fOriginX += ( m_rcWindow.x2 - m_rcWindow.x1 );
|
||||
}
|
||||
// 4J-PB - not sure what this code was intending to do, but it removed a line of text that is slightly off the top of the control, rather than having it partially render
|
||||
// if( fOriginY < 0.0f )
|
||||
// {
|
||||
// fOriginY += ( m_rcWindow.y2 - m_rcWindow.y1 );
|
||||
// }
|
||||
|
||||
m_fCursorX = floorf( fOriginX );
|
||||
m_fCursorY = floorf( fOriginY );
|
||||
|
||||
// Adjust for padding
|
||||
fOriginY -= m_fontData->getFontTopPadding();
|
||||
|
||||
XUI_FontData::SChar sChar = m_fontData->getChar(L'.');
|
||||
FLOAT fEllipsesPixelWidth = m_fXScaleFactor * 3.0f * (sChar.getOffset() + sChar.getWAdvance());
|
||||
|
||||
if( dwFlags & ATGFONT_TRUNCATED )
|
||||
{
|
||||
// Check if we will really need to truncate the string
|
||||
if( fMaxPixelWidth <= 0.0f )
|
||||
{
|
||||
dwFlags &= ( ~ATGFONT_TRUNCATED );
|
||||
}
|
||||
else
|
||||
{
|
||||
FLOAT w, h;
|
||||
GetTextExtent( strText, &w, &h, TRUE );
|
||||
|
||||
// If not, then clear the flag
|
||||
if( w <= fMaxPixelWidth )
|
||||
dwFlags &= ( ~ATGFONT_TRUNCATED );
|
||||
}
|
||||
}
|
||||
|
||||
// If vertically centered, offset the starting m_fCursorY value
|
||||
if( dwFlags & ATGFONT_CENTER_Y )
|
||||
{
|
||||
FLOAT w, h;
|
||||
GetTextExtent( strText, &w, &h );
|
||||
m_fCursorY = floorf( m_fCursorY - (h * 0.5f) );
|
||||
}
|
||||
|
||||
// Add window offsets
|
||||
FLOAT Winx = static_cast<FLOAT>(m_rcWindow.x1);
|
||||
FLOAT Winy = static_cast<FLOAT>(m_rcWindow.y1);
|
||||
fOriginX += Winx;
|
||||
fOriginY += Winy;
|
||||
m_fCursorX += Winx;
|
||||
m_fCursorY += Winy;
|
||||
|
||||
// Set a flag so we can determine initial justification effects
|
||||
BOOL bStartingNewLine = TRUE;
|
||||
|
||||
DWORD dwNumEllipsesToDraw = 0;
|
||||
|
||||
// Begin drawing the vertices
|
||||
|
||||
|
||||
DWORD dwNumChars = wcslen( strText ) + ( dwFlags & ATGFONT_TRUNCATED ? 3 : 0 );
|
||||
|
||||
bStartingNewLine = TRUE;
|
||||
|
||||
// Draw four vertices for each glyph
|
||||
while( *strText )
|
||||
{
|
||||
WCHAR letter;
|
||||
|
||||
if( dwNumEllipsesToDraw )
|
||||
{
|
||||
letter = L'.';
|
||||
}
|
||||
else
|
||||
{
|
||||
// If starting text on a new line, determine justification effects
|
||||
if( bStartingNewLine )
|
||||
{
|
||||
if( dwFlags & ( ATGFONT_RIGHT | ATGFONT_CENTER_X ) )
|
||||
{
|
||||
// Get the extent of this line
|
||||
FLOAT w, h;
|
||||
GetTextExtent( strText, &w, &h, TRUE );
|
||||
|
||||
// Offset this line's starting m_fCursorX value
|
||||
if( dwFlags & ATGFONT_RIGHT )
|
||||
m_fCursorX = floorf( fOriginX - w );
|
||||
if( dwFlags & ATGFONT_CENTER_X )
|
||||
m_fCursorX = floorf( fOriginX - w * 0.5f );
|
||||
}
|
||||
bStartingNewLine = FALSE;
|
||||
}
|
||||
|
||||
// Get the current letter in the string
|
||||
letter = *strText++;
|
||||
|
||||
// Handle the newline character
|
||||
if( letter == L'\n' )
|
||||
{
|
||||
m_fCursorX = fOriginX;
|
||||
m_fCursorY += m_fontData->getFontYAdvance() * m_fYScaleFactor;
|
||||
bStartingNewLine = TRUE;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// Handle carriage return characters by ignoring them. This helps when
|
||||
// displaying text from a file.
|
||||
if( letter == L'\r' )
|
||||
continue;
|
||||
}
|
||||
|
||||
// Translate unprintable characters
|
||||
XUI_FontData::SChar sChar = m_fontData->getChar( letter );
|
||||
|
||||
FLOAT fOffset = m_fXScaleFactor * ( FLOAT )sChar.getOffset();
|
||||
FLOAT fAdvance = m_fXScaleFactor * ( FLOAT )sChar.getWAdvance();
|
||||
// 4J Use the font max width otherwise scaling doesnt look right
|
||||
FLOAT fWidth = m_fXScaleFactor * (sChar.tu2() - sChar.tu1());//( FLOAT )pGlyph->wWidth;
|
||||
FLOAT fHeight = m_fYScaleFactor * m_fontData->getFontHeight();
|
||||
|
||||
if( 0 == dwNumEllipsesToDraw )
|
||||
{
|
||||
if( dwFlags & ATGFONT_TRUNCATED )
|
||||
{
|
||||
// Check if we will be exceeded the max allowed width
|
||||
if( m_fCursorX + fOffset + fWidth + fEllipsesPixelWidth + m_fSlantFactor > fOriginX + fMaxPixelWidth )
|
||||
{
|
||||
// Yup, draw the three ellipses dots instead
|
||||
dwNumEllipsesToDraw = 3;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Setup the screen coordinates
|
||||
m_fCursorX += fOffset;
|
||||
FLOAT X4 = m_fCursorX;
|
||||
FLOAT X1 = X4 + m_fSlantFactor;
|
||||
FLOAT X3 = X4 + fWidth;
|
||||
FLOAT X2 = X1 + fWidth;
|
||||
FLOAT Y1 = m_fCursorY;
|
||||
FLOAT Y3 = Y1 + fHeight;
|
||||
FLOAT Y2 = Y1;
|
||||
FLOAT Y4 = Y3;
|
||||
|
||||
m_fCursorX += fAdvance;
|
||||
|
||||
// Add the vertices to draw this glyph
|
||||
|
||||
FLOAT tu1 = sChar.tu1() / (float)m_fontData->getImageWidth();
|
||||
FLOAT tv1 = sChar.tv1() / (float)m_fontData->getImageHeight();
|
||||
FLOAT tu2 = sChar.tu2() / (float)m_fontData->getImageWidth();
|
||||
FLOAT tv2 = sChar.tv2() / (float)m_fontData->getImageHeight();
|
||||
|
||||
Tesselator *t = Tesselator::getInstance();
|
||||
t->begin();
|
||||
t->vertexUV(X1, Y1, 0.0f, tu1, tv1);
|
||||
t->vertexUV(X2, Y2, 0.0f, tu2, tv1);
|
||||
t->vertexUV(X3, Y3, 0.0f, tu2, tv2);
|
||||
t->vertexUV(X4, Y4, 0.0f, tu1, tv2);
|
||||
t->end();
|
||||
|
||||
|
||||
// If drawing ellipses, exit when they're all drawn
|
||||
if( dwNumEllipsesToDraw )
|
||||
{
|
||||
if( --dwNumEllipsesToDraw == 0 )
|
||||
break;
|
||||
}
|
||||
|
||||
dwNumChars--;
|
||||
}
|
||||
|
||||
// Undo window offsets
|
||||
m_fCursorX -= Winx;
|
||||
m_fCursorY -= Winy;
|
||||
|
||||
// Call End() to complete the begin/end pair for drawing text
|
||||
End();
|
||||
|
||||
// Close off the user-defined event opened with PIXBeginNamedEvent.
|
||||
PIXEndNamedEvent();
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: End()
|
||||
// Desc: Paired call that restores state set in the Begin() call.
|
||||
//--------------------------------------------------------------------------------------
|
||||
VOID XUI_Font::End()
|
||||
{
|
||||
assert( m_dwNestedBeginCount > 0 );
|
||||
if( --m_dwNestedBeginCount > 0 )
|
||||
{
|
||||
PIXEndNamedEvent();
|
||||
return;
|
||||
}
|
||||
|
||||
PIXEndNamedEvent();
|
||||
}
|
||||
@@ -1,93 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
class XUI_FontData;
|
||||
|
||||
// 4J This class is partially based of the ATG font implementation, modified to suit our uses for XUI
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Flags for the Font::DrawText() function (Or them together to combine features)
|
||||
//--------------------------------------------------------------------------------------
|
||||
#define ATGFONT_LEFT 0x00000000
|
||||
#define ATGFONT_RIGHT 0x00000001
|
||||
#define ATGFONT_CENTER_X 0x00000002
|
||||
#define ATGFONT_CENTER_Y 0x00000004
|
||||
#define ATGFONT_TRUNCATED 0x00000008
|
||||
|
||||
class XUI_Font
|
||||
{
|
||||
public:
|
||||
XUI_FontData *m_fontData;
|
||||
|
||||
public:
|
||||
const int m_iFontData;
|
||||
const float m_fScaleFactor;
|
||||
|
||||
FLOAT m_fXScaleFactor; // Scaling constants
|
||||
FLOAT m_fYScaleFactor;
|
||||
FLOAT m_fSlantFactor; // For italics
|
||||
DOUBLE m_dRotCos; // Precalculated sine and cosine for italic like rotation
|
||||
DOUBLE m_dRotSin;
|
||||
|
||||
D3DRECT m_rcWindow; // Bounds rect if the text window, modify via accessors only!
|
||||
FLOAT m_fCursorX; // Current text cursor
|
||||
FLOAT m_fCursorY;
|
||||
|
||||
BOOL m_bRotate;
|
||||
|
||||
DWORD m_dwNestedBeginCount;
|
||||
|
||||
wstring m_fontName;
|
||||
wstring m_fallbackFont;
|
||||
DWORD refCount;
|
||||
public:
|
||||
float getScaleFactor() { return m_fScaleFactor; }
|
||||
void GetScaleFactors(FLOAT *pfXScaleFactor, FLOAT *pfYScaleFactor) { *pfXScaleFactor = m_fScaleFactor; *pfYScaleFactor = m_fScaleFactor; }
|
||||
// Accessor functions
|
||||
inline VOID SetSlantFactor( FLOAT fSlantFactor )
|
||||
{
|
||||
m_fSlantFactor = fSlantFactor;
|
||||
}
|
||||
|
||||
inline VOID SetScaleFactors( FLOAT fXScaleFactor, FLOAT fYScaleFactor )
|
||||
{
|
||||
// m_fXScaleFactor = m_fYScaleFactor = m_fScaleFactor;
|
||||
}
|
||||
|
||||
void SetFallbackFont(const wstring &fallbackFont) { m_fallbackFont = fallbackFont; }
|
||||
void IncRefCount() { ++refCount; }
|
||||
void DecRefCount() { --refCount; }
|
||||
|
||||
public:
|
||||
XUI_Font(int iFontData, float scaleFactor, XUI_FontData *fontData);
|
||||
~XUI_Font();
|
||||
|
||||
// Returns the dimensions of a text string
|
||||
VOID GetTextExtent( const WCHAR* strText, FLOAT* pWidth,
|
||||
FLOAT* pHeight, BOOL bFirstLineOnly=FALSE ) const;
|
||||
FLOAT GetTextWidth( const WCHAR* strText ) const;
|
||||
FLOAT GetCharAdvance( const WCHAR* strChar ) const;
|
||||
|
||||
VOID SetWindow(const D3DRECT &rcWindow );
|
||||
VOID SetWindow( LONG x1, LONG y1, LONG x2, LONG y2 );
|
||||
VOID GetWindow(D3DRECT &rcWindow) const;
|
||||
VOID SetCursorPosition( FLOAT fCursorX, FLOAT fCursorY );
|
||||
VOID SetRotationFactor( FLOAT fRotationFactor );
|
||||
|
||||
// Function to create a texture containing rendered text
|
||||
D3DTexture* CreateTexture( const WCHAR* strText,
|
||||
D3DCOLOR dwBackgroundColor = 0x00000000,
|
||||
D3DCOLOR dwTextColor = 0xffffffff,
|
||||
D3DFORMAT d3dFormat = D3DFMT_A8R8G8B8 );
|
||||
|
||||
// Public calls to render text. Callers can simply call DrawText(), but for
|
||||
// performance, they should batch multiple calls together, bracketed by calls to
|
||||
// Begin() and End().
|
||||
VOID Begin();
|
||||
VOID DrawText( DWORD dwColor, const WCHAR* strText, DWORD dwFlags=0L,
|
||||
FLOAT fMaxPixelWidth = 0.0f );
|
||||
VOID DrawText( FLOAT sx, FLOAT sy, DWORD dwColor, const WCHAR* strText,
|
||||
DWORD dwFlags=0L, FLOAT fMaxPixelWidth = 0.0f, bool darken = false );
|
||||
VOID DrawShadowText( FLOAT sx, FLOAT sy, DWORD dwColor, DWORD dwShadowColor, const WCHAR* strText,
|
||||
DWORD dwFlags=0L, FLOAT fMaxPixelWidth = 0.0f );
|
||||
VOID End();
|
||||
};
|
||||
@@ -1,395 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "..\..\stubs.h"
|
||||
#include "..\..\Minecraft.h"
|
||||
#include "..\..\Textures.h"
|
||||
#include "XUI_FontData.h"
|
||||
#include "..\..\..\Minecraft.World\StringHelpers.h"
|
||||
|
||||
|
||||
#define USE_NEW 0
|
||||
|
||||
|
||||
extern IDirect3DDevice9 *g_pD3DDevice;
|
||||
|
||||
int XUI_FontData::getMaxGlyph()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphCount;
|
||||
}
|
||||
|
||||
float XUI_FontData::getFontHeight()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphHeight;
|
||||
}
|
||||
|
||||
float XUI_FontData::getFontTopPadding()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
float XUI_FontData::getFontBottomPadding()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
float XUI_FontData::getFontYAdvance()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphHeight - 1;
|
||||
}
|
||||
|
||||
float XUI_FontData::getFontMaxWidth()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphWidth;
|
||||
}
|
||||
|
||||
float XUI_FontData::getMaxDescent()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
float XUI_FontData::getMaxAscent()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphHeight;
|
||||
}
|
||||
|
||||
int XUI_FontData::getImageWidth()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphMapX;
|
||||
}
|
||||
|
||||
int XUI_FontData::getImageHeight()
|
||||
{
|
||||
return m_fontData->getFontData()->m_uiGlyphMapY;
|
||||
}
|
||||
|
||||
float XUI_FontData::SChar::getMinX()
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float XUI_FontData::SChar::getMaxX()
|
||||
{
|
||||
return (float) m_parent->m_fontData->getFontData()->m_uiGlyphWidth;
|
||||
}
|
||||
|
||||
float XUI_FontData::SChar::getMinY()
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
float XUI_FontData::SChar::getMaxY()
|
||||
{
|
||||
return 0.0f; //m_parent->m_fontData->getFontData()->m_uiGlyphHeight;
|
||||
}
|
||||
|
||||
float XUI_FontData::SChar::getAdvance()
|
||||
{
|
||||
return (float) m_parent->m_fontData->getWidth(m_glyphId);
|
||||
}
|
||||
|
||||
int XUI_FontData::SChar::getGlyphId()
|
||||
{
|
||||
return m_glyphId;
|
||||
}
|
||||
|
||||
#define USE_NEW_UV 1
|
||||
|
||||
int XUI_FontData::SChar::tu1()
|
||||
{
|
||||
#if USE_NEW_UV
|
||||
int row = 0, col = 0;
|
||||
m_parent->m_fontData->getPos(m_glyphId, row, col);
|
||||
return col * m_parent->m_fontData->getFontData()->m_uiGlyphWidth;
|
||||
#else
|
||||
return m_parent->m_Glyphs[m_glyphId].tu1;
|
||||
#endif
|
||||
}
|
||||
|
||||
int XUI_FontData::SChar::tu2()
|
||||
{
|
||||
#if USE_NEW_UV
|
||||
return tu1() + m_parent->m_fontData->getFontData()->m_uiGlyphWidth;
|
||||
#else
|
||||
return m_parent->m_Glyphs[m_glyphId].tu2;
|
||||
#endif
|
||||
}
|
||||
|
||||
int XUI_FontData::SChar::tv1()
|
||||
{
|
||||
#if USE_NEW_UV
|
||||
int row = 0, col = 0;
|
||||
m_parent->m_fontData->getPos(m_glyphId, row, col);
|
||||
return row * m_parent->m_fontData->getFontData()->m_uiGlyphHeight + 1;
|
||||
#else
|
||||
return m_parent->m_Glyphs[m_glyphId].tv1;
|
||||
#endif
|
||||
}
|
||||
|
||||
int XUI_FontData::SChar::tv2()
|
||||
{
|
||||
#if USE_NEW_UV
|
||||
return tv1() + m_parent->m_fontData->getFontData()->m_uiGlyphHeight;
|
||||
#else
|
||||
return m_parent->m_Glyphs[m_glyphId].tv2;
|
||||
#endif
|
||||
}
|
||||
|
||||
short XUI_FontData::SChar::getOffset()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
short XUI_FontData::SChar::getWAdvance()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
XUI_FontData::SChar XUI_FontData::getChar(const wchar_t strChar)
|
||||
{
|
||||
SChar out;
|
||||
out.m_glyphId = m_fontData->getGlyphId((unsigned int) strChar);
|
||||
out.m_parent = this;
|
||||
return out;
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: XUI_FontData()
|
||||
// Desc: Constructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
XUI_FontData::XUI_FontData()
|
||||
{
|
||||
m_pFontTexture = NULL;
|
||||
m_iFontTexture = -1;
|
||||
|
||||
m_dwNumGlyphs = 0L;
|
||||
m_Glyphs = NULL;
|
||||
|
||||
m_cMaxGlyph = 0;
|
||||
|
||||
m_dwNestedBeginCount = 0L;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: ~XUI_FontData()
|
||||
// Desc: Destructor
|
||||
//--------------------------------------------------------------------------------------
|
||||
XUI_FontData::~XUI_FontData()
|
||||
{
|
||||
Destroy();
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: Create()
|
||||
// Desc: Create the font's internal objects (texture and array of glyph info)
|
||||
// using the XPR packed resource file
|
||||
//--------------------------------------------------------------------------------------
|
||||
HRESULT XUI_FontData::Create( SFontData &sfontdata )
|
||||
{
|
||||
#ifndef _CONTENT_PACKAGE
|
||||
app.DebugPrintf("Attempting to load font data for font: '%s'\n", sfontdata.m_strFontName.c_str());
|
||||
#endif
|
||||
|
||||
BufferedImage *img = new BufferedImage(sfontdata.m_wstrFilename, false, true);
|
||||
|
||||
m_iFontTexture = Minecraft::GetInstance()->textures->getTexture(img, C4JRender::TEXTURE_FORMAT_RxGyBzAw, false);
|
||||
|
||||
int imgWidth = img->getWidth(), imgHeight = img->getHeight();
|
||||
intArray rawPixels(imgWidth * imgHeight);
|
||||
img->getRGB(0, 0, imgWidth, imgHeight, rawPixels, 0, imgWidth);
|
||||
delete img;
|
||||
|
||||
m_fontData = new CFontData( sfontdata, rawPixels.data );
|
||||
|
||||
if (rawPixels.data != NULL) delete [] rawPixels.data;
|
||||
|
||||
#if 0
|
||||
{ // 4J-JEV: Load in FontData (ABC) file, and initialize member variables from it.
|
||||
|
||||
const ULONG_PTR c_ModuleHandle = (ULONG_PTR)GetModuleHandle(NULL);
|
||||
|
||||
//wsprintfW(szResourceLocator,L"section://%X,%s#%s",c_ModuleHandle,L"media", L"media/font/Mojangles_10.abc");
|
||||
wsprintfW(szResourceLocator,L"section://%X,%s#%s%s%s",c_ModuleHandle,L"media", L"media/font/",strFontFileName.c_str(),L".abc");
|
||||
|
||||
BYTE *buffer;
|
||||
UINT bufferSize;
|
||||
hr = XuiResourceLoadAllNoLoc(
|
||||
szResourceLocator,
|
||||
&buffer,
|
||||
&bufferSize
|
||||
);
|
||||
if( FAILED(hr) ) app.FatalLoadError();
|
||||
|
||||
//return Create( tex, buffer );
|
||||
hr = Create( m_iFontTexture, buffer );
|
||||
XuiFree(buffer);
|
||||
}
|
||||
|
||||
// The ABC's are wrong, so recalc
|
||||
// TODO 4J Stu - This isn't going to change every time we run the app, so really the FontMaker tool needs
|
||||
// changed, or at the very least the .abc files need pre-processed to store the values we want
|
||||
int rowV = 0;
|
||||
int rowXOffset = 0;
|
||||
|
||||
|
||||
for (unsigned int i = 0; i < 299; i++)
|
||||
{
|
||||
// Translate unprintable characters
|
||||
GLYPH_ATTR* pGlyph;
|
||||
|
||||
DWORD letter = m_fontData->getGlyphId(i);
|
||||
if( letter == 0 || letter >= 280 ) continue;
|
||||
pGlyph = (GLYPH_ATTR*)&m_Glyphs[letter]; // Get the requested glyph
|
||||
|
||||
// 4J Stu - The original ABC's were generated for a font height that is 1 pixel higher than our cleaned up version
|
||||
// We adjust for 1 pixel padding in the y at the top of each box.
|
||||
pGlyph->tv1++;
|
||||
|
||||
if( pGlyph->tv1 != rowV )
|
||||
{
|
||||
rowV = pGlyph->tv1;
|
||||
rowXOffset = 0;
|
||||
}
|
||||
if( pGlyph->wOffset > 0 )
|
||||
{
|
||||
rowXOffset += pGlyph->wOffset;
|
||||
pGlyph->wOffset = 0;
|
||||
}
|
||||
|
||||
pGlyph->tu1 -= rowXOffset;
|
||||
pGlyph->tu2 -= rowXOffset;
|
||||
|
||||
int x = pGlyph->tu2-1;
|
||||
int emptyColumnX = x;
|
||||
for (; x >= pGlyph->tu1; x--)
|
||||
{
|
||||
bool emptyColumn = true;
|
||||
for (int y = pGlyph->tv1; y < pGlyph->tv2; y++)
|
||||
{
|
||||
int rawPix = rawPixels[x + (y*imgWidth)];
|
||||
DWORD pixel = rawPixels[x + (y*imgWidth)] & 0xff000000;
|
||||
if (pixel > 0) emptyColumn = false;
|
||||
}
|
||||
|
||||
if (!emptyColumn && emptyColumnX == pGlyph->tu2-1)
|
||||
{
|
||||
emptyColumnX = x;
|
||||
}
|
||||
}
|
||||
if(emptyColumnX != pGlyph->tu2-1)
|
||||
{
|
||||
pGlyph->wWidth = emptyColumnX-pGlyph->tu1;
|
||||
pGlyph->wAdvance = pGlyph->wWidth + 1;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: Create()
|
||||
// Desc: Create the font's internal objects (texture and array of glyph info)
|
||||
//--------------------------------------------------------------------------------------
|
||||
//HRESULT XUI_FontData::Create( D3DTexture* pFontTexture, const VOID* pFontData )
|
||||
HRESULT XUI_FontData::Create( int iFontTexture, const VOID* pFontData )
|
||||
{
|
||||
// Save a copy of the texture
|
||||
//m_pFontTexture = pFontTexture;
|
||||
#if 0
|
||||
m_iFontTexture = iFontTexture;
|
||||
|
||||
// Check version of file (to make sure it matches up with the FontMaker tool)
|
||||
const BYTE* pData = static_cast<const BYTE*>(pFontData);
|
||||
DWORD dwFileVersion = reinterpret_cast<const FontFileHeaderImage_t *>(pData)->m_dwFileVersion;
|
||||
|
||||
if( dwFileVersion == ATGFONTFILEVERSION )
|
||||
{
|
||||
//m_fFontHeight = reinterpret_cast<const FontFileHeaderImage_t *>(pData)->m_fFontHeight;
|
||||
//m_fFontTopPadding = reinterpret_cast<const FontFileHeaderImage_t *>(pData)->m_fFontTopPadding;
|
||||
//m_fFontBottomPadding = reinterpret_cast<const FontFileHeaderImage_t *>(pData)->m_fFontBottomPadding;
|
||||
//m_fFontYAdvance = reinterpret_cast<const FontFileHeaderImage_t *>(pData)->m_fFontYAdvance;
|
||||
|
||||
// Point to the translator string which immediately follows the 4 floats
|
||||
m_cMaxGlyph = reinterpret_cast<const FontFileHeaderImage_t *>(pData)->m_cMaxGlyph;
|
||||
|
||||
WCHAR* translatorTable = const_cast<FontFileHeaderImage_t*>(reinterpret_cast<const FontFileHeaderImage_t *>(pData))->m_TranslatorTable;
|
||||
|
||||
// 4J Stu - This map saves us some memory because the translatorTable is largely empty
|
||||
// If we were ever to use >50% of the table then we should store it and use directly rather than the map
|
||||
for( unsigned short i = 0; i < m_cMaxGlyph + 1; ++i )
|
||||
{
|
||||
if( translatorTable[i] == 0 ) continue;
|
||||
m_TranslatorMap.insert( unordered_map<wchar_t, unsigned short>::value_type(i, translatorTable[i]) );
|
||||
}
|
||||
|
||||
pData += ATGCALCFONTFILEHEADERSIZE( m_cMaxGlyph + 1 );
|
||||
|
||||
// Read the glyph attributes from the file
|
||||
m_dwNumGlyphs = reinterpret_cast<const FontFileStrikesImage_t *>(pData)->m_dwNumGlyphs;
|
||||
m_Glyphs = new GLYPH_ATTR[m_dwNumGlyphs];
|
||||
memcpy(m_Glyphs, reinterpret_cast<const FontFileStrikesImage_t *>(pData)->m_Glyphs, sizeof(GLYPH_ATTR) * m_dwNumGlyphs);
|
||||
|
||||
//m_dwNumGlyphs = m_fontData->getFontData()->m_uiGlyphCount;
|
||||
}
|
||||
else
|
||||
{
|
||||
app.DebugPrintf( "Incorrect version number on font file!\n" );
|
||||
return E_FAIL;
|
||||
}
|
||||
#endif
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: Destroy()
|
||||
// Desc: Destroy the font object
|
||||
//--------------------------------------------------------------------------------------
|
||||
VOID XUI_FontData::Destroy()
|
||||
{
|
||||
if(m_pFontTexture!=NULL)
|
||||
{
|
||||
m_pFontTexture->Release();
|
||||
delete m_pFontTexture;
|
||||
}
|
||||
|
||||
m_fontData->release();
|
||||
|
||||
m_pFontTexture = NULL;
|
||||
m_dwNumGlyphs = 0L;
|
||||
m_cMaxGlyph = 0;
|
||||
|
||||
m_dwNestedBeginCount = 0L;
|
||||
}
|
||||
|
||||
/*
|
||||
FLOAT XUI_FontData::GetCharAdvance( const WCHAR* strChar )
|
||||
{
|
||||
unsigned int uiChar = (unsigned int) *strChar;
|
||||
return 0.0f;// m_fontData.getAdvance(m_fontData.getGlyphId(uiChar));
|
||||
}
|
||||
|
||||
FLOAT XUI_FontData::GetCharWidth( const WCHAR* strChar )
|
||||
{
|
||||
return 0.0f;
|
||||
}
|
||||
|
||||
void XUI_FontData::GetCharMetrics( const WCHAR* strChar, XUICharMetrics *xuiMetrics)
|
||||
{
|
||||
unsigned int uiChar = (unsigned int) *strChar;
|
||||
unsigned short usGlyph = m_fontData->getGlyphId(uiChar);
|
||||
|
||||
xuiMetrics->fAdvance = m_fontData->getWidth(usGlyph); //.getAdvance(usGlyph) * (float) m_fontData.getFontData()->m_uiGlyphHeight;
|
||||
xuiMetrics->fMaxX = (float) m_fontData->getFontData()->m_uiGlyphWidth;
|
||||
xuiMetrics->fMinX = 0.0f;
|
||||
xuiMetrics->fMaxY = 0;// m_fontData.getFontData()->m_fAscent * (float) m_fontData.getFontData()->m_uiGlyphHeight;
|
||||
xuiMetrics->fMinY = 0;//m_fontData.getFontData()->m_fDescent * (float) m_fontData.getFontData()->m_uiGlyphHeight;
|
||||
}
|
||||
|
||||
unsigned short XUI_FontData::getGlyphId(wchar_t character)
|
||||
{
|
||||
return m_fontData->getGlyphId( (unsigned int) character );
|
||||
}
|
||||
*/
|
||||
@@ -1,147 +0,0 @@
|
||||
#pragma once
|
||||
using namespace std;
|
||||
#include <xuirender.h>
|
||||
|
||||
#include "..\..\Common\UI\UIFontData.h"
|
||||
|
||||
// 4J This class is partially based of the ATG font implementation
|
||||
//--------------------------------------------------------------------------------------
|
||||
// Name: GLYPH_ATTR
|
||||
// Desc: Structure to hold information about one glyph (font character image)
|
||||
//--------------------------------------------------------------------------------------
|
||||
typedef struct GLYPH_ATTR
|
||||
{
|
||||
WORD tu1, tv1, tu2, tv2; // Texture coordinates for the image
|
||||
SHORT wOffset; // Pixel offset for glyph start
|
||||
SHORT wWidth; // Pixel width of the glyph
|
||||
SHORT wAdvance; // Pixels to advance after the glyph
|
||||
WORD wMask; // Channel mask
|
||||
} GLYPH_ATTR;
|
||||
|
||||
//
|
||||
// These two structures are mapped to data loaded from disk.
|
||||
// DO NOT ALTER ANY ENTRIES OR YOU WILL BREAK
|
||||
// COMPATIBILITY WITH THE FONT FILE
|
||||
//
|
||||
|
||||
// Font description
|
||||
|
||||
#define ATGCALCFONTFILEHEADERSIZE(x) ( sizeof(DWORD) + (sizeof(FLOAT)*4) + sizeof(WORD) + (sizeof(WCHAR)*(x)) )
|
||||
#define ATGFONTFILEVERSION 5
|
||||
|
||||
typedef struct FontFileHeaderImage_t {
|
||||
DWORD m_dwFileVersion; // Version of the font file (Must match FONTFILEVERSION)
|
||||
FLOAT m_fFontHeight; // Height of the font strike in pixels
|
||||
FLOAT m_fFontTopPadding; // Padding above the strike zone
|
||||
FLOAT m_fFontBottomPadding; // Padding below the strike zone
|
||||
FLOAT m_fFontYAdvance; // Number of pixels to move the cursor for a line feed
|
||||
WORD m_cMaxGlyph; // Number of font characters (Should be an odd number to maintain DWORD Alignment)
|
||||
WCHAR m_TranslatorTable[1]; // ASCII to Glyph lookup table, NOTE: It's m_cMaxGlyph+1 in size.
|
||||
// Entry 0 maps to the "Unknown" glyph.
|
||||
} FontFileHeaderImage_t;
|
||||
|
||||
// Font strike array. Immediately follows the FontFileHeaderImage_t
|
||||
// structure image
|
||||
|
||||
typedef struct FontFileStrikesImage_t {
|
||||
DWORD m_dwNumGlyphs; // Size of font strike array (First entry is the unknown glyph)
|
||||
GLYPH_ATTR m_Glyphs[1]; // Array of font strike uv's etc... NOTE: It's m_dwNumGlyphs in size
|
||||
} FontFileStrikesImage_t;
|
||||
|
||||
typedef struct _CharMetrics
|
||||
{
|
||||
// units are pixels at current font size
|
||||
|
||||
float fMinX; // min x coordinate
|
||||
float fMinY; // min y coordinate
|
||||
float fMaxX; // max x coordinate
|
||||
float fMaxY; // max y coordinate
|
||||
float fAdvance; // advance value
|
||||
} CharMetrics;
|
||||
|
||||
class XUI_FontData
|
||||
{
|
||||
public:
|
||||
int getMaxGlyph();
|
||||
float getFontHeight();
|
||||
float getFontTopPadding();
|
||||
float getFontBottomPadding();
|
||||
float getFontYAdvance();
|
||||
float getFontMaxWidth();
|
||||
float getMaxDescent();
|
||||
float getMaxAscent();
|
||||
int getImageWidth();
|
||||
int getImageHeight();
|
||||
|
||||
typedef struct
|
||||
{
|
||||
friend class XUI_FontData;
|
||||
|
||||
private:
|
||||
unsigned short m_glyphId;
|
||||
XUI_FontData *m_parent;
|
||||
|
||||
public:
|
||||
bool hasChar() { return true; }
|
||||
float getMinX();
|
||||
float getMinY();
|
||||
float getMaxX();
|
||||
float getMaxY();
|
||||
float getAdvance();
|
||||
int getGlyphId();
|
||||
int tu1();
|
||||
int tu2();
|
||||
int tv1();
|
||||
int tv2(); // Texture coordinates for the image
|
||||
short getOffset(); // Pixel offset for glyph start
|
||||
short getWidth(); // Pixel width of the glyph
|
||||
short getWAdvance(); // Pixels to advance after the glyph
|
||||
WORD getMask(); // Channel mask, tv2;
|
||||
} SChar;
|
||||
|
||||
SChar getChar(const wchar_t strChar);
|
||||
|
||||
// D3D rendering objects
|
||||
D3DTexture* m_pFontTexture;
|
||||
int m_iFontTexture;
|
||||
|
||||
private:
|
||||
unordered_map<wchar_t, unsigned short> m_TranslatorMap;
|
||||
|
||||
CharMetrics *m_characterMetrics;
|
||||
|
||||
// Translator table for supporting unicode ranges
|
||||
DWORD m_cMaxGlyph; // Number of entries in the translator table
|
||||
|
||||
// Glyph data for the font
|
||||
DWORD m_dwNumGlyphs; // Number of valid glyphs
|
||||
GLYPH_ATTR* m_Glyphs; // Array of glyphs
|
||||
|
||||
DWORD m_dwNestedBeginCount;
|
||||
|
||||
|
||||
protected:
|
||||
CFontData *m_fontData;
|
||||
|
||||
public:
|
||||
// Accessor functions
|
||||
inline D3DTexture* GetTexture() const
|
||||
{
|
||||
return m_pFontTexture;
|
||||
}
|
||||
|
||||
public:
|
||||
XUI_FontData();
|
||||
~XUI_FontData();
|
||||
|
||||
// Functions to create and destroy the internal objects
|
||||
HRESULT Create( SFontData &sfontdata );
|
||||
//HRESULT Create( D3DTexture* pFontTexture, const VOID* pFontData );
|
||||
HRESULT Create( int iFontTexture, const VOID* pFontData );
|
||||
VOID Destroy();
|
||||
|
||||
//FLOAT GetCharAdvance( const WCHAR* strChar );
|
||||
//FLOAT GetCharWidth( const WCHAR* strChar );
|
||||
//void GetCharMetrics( const WCHAR* strChar, XUICharMetrics *xuiMetrics);
|
||||
//unsigned short getGlyphId(wchar_t character);
|
||||
};
|
||||
@@ -1,307 +0,0 @@
|
||||
#include "stdafx.h"
|
||||
#include "XUI_FontRenderer.h"
|
||||
#include "XUI_Font.h"
|
||||
#include "XUI_FontData.h"
|
||||
#include "..\..\..\Minecraft.World\StringHelpers.h"
|
||||
|
||||
extern IDirect3DDevice9 *g_pD3DDevice;
|
||||
extern void GetRenderAndSamplerStates(IDirect3DDevice9 *pDevice,DWORD *RenderStateA,DWORD *SamplerStateA);
|
||||
extern void SetRenderAndSamplerStates(IDirect3DDevice9 *pDevice,DWORD *RenderStateA,DWORD *SamplerStateA);
|
||||
|
||||
XUI_FontRenderer::XUI_FontRenderer()
|
||||
{
|
||||
ZeroMemory(m_loadedFontData, sizeof(XUI_FontData*) * eFontData_MAX);
|
||||
|
||||
//XuiFontSetRenderer(this);
|
||||
|
||||
//Minecraft *pMinecraft=Minecraft::GetInstance();
|
||||
|
||||
//ScreenSizeCalculator ssc(pMinecraft->options, pMinecraft->width_phys, pMinecraft->height_phys);
|
||||
//m_fScreenWidth=(float)pMinecraft->width_phys;
|
||||
//m_fRawWidth=(float)ssc.rawWidth;
|
||||
//m_fScreenHeight=(float)pMinecraft->height_phys;
|
||||
//m_fRawHeight=(float)ssc.rawHeight;
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::Init( float fDpi )
|
||||
{
|
||||
return( S_OK );
|
||||
|
||||
}
|
||||
|
||||
VOID XUI_FontRenderer::Term()
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::GetCaps( DWORD * pdwCaps )
|
||||
{
|
||||
if( pdwCaps != NULL )
|
||||
{
|
||||
// setting this means XUI calls the DrawCharsToDevice method
|
||||
*pdwCaps = XUI_FONT_RENDERER_CAP_INTERNAL_GLYPH_CACHE | XUI_FONT_RENDERER_CAP_POINT_SIZE_RESPECTED | XUI_FONT_RENDERER_STYLE_DROPSHADOW;
|
||||
}
|
||||
return ( S_OK );
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::CreateFont( const TypefaceDescriptor * pTypefaceDescriptor, float fPointSize, DWORD dwStyle, DWORD dwReserved, HFONTOBJ * phFont )
|
||||
{
|
||||
float fXuiSize = fPointSize * ( 16.0f / 14.0f );
|
||||
//float fXuiSize = fPointSize * ( 16.0f / 16.0f );
|
||||
fXuiSize /= 4.0f;
|
||||
fXuiSize = floor( fXuiSize );
|
||||
int xuiSize = (int)(fXuiSize * 4.0f);
|
||||
if( xuiSize < 1 ) xuiSize = 8;
|
||||
|
||||
// 4J Stu - We have fonts based on multiples of 8 or 12
|
||||
// We don't want to make the text larger as then it may not fit in the box specified
|
||||
// so we decrease the size until we find one that will look ok
|
||||
while( xuiSize%8!=0 && xuiSize%12!=0 ) xuiSize -= 2;
|
||||
|
||||
//app.DebugPrintf("point size is: %f, xuiSize is: %d\n", fPointSize, xuiSize);
|
||||
|
||||
XUI_Font *font = NULL;
|
||||
XUI_FontData *fontData = NULL;
|
||||
FLOAT scale = 1;
|
||||
|
||||
eFontData efontdata;
|
||||
if( xuiSize%12==0 )
|
||||
{
|
||||
scale = xuiSize/12;
|
||||
efontdata = eFontData_Mojangles_11;
|
||||
}
|
||||
else
|
||||
{
|
||||
scale = xuiSize/8;
|
||||
efontdata = eFontData_Mojangles_7;
|
||||
}
|
||||
|
||||
font = m_loadedFonts[efontdata][scale];
|
||||
if (font == NULL)
|
||||
{
|
||||
fontData = m_loadedFontData[efontdata];
|
||||
if (fontData == NULL)
|
||||
{
|
||||
SFontData *sfontdata;
|
||||
switch (efontdata)
|
||||
{
|
||||
case eFontData_Mojangles_7: sfontdata = &SFontData::Mojangles_7; break;
|
||||
case eFontData_Mojangles_11: sfontdata = &SFontData::Mojangles_11; break;
|
||||
default: sfontdata = NULL; break;
|
||||
}
|
||||
|
||||
fontData = new XUI_FontData();
|
||||
fontData->Create(*sfontdata);
|
||||
|
||||
m_loadedFontData[efontdata] = fontData;
|
||||
}
|
||||
|
||||
font = new XUI_Font( efontdata, scale, fontData );
|
||||
m_loadedFonts[efontdata][scale] = font;
|
||||
}
|
||||
font->IncRefCount();
|
||||
|
||||
*phFont = (HFONTOBJ)font;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
VOID XUI_FontRenderer::ReleaseFont( HFONTOBJ hFont )
|
||||
{
|
||||
XUI_Font *xuiFont = (XUI_Font*) hFont;
|
||||
if (xuiFont != NULL)
|
||||
{
|
||||
xuiFont->DecRefCount();
|
||||
if (xuiFont->refCount <= 0)
|
||||
{
|
||||
AUTO_VAR(it, m_loadedFonts[xuiFont->m_iFontData].find(xuiFont->m_fScaleFactor) );
|
||||
if (it != m_loadedFonts[xuiFont->m_iFontData].end()) m_loadedFonts[xuiFont->m_iFontData].erase(it);
|
||||
delete hFont;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::GetFontMetrics( HFONTOBJ hFont, XUIFontMetrics *pFontMetrics )
|
||||
{
|
||||
if( hFont == 0 || pFontMetrics == 0 ) return E_INVALIDARG;
|
||||
|
||||
XUI_Font *font = (XUI_Font *)hFont;
|
||||
|
||||
pFontMetrics->fLineHeight = (font->m_fontData->getFontYAdvance() + 1) * font->m_fYScaleFactor;
|
||||
pFontMetrics->fMaxAscent = font->m_fontData->getMaxAscent() * font->m_fYScaleFactor;
|
||||
pFontMetrics->fMaxDescent = font->m_fontData->getMaxDescent() * font->m_fYScaleFactor;
|
||||
pFontMetrics->fMaxHeight = font->m_fontData->getFontHeight() * font->m_fYScaleFactor;
|
||||
pFontMetrics->fMaxWidth = font->m_fontData->getFontMaxWidth() * font->m_fXScaleFactor;
|
||||
pFontMetrics->fMaxAdvance = font->m_fontData->getFontMaxWidth() * font->m_fXScaleFactor;
|
||||
|
||||
//*pFontMetrics = font->m_fontMetrics; // g_fontMetrics;
|
||||
return( S_OK );
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::GetCharMetrics( HFONTOBJ hFont, WCHAR wch, XUICharMetrics *pCharMetrics )
|
||||
{
|
||||
if (hFont == 0 || pCharMetrics == 0) return E_INVALIDARG;
|
||||
|
||||
XUI_Font *font = (XUI_Font *)hFont;
|
||||
XUI_FontData::SChar sChar = font->m_fontData->getChar(wch);
|
||||
|
||||
pCharMetrics->fMinX = sChar.getMinX() * font->m_fYScaleFactor;
|
||||
pCharMetrics->fMinY = sChar.getMinY() * font->m_fYScaleFactor;
|
||||
pCharMetrics->fMaxX = sChar.getMaxX() * font->m_fYScaleFactor;
|
||||
pCharMetrics->fMaxY = sChar.getMaxY() * font->m_fYScaleFactor;
|
||||
pCharMetrics->fAdvance = sChar.getAdvance() * font->m_fYScaleFactor;
|
||||
|
||||
return(S_OK);
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::DrawCharToTexture( HFONTOBJ hFont, WCHAR wch, HXUIDC hDC, IXuiTexture * pTexture, UINT x, UINT y, UINT width, UINT height, UINT insetX, UINT insetY )
|
||||
{
|
||||
if( hFont==0 || pTexture==NULL ) return E_INVALIDARG;
|
||||
return( S_OK );
|
||||
}
|
||||
|
||||
HRESULT XUI_FontRenderer::DrawCharsToDevice( HFONTOBJ hFont, CharData * pCharData, DWORD dwCount, RECT *pClipRect, HXUIDC hDC, D3DXMATRIX * pWorldViewProj )
|
||||
{
|
||||
if( hFont == 0 ) return E_INVALIDARG;
|
||||
if( dwCount == 0 ) return( S_OK );
|
||||
|
||||
DWORD RenderStateA[8];
|
||||
DWORD SamplerStateA[5];
|
||||
XMVECTOR vconsts[20];
|
||||
XMVECTOR pconsts[20];
|
||||
XUI_Font *font = (XUI_Font *)hFont;
|
||||
|
||||
// 4J-PB - if we're in 480 Widescreen mode, we need to ensure that the font characters are aligned on an even boundary if they are a 2x multiple
|
||||
if(!RenderManager.IsHiDef())
|
||||
{
|
||||
if(RenderManager.IsWidescreen())
|
||||
{
|
||||
float fScaleX, fScaleY;
|
||||
font->GetScaleFactors(&fScaleX,&fScaleY);
|
||||
int iScaleX=fScaleX;
|
||||
int iScaleY=fScaleY;
|
||||
|
||||
if(iScaleX%2==0)
|
||||
{
|
||||
int iWorldX=pWorldViewProj->_41;
|
||||
pWorldViewProj->_41 = (float)(iWorldX & -2);
|
||||
}
|
||||
if(iScaleY%2==0)
|
||||
{
|
||||
int iWorldY=pWorldViewProj->_42;
|
||||
pWorldViewProj->_42 = (float)(iWorldY & -2);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// make x an even number for 480 4:3
|
||||
int iWorldX=pWorldViewProj->_41;
|
||||
pWorldViewProj->_41 = (float)(iWorldX & -2);
|
||||
|
||||
// 480 SD mode - y needs to be on a pixel boundary when multiplied by 1.5, so if it's an odd number, subtract 1/3 from it
|
||||
int iWorldY=pWorldViewProj->_42;
|
||||
if(iWorldY%2==1)
|
||||
{
|
||||
pWorldViewProj->_42-=1.0f/3.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
g_pD3DDevice->GetVertexShaderConstantF( 0, (float *)vconsts, 20 );
|
||||
g_pD3DDevice->GetPixelShaderConstantF( 0, (float *)pconsts, 20 );
|
||||
g_pD3DDevice->SetRenderState(D3DRS_HALFPIXELOFFSET, TRUE);
|
||||
GetRenderAndSamplerStates(g_pD3DDevice, RenderStateA, SamplerStateA );
|
||||
glDisable(GL_CULL_FACE);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
|
||||
RenderManager.Set_matrixDirty();
|
||||
glMatrixMode(GL_PROJECTION);
|
||||
glLoadIdentity();
|
||||
glOrtho(0, 1280.0f, 720.0f, 0, 1000, 3000);
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
glLoadIdentity();
|
||||
glTranslatef(0, 0, -2000);
|
||||
glColor4f(1.0f,1.0f,1.0f,1.0f);
|
||||
float matrixCopy[16];
|
||||
memcpy(matrixCopy, pWorldViewProj, 64);
|
||||
matrixCopy[11] = 0.0f;
|
||||
matrixCopy[12] = floor(matrixCopy[12] + 0.5f);
|
||||
matrixCopy[13] = floor(matrixCopy[13] + 0.5f);
|
||||
matrixCopy[14] = floor(matrixCopy[14] + 0.5f);
|
||||
matrixCopy[15] = 1.0f;
|
||||
glMultMatrixf(matrixCopy);
|
||||
|
||||
|
||||
float lineXPos = 0.0f;
|
||||
float lineYPos = 0.0f;
|
||||
DWORD colour = 0;
|
||||
DWORD style = 0;
|
||||
#if 1
|
||||
for( int i = 0; i < dwCount; i++ )
|
||||
{
|
||||
wstring string;
|
||||
string.push_back(pCharData[i].wch);
|
||||
lineYPos = pCharData[i].y;
|
||||
lineXPos = pCharData[i].x;
|
||||
colour = pCharData[i].dwColor;
|
||||
style = pCharData[i].dwStyle;
|
||||
|
||||
//if(pCharData[i].wch > font->m_fontData->getMaxGlyph())
|
||||
if ( !font->m_fontData->getChar(pCharData[i].wch).hasChar() )
|
||||
{
|
||||
// Can't render this character, fallback to the default renderer
|
||||
app.OverrideFontRenderer(false,false);
|
||||
break;
|
||||
}
|
||||
#else
|
||||
DWORD i = 0;
|
||||
while( i < dwCount )
|
||||
{
|
||||
wstring string;
|
||||
lineYPos = pCharData[i].y;
|
||||
lineXPos = pCharData[i].x;
|
||||
colour = pCharData[i].dwColor;
|
||||
style = pCharData[i].dwStyle;
|
||||
|
||||
while(i < dwCount && pCharData[i].y == lineYPos)
|
||||
{
|
||||
string.push_back(pCharData[i].wch);
|
||||
++i;
|
||||
}
|
||||
#endif
|
||||
|
||||
bool dropShadow = false;
|
||||
if( (style & XUI_FONT_STYLE_DROPSHADOW) == XUI_FONT_STYLE_DROPSHADOW) dropShadow = true;
|
||||
|
||||
//int yPos = (int)pCharData[i].y + (int)(font->m_fontMetrics.fLineHeight - font->m_fontMetrics.fMaxAscent)/2;
|
||||
//if( (pCharData[i].dwStyle & XUI_FONT_STYLE_VERTICAL_CENTER) == XUI_FONT_STYLE_VERTICAL_CENTER)
|
||||
//{
|
||||
// yPos = (pClipRect->bottom - (int)font->m_fontMetrics.fLineHeight) / 2;
|
||||
//}
|
||||
|
||||
if(dropShadow)
|
||||
{
|
||||
DWORD shadowColour;
|
||||
XuiGetTextDropShadowColor(hDC, &shadowColour);
|
||||
// 4J Stu - Shadow colour is currently ignored
|
||||
font->DrawShadowText( lineXPos,lineYPos,colour,shadowColour,string.c_str() );
|
||||
//drawShadow(thisChar, (int)pCharData[i].x, yPos, pCharData[i].dwColor );
|
||||
}
|
||||
else
|
||||
{
|
||||
font->DrawText( lineXPos,lineYPos,colour,string.c_str() );
|
||||
//draw(thisChar, (int)pCharData[i].x, yPos, pCharData[i].dwColor, false );
|
||||
}
|
||||
}
|
||||
|
||||
g_pD3DDevice->SetVertexShaderConstantF( 0, (float *)vconsts, 20 );
|
||||
g_pD3DDevice->SetPixelShaderConstantF( 0, (float *)pconsts, 20 );
|
||||
SetRenderAndSamplerStates(g_pD3DDevice, RenderStateA, SamplerStateA );
|
||||
g_pD3DDevice->SetRenderState(D3DRS_HALFPIXELOFFSET, FALSE);
|
||||
glEnable(GL_CULL_FACE);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
|
||||
XuiRenderRestoreState(hDC);
|
||||
|
||||
return( S_OK );
|
||||
}
|
||||
@@ -1,49 +0,0 @@
|
||||
#pragma once
|
||||
using namespace std;
|
||||
class XUI_FontData;
|
||||
class XUI_Font;
|
||||
|
||||
// Define this to use this class as the XUI font renderer
|
||||
#define OVERRIDE_XUI_FONT_RENDERER
|
||||
|
||||
//#define USE_SCALING_FONT
|
||||
|
||||
class XUI_FontRenderer : public IXuiFontRenderer
|
||||
{
|
||||
protected:
|
||||
enum eFontData
|
||||
{
|
||||
eFontData_MIN = 0,
|
||||
eFontData_Mojangles_7 = 0,
|
||||
eFontData_Mojangles_11,
|
||||
eFontData_MAX
|
||||
};
|
||||
|
||||
// The font data is the image and size/coords data
|
||||
XUI_FontData *m_loadedFontData[eFontData_MAX];
|
||||
|
||||
// The XUI_Font is a temporary instance that is around as long as XUI needs it, but does the actual rendering
|
||||
// These can be chained
|
||||
unordered_map<float, XUI_Font *> m_loadedFonts[eFontData_MAX];
|
||||
|
||||
public:
|
||||
XUI_FontRenderer();
|
||||
|
||||
// 4J - IXuiFontRenderer interface
|
||||
virtual HRESULT STDMETHODCALLTYPE Init( float fDpi );
|
||||
virtual VOID STDMETHODCALLTYPE Term();
|
||||
virtual HRESULT STDMETHODCALLTYPE GetCaps( DWORD * pdwCaps );
|
||||
virtual HRESULT STDMETHODCALLTYPE CreateFont( const TypefaceDescriptor * pTypefaceDescriptor,
|
||||
float fPointSize, DWORD dwStyle, DWORD dwReserved, HFONTOBJ * phFont );
|
||||
virtual VOID STDMETHODCALLTYPE ReleaseFont( HFONTOBJ hFont );
|
||||
virtual HRESULT STDMETHODCALLTYPE GetFontMetrics( HFONTOBJ hFont, XUIFontMetrics *pFontMetrics );
|
||||
virtual HRESULT STDMETHODCALLTYPE GetCharMetrics( HFONTOBJ hFont, WCHAR wch,
|
||||
XUICharMetrics *pCharMetrics );
|
||||
virtual HRESULT STDMETHODCALLTYPE DrawCharToTexture( HFONTOBJ hFont, WCHAR wch, HXUIDC hDC,
|
||||
IXuiTexture * pTexture, UINT x, UINT y, UINT width, UINT height,
|
||||
UINT insetX, UINT insetY );
|
||||
virtual HRESULT STDMETHODCALLTYPE DrawCharsToDevice( HFONTOBJ hFont, CharData * pCharData,
|
||||
DWORD dwCount, RECT *pClipRect, HXUIDC hDC,
|
||||
D3DXMATRIX * pWorldViewProj );
|
||||
|
||||
};
|
||||
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 4.8 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 3.5 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 3.8 KiB |
|
Before Width: | Height: | Size: 3.7 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 7.0 KiB |
@@ -1,668 +0,0 @@
|
||||
////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// C:\Work\4J\Mojang\Minecraft\Minecraft360-dev\Minecraft.Client\Xbox\GameConfig\Minecraft.spa.h
|
||||
//
|
||||
// Auto-generated on Thursday, 10 May 2012 at 21:23:22
|
||||
// Xbox LIVE Game Config project version 1.0.173.0
|
||||
// SPA Compiler version 1.0.0.0
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////
|
||||
|
||||
#ifndef __MINECRAFT_SPA_H__
|
||||
#define __MINECRAFT_SPA_H__
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
//
|
||||
// Title info
|
||||
//
|
||||
|
||||
#define TITLEID_MINECRAFT 0x584111F7
|
||||
|
||||
//
|
||||
// Context ids
|
||||
//
|
||||
// These values are passed as the dwContextId to XUserSetContext.
|
||||
//
|
||||
|
||||
#define CONTEXT_GAME_STATE 0
|
||||
|
||||
//
|
||||
// Context values
|
||||
//
|
||||
// These values are passed as the dwContextValue to XUserSetContext.
|
||||
//
|
||||
|
||||
// Values for CONTEXT_GAME_STATE
|
||||
|
||||
#define CONTEXT_GAME_STATE_BLANK 0
|
||||
#define CONTEXT_GAME_STATE_RIDING_PIG 1
|
||||
#define CONTEXT_GAME_STATE_RIDING_MINECART 2
|
||||
#define CONTEXT_GAME_STATE_BOATING 3
|
||||
#define CONTEXT_GAME_STATE_FISHING 4
|
||||
#define CONTEXT_GAME_STATE_CRAFTING 5
|
||||
#define CONTEXT_GAME_STATE_FORGING 6
|
||||
#define CONTEXT_GAME_STATE_NETHER 7
|
||||
#define CONTEXT_GAME_STATE_CD 8
|
||||
#define CONTEXT_GAME_STATE_MAP 9
|
||||
#define CONTEXT_GAME_STATE_ENCHANTING 5 //TODO 10
|
||||
#define CONTEXT_GAME_STATE_BREWING 5 //TODO 11
|
||||
#define CONTEXT_GAME_STATE_ANVIL 6 //TODO 12
|
||||
#define CONTEXT_GAME_STATE_TRADING 0 //TODO 13
|
||||
|
||||
// Values for X_CONTEXT_PRESENCE
|
||||
|
||||
#define CONTEXT_PRESENCE_IDLE 0
|
||||
#define CONTEXT_PRESENCE_MENUS 1
|
||||
#define CONTEXT_PRESENCE_MULTIPLAYER 2
|
||||
#define CONTEXT_PRESENCE_MULTIPLAYEROFFLINE 3
|
||||
#define CONTEXT_PRESENCE_MULTIPLAYER_1P 4
|
||||
#define CONTEXT_PRESENCE_MULTIPLAYER_1POFFLINE 5
|
||||
|
||||
// Values for X_CONTEXT_GAME_MODE
|
||||
|
||||
#define CONTEXT_GAME_MODE_GAMEMODE 0
|
||||
#define CONTEXT_GAME_MODE_MULTIPLAYER 1
|
||||
|
||||
//
|
||||
// Property ids
|
||||
//
|
||||
// These values are passed as the dwPropertyId value to XUserSetProperty
|
||||
// and as the dwPropertyId value in the XUSER_PROPERTY structure.
|
||||
//
|
||||
|
||||
#define PROPERTY_LOCALE 0x10000008
|
||||
#define PROPERTY_KILLS_ZOMBIE 0x1000000A
|
||||
#define PROPERTY_KILLS_SKELETON 0x1000000B
|
||||
#define PROPERTY_KILLS_CREEPER 0x1000000C
|
||||
#define PROPERTY_KILLS_SPIDER 0x1000000D
|
||||
#define PROPERTY_KILLS_SPIDERJOCKEY 0x1000000E
|
||||
#define PROPERTY_KILLS_ZOMBIEPIGMAN 0x1000000F
|
||||
#define PROPERTY_KILLS_SLIME 0x10000010
|
||||
#define PROPERTY_KILLS_GHAST 0x10000011
|
||||
#define PROPERTY_MINED_DIRT 0x10000012
|
||||
#define PROPERTY_MINED_STONE 0x10000013
|
||||
#define PROPERTY_MINED_SAND 0x10000014
|
||||
#define PROPERTY_MINED_COBBLESTONE 0x10000015
|
||||
#define PROPERTY_MINED_GRAVEL 0x10000016
|
||||
#define PROPERTY_MINED_CLAY 0x10000017
|
||||
#define PROPERTY_MINED_OBSIDIAN 0x10000018
|
||||
#define PROPERTY_MINED_COAL 0x10000019
|
||||
#define PROPERTY_MINED_IRON 0x1000001A
|
||||
#define PROPERTY_MINED_GOLD 0x1000001B
|
||||
#define PROPERTY_MINED_DIAMOND 0x1000001C
|
||||
#define PROPERTY_MINED_REDSTONE 0x1000001D
|
||||
#define PROPERTY_MINED_LAPISLAZULI 0x1000001E
|
||||
#define PROPERTY_MINED_NETHERRACK 0x1000001F
|
||||
#define PROPERTY_MINED_SOULSAND 0x10000020
|
||||
#define PROPERTY_MINED_GLOWSTONE 0x10000021
|
||||
#define PROPERTY_COLLECTED_EGG 0x10000022
|
||||
#define PROPERTY_COLLECTED_WHEAT 0x10000023
|
||||
#define PROPERTY_COLLECTED_MUSHROOM 0x10000024
|
||||
#define PROPERTY_COLLECTED_SUGARCANE 0x10000025
|
||||
#define PROPERTY_COLLECTED_MILK 0x10000026
|
||||
#define PROPERTY_COLLECTED_PUMPKIN 0x10000027
|
||||
#define PROPERTY_TRAVEL_WALK 0x10000028
|
||||
#define PROPERTY_TRAVEL_SWIM 0x10000029
|
||||
#define PROPERTY_TRAVEL_FALL 0x1000002A
|
||||
#define PROPERTY_TRAVEL_CLIMB 0x1000002B
|
||||
#define PROPERTY_TRAVEL_MINECART 0x1000002C
|
||||
#define PROPERTY_TRAVEL_BOAT 0x1000002D
|
||||
#define PROPERTY_PORTALS_CREATED 0x1000002F
|
||||
#define PROPERTY_COLLECTED_NETHERLAVA 0x10000030
|
||||
#define PROPERTY_RATING 0x20000009
|
||||
|
||||
//
|
||||
// Achievement ids
|
||||
//
|
||||
// These values are used in the dwAchievementId member of the
|
||||
// XUSER_ACHIEVEMENT structure that is used with
|
||||
// XUserWriteAchievements and XUserCreateAchievementEnumerator.
|
||||
//
|
||||
|
||||
#define ACHIEVEMENT_01 1
|
||||
#define ACHIEVEMENT_02 2
|
||||
#define ACHIEVEMENT_03 3
|
||||
#define ACHIEVEMENT_04 4
|
||||
#define ACHIEVEMENT_05 5
|
||||
#define ACHIEVEMENT_06 6
|
||||
#define ACHIEVEMENT_07 7
|
||||
#define ACHIEVEMENT_08 8
|
||||
#define ACHIEVEMENT_09 9
|
||||
#define ACHIEVEMENT_10 10
|
||||
#define ACHIEVEMENT_11 11
|
||||
#define ACHIEVEMENT_12 12
|
||||
#define ACHIEVEMENT_13 14
|
||||
#define ACHIEVEMENT_14 15
|
||||
#define ACHIEVEMENT_15 16
|
||||
#define ACHIEVEMENT_16 17
|
||||
#define ACHIEVEMENT_17 18
|
||||
#define ACHIEVEMENT_18 19
|
||||
#define ACHIEVEMENT_19 20
|
||||
#define ACHIEVEMENT_20 21
|
||||
|
||||
//
|
||||
// AvatarAssetAward ids
|
||||
//
|
||||
|
||||
#define AVATARASSETAWARD_PORKCHOP_TSHIRT 1
|
||||
#define AVATARASSETAWARD_WATCH 2
|
||||
#define AVATARASSETAWARD_CAP 5
|
||||
|
||||
//
|
||||
// Stats view ids
|
||||
//
|
||||
// These are used in the dwViewId member of the XUSER_STATS_SPEC structure
|
||||
// passed to the XUserReadStats* and XUserCreateStatsEnumerator* functions.
|
||||
//
|
||||
|
||||
// Skill leaderboards for ranked game modes
|
||||
|
||||
#define STATS_VIEW_SKILL_RANKED_GAMEMODE 0xFFFF0000
|
||||
#define STATS_VIEW_SKILL_RANKED_MULTIPLAYER 0xFFFF0001
|
||||
|
||||
// Skill leaderboards for unranked (standard) game modes
|
||||
|
||||
#define STATS_VIEW_SKILL_STANDARD_GAMEMODE 0xFFFE0000
|
||||
#define STATS_VIEW_SKILL_STANDARD_MULTIPLAYER 0xFFFE0001
|
||||
|
||||
// Title defined leaderboards
|
||||
|
||||
#define STATS_VIEW_KILLS_EASY 4
|
||||
#define STATS_VIEW_KILLS_NORMAL 5
|
||||
#define STATS_VIEW_KILLS_HARD 6
|
||||
#define STATS_VIEW_MINING_BLOCKS_PEACEFUL 7
|
||||
#define STATS_VIEW_MINING_BLOCKS_EASY 8
|
||||
#define STATS_VIEW_MINING_BLOCKS_NORMAL 9
|
||||
#define STATS_VIEW_MINING_BLOCKS_HARD 10
|
||||
#define STATS_VIEW_FARMING_PEACEFUL 15
|
||||
#define STATS_VIEW_FARMING_EASY 16
|
||||
#define STATS_VIEW_FARMING_NORMAL 17
|
||||
#define STATS_VIEW_FARMING_HARD 18
|
||||
#define STATS_VIEW_TRAVELLING_PEACEFUL 19
|
||||
#define STATS_VIEW_TRAVELLING_EASY 20
|
||||
#define STATS_VIEW_TRAVELLING_NORMAL 21
|
||||
#define STATS_VIEW_TRAVELLING_HARD 22
|
||||
#define STATS_VIEW_TRAVELLING_TOTAL 27
|
||||
|
||||
//
|
||||
// Stats view column ids
|
||||
//
|
||||
// These ids are used to read columns of stats views. They are specified in
|
||||
// the rgwColumnIds array of the XUSER_STATS_SPEC structure. Rank, rating
|
||||
// and gamertag are not retrieved as custom columns and so are not included
|
||||
// in the following definitions. They can be retrieved from each row's
|
||||
// header (e.g., pStatsResults->pViews[x].pRows[y].dwRank, etc.).
|
||||
//
|
||||
|
||||
// Column ids for KILLS_EASY
|
||||
|
||||
#define STATS_COLUMN_KILLS_EASY_LOCALE 9
|
||||
#define STATS_COLUMN_KILLS_EASY_ZOMBIES 1
|
||||
#define STATS_COLUMN_KILLS_EASY_SKELETONS 2
|
||||
#define STATS_COLUMN_KILLS_EASY_CREEPERS 3
|
||||
#define STATS_COLUMN_KILLS_EASY_SPIDERS 4
|
||||
#define STATS_COLUMN_KILLS_EASY_SPIDERJOCKEYS 5
|
||||
#define STATS_COLUMN_KILLS_EASY_ZOMBIEPIGMEN 6
|
||||
#define STATS_COLUMN_KILLS_EASY_SLIME 7
|
||||
|
||||
// Column ids for KILLS_NORMAL
|
||||
|
||||
#define STATS_COLUMN_KILLS_NORMAL_LOCALE 9
|
||||
#define STATS_COLUMN_KILLS_NORMAL_ZOMBIES 1
|
||||
#define STATS_COLUMN_KILLS_NORMAL_SKELETONS 2
|
||||
#define STATS_COLUMN_KILLS_NORMAL_CREEPERS 3
|
||||
#define STATS_COLUMN_KILLS_NORMAL_SPIDERS 4
|
||||
#define STATS_COLUMN_KILLS_NORMAL_SPIDERJOCKEYS 5
|
||||
#define STATS_COLUMN_KILLS_NORMAL_ZOMBIEPIGMEN 6
|
||||
#define STATS_COLUMN_KILLS_NORMAL_SLIME 7
|
||||
|
||||
// Column ids for KILLS_HARD
|
||||
|
||||
#define STATS_COLUMN_KILLS_HARD_LOCALE 9
|
||||
#define STATS_COLUMN_KILLS_HARD_ZOMBIES 1
|
||||
#define STATS_COLUMN_KILLS_HARD_SKELETONS 2
|
||||
#define STATS_COLUMN_KILLS_HARD_CREEPERS 3
|
||||
#define STATS_COLUMN_KILLS_HARD_SPIDERS 4
|
||||
#define STATS_COLUMN_KILLS_HARD_SPIDERJOCKEYS 5
|
||||
#define STATS_COLUMN_KILLS_HARD_ZOMBIEPIGMEN 6
|
||||
#define STATS_COLUMN_KILLS_HARD_SLIME 7
|
||||
|
||||
// Column ids for MINING_BLOCKS_PEACEFUL
|
||||
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_LOCALE 1
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_DIRT 2
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_STONE 3
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_SAND 4
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_COBBLESTONE 5
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_GRAVEL 6
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_CLAY 7
|
||||
#define STATS_COLUMN_MINING_BLOCKS_PEACEFUL_OBSIDIAN 8
|
||||
|
||||
// Column ids for MINING_BLOCKS_EASY
|
||||
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_LOCALE 1
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_DIRT 2
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_STONE 3
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_SAND 4
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_COBBLESTONE 5
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_GRAVEL 6
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_CLAY 7
|
||||
#define STATS_COLUMN_MINING_BLOCKS_EASY_OBSIDIAN 8
|
||||
|
||||
// Column ids for MINING_BLOCKS_NORMAL
|
||||
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_LOCALE 1
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_DIRT 2
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_STONE 3
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_SAND 4
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_COBBLESTONE 5
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_GRAVEL 6
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_CLAY 7
|
||||
#define STATS_COLUMN_MINING_BLOCKS_NORMAL_OBSIDIAN 8
|
||||
|
||||
// Column ids for MINING_BLOCKS_HARD
|
||||
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_LOCALE 1
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_DIRT 2
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_STONE 3
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_SAND 4
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_COBBLESTONE 5
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_GRAVEL 6
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_CLAY 7
|
||||
#define STATS_COLUMN_MINING_BLOCKS_HARD_OBSIDIAN 8
|
||||
|
||||
// Column ids for FARMING_PEACEFUL
|
||||
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_LOCALE 1
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_EGGS 2
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_WHEAT 3
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_MUSHROOMS 4
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_SUGARCANE 5
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_MILK 6
|
||||
#define STATS_COLUMN_FARMING_PEACEFUL_PUMPKINS 7
|
||||
|
||||
// Column ids for FARMING_EASY
|
||||
|
||||
#define STATS_COLUMN_FARMING_EASY_LOCALE 1
|
||||
#define STATS_COLUMN_FARMING_EASY_EGGS 2
|
||||
#define STATS_COLUMN_FARMING_EASY_WHEAT 3
|
||||
#define STATS_COLUMN_FARMING_EASY_MUSHROOMS 4
|
||||
#define STATS_COLUMN_FARMING_EASY_SUGARCANE 5
|
||||
#define STATS_COLUMN_FARMING_EASY_MILK 6
|
||||
#define STATS_COLUMN_FARMING_EASY_PUMPKINS 7
|
||||
|
||||
// Column ids for FARMING_NORMAL
|
||||
|
||||
#define STATS_COLUMN_FARMING_NORMAL_LOCALE 1
|
||||
#define STATS_COLUMN_FARMING_NORMAL_EGGS 2
|
||||
#define STATS_COLUMN_FARMING_NORMAL_WHEAT 3
|
||||
#define STATS_COLUMN_FARMING_NORMAL_MUSHROOMS 4
|
||||
#define STATS_COLUMN_FARMING_NORMAL_SUGARCANE 5
|
||||
#define STATS_COLUMN_FARMING_NORMAL_MILK 6
|
||||
#define STATS_COLUMN_FARMING_NORMAL_PUMPKINS 7
|
||||
|
||||
// Column ids for FARMING_HARD
|
||||
|
||||
#define STATS_COLUMN_FARMING_HARD_LOCALE 1
|
||||
#define STATS_COLUMN_FARMING_HARD_EGGS 2
|
||||
#define STATS_COLUMN_FARMING_HARD_WHEAT 3
|
||||
#define STATS_COLUMN_FARMING_HARD_MUSHROOMS 4
|
||||
#define STATS_COLUMN_FARMING_HARD_SUGARCANE 5
|
||||
#define STATS_COLUMN_FARMING_HARD_MILK 6
|
||||
#define STATS_COLUMN_FARMING_HARD_PUMPKINS 7
|
||||
|
||||
// Column ids for TRAVELLING_PEACEFUL
|
||||
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_LOCALE 1
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_WALKED 2
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_SWAM 3
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_FALLEN 4
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_CLIMBED 5
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_MINECART 6
|
||||
#define STATS_COLUMN_TRAVELLING_PEACEFUL_BOAT 7
|
||||
|
||||
// Column ids for TRAVELLING_EASY
|
||||
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_LOCALE 1
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_WALKED 2
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_SWAM 3
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_FALLEN 4
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_CLIMBED 5
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_MINECART 6
|
||||
#define STATS_COLUMN_TRAVELLING_EASY_BOAT 7
|
||||
|
||||
// Column ids for TRAVELLING_NORMAL
|
||||
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_LOCALE 1
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_WALKED 2
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_SWAM 3
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_FALLEN 4
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_CLIMBED 5
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_MINECART 6
|
||||
#define STATS_COLUMN_TRAVELLING_NORMAL_BOAT 7
|
||||
|
||||
// Column ids for TRAVELLING_HARD
|
||||
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_LOCALE 1
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_WALKED 2
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_SWAM 3
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_FALLEN 4
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_CLIMBED 5
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_MINECART 6
|
||||
#define STATS_COLUMN_TRAVELLING_HARD_BOAT 7
|
||||
|
||||
// Column ids for TRAVELLING_TOTAL
|
||||
|
||||
|
||||
//
|
||||
// Matchmaking queries
|
||||
//
|
||||
// These values are passed as the dwProcedureIndex parameter to
|
||||
// XSessionSearch to indicate which matchmaking query to run.
|
||||
//
|
||||
|
||||
#define SESSION_MATCH_QUERY_FRIENDS 0
|
||||
|
||||
//
|
||||
// Gamer pictures
|
||||
//
|
||||
// These ids are passed as the dwPictureId parameter to XUserAwardGamerTile.
|
||||
//
|
||||
|
||||
#define GAMER_PICTURE_GAMERPIC1 12
|
||||
#define GAMER_PICTURE_GAMERPIC2 13
|
||||
|
||||
//
|
||||
// Strings
|
||||
//
|
||||
// These ids are passed as the dwStringId parameter to XReadStringsFromSpaFile.
|
||||
//
|
||||
|
||||
#define SPASTRING_PRESENCE_IDLE_NAME 4
|
||||
#define SPASTRING_PRESENCE_MENUS_NAME 10
|
||||
#define SPASTRING_ACH_01_NAME 376
|
||||
#define SPASTRING_ACH_02_NAME 377
|
||||
#define SPASTRING_ACH_03_NAME 378
|
||||
#define SPASTRING_ACH_07_NAME 379
|
||||
#define SPASTRING_ACH_08_NAME 380
|
||||
#define SPASTRING_ACH_09_NAME 381
|
||||
#define SPASTRING_ACH_13_NAME 382
|
||||
#define SPASTRING_ACH_14_NAME 383
|
||||
#define SPASTRING_ACH_15_NAME 384
|
||||
#define SPASTRING_ACH_16_NAME 385
|
||||
#define SPASTRING_ACH_04_NAME 386
|
||||
#define SPASTRING_ACH_10_NAME 387
|
||||
#define SPASTRING_ACH_01_DESC 388
|
||||
#define SPASTRING_ACH_02_DESC 389
|
||||
#define SPASTRING_ACH_03_DESC 390
|
||||
#define SPASTRING_ACH_07_DESC 391
|
||||
#define SPASTRING_ACH_08_DESC 392
|
||||
#define SPASTRING_ACH_09_DESC 393
|
||||
#define SPASTRING_ACH_13_DESC 394
|
||||
#define SPASTRING_ACH_14_DESC 395
|
||||
#define SPASTRING_ACH_15_DESC 396
|
||||
#define SPASTRING_ACH_16_DESC 397
|
||||
#define SPASTRING_ACH_04_DESC 398
|
||||
#define SPASTRING_ACH_10_DESC 399
|
||||
#define SPASTRING_ACH_01_HOWTO 400
|
||||
#define SPASTRING_ACH_02_HOWTO 401
|
||||
#define SPASTRING_ACH_03_HOWTO 402
|
||||
#define SPASTRING_ACH_07_HOWTO 403
|
||||
#define SPASTRING_ACH_08_HOWTO 404
|
||||
#define SPASTRING_ACH_09_HOWTO 405
|
||||
#define SPASTRING_ACH_13_HOWTO 406
|
||||
#define SPASTRING_ACH_14_HOWTO 407
|
||||
#define SPASTRING_ACH_15_HOWTO 408
|
||||
#define SPASTRING_ACH_16_HOWTO 409
|
||||
#define SPASTRING_ACH_04_HOWTO 410
|
||||
#define SPASTRING_ACH_10_HOWTO 411
|
||||
#define SPASTRING_STR_GAMEMODE_SINGLEPLAYER 420
|
||||
#define SPASTRING_ACH_05_HOWTO 429
|
||||
#define SPASTRING_ACH_05_NAME 430
|
||||
#define SPASTRING_ACH_05_DESC 431
|
||||
#define SPASTRING_ACH_11_HOWTO 432
|
||||
#define SPASTRING_ACH_11_NAME 433
|
||||
#define SPASTRING_ACH_11_DESC 434
|
||||
#define SPASTRING_ACH_06_HOWTO 435
|
||||
#define SPASTRING_ACH_06_NAME 436
|
||||
#define SPASTRING_ACH_06_DESC 437
|
||||
#define SPASTRING_ACH_12_HOWTO 438
|
||||
#define SPASTRING_ACH_12_NAME 439
|
||||
#define SPASTRING_ACH_12_DESC 440
|
||||
#define SPASTRING_ACH_17_HOWTO 441
|
||||
#define SPASTRING_ACH_17_NAME 442
|
||||
#define SPASTRING_ACH_17_DESC 443
|
||||
#define SPASTRING_ACH_18_HOWTO 444
|
||||
#define SPASTRING_ACH_18_NAME 445
|
||||
#define SPASTRING_ACH_18_DESC 446
|
||||
#define SPASTRING_ACH_19_HOWTO 447
|
||||
#define SPASTRING_ACH_19_NAME 448
|
||||
#define SPASTRING_ACH_19_DESC 449
|
||||
#define SPASTRING_ACH_20_HOWTO 450
|
||||
#define SPASTRING_ACH_20_NAME 451
|
||||
#define SPASTRING_ACH_20_DESC 452
|
||||
#define SPASTRING_AV_PORKCHOP_TSHIRT_HOWTO 473
|
||||
#define SPASTRING_AV_PORKCHOP_TSHIRT_TITLE1 474
|
||||
#define SPASTRING_AV_PORKCHOP_TSHIRT_TITLE2 475
|
||||
#define SPASTRING_AV_PORKCHOP_TSHIRT_DESC 476
|
||||
#define SPASTRING_AV_WATCH_HOWTO 477
|
||||
#define SPASTRING_AV_WATCH_TITLE1 478
|
||||
#define SPASTRING_AV_WATCH_TITLE2 479
|
||||
#define SPASTRING_AV_WATCH_DESC 480
|
||||
#define SPASTRING_PRESENCE_MULTIPLAYER_NAME 490
|
||||
#define SPASTRING_CT_GAME_STATE_NAME 492
|
||||
#define SPASTRING_CV_GAME_STATE_BLANK_NAME 496
|
||||
#define SPASTRING_CV_GAME_STATE_RIDING_PIG_NAME 497
|
||||
#define SPASTRING_CV_GAME_STATE_RIDING_MINECART_NAME 498
|
||||
#define SPASTRING_CV_GAME_STATE_BOATING_NAME 499
|
||||
#define SPASTRING_CV_GAME_STATE_FISHING_NAME 500
|
||||
#define SPASTRING_CV_GAME_STATE_CRAFTING_NAME 501
|
||||
#define SPASTRING_CV_GAME_STATE_FORGING_NAME 502
|
||||
#define SPASTRING_CV_GAME_STATE_NETHER_NAME 503
|
||||
#define SPASTRING_CV_GAME_STATE_CD_NAME 504
|
||||
#define SPASTRING_CV_GAME_STATE_MAP_NAME 505
|
||||
#define SPASTRING_AV_CAP_HOWTO 506
|
||||
#define SPASTRING_AV_CAP_TITLE1 507
|
||||
#define SPASTRING_AV_CAP_TITLE2 508
|
||||
#define SPASTRING_AV_CAP_DESC 509
|
||||
#define SPASTRING_GM_MULTIPLAYER_NAME 517
|
||||
#define SPASTRING_PROPERTY_LOCALE_NAME 520
|
||||
#define SPASTRING_LB_KILLS_EASY_NAME 523
|
||||
#define SPASTRING_LB_KILLS_EASY_ZOMBIES_NAME 524
|
||||
#define SPASTRING_LB_KILLS_EASY_SKELETONS_NAME 525
|
||||
#define SPASTRING_LB_KILLS_EASY_CREEPERS_NAME 526
|
||||
#define SPASTRING_LB_KILLS_EASY_SPIDERS_NAME 527
|
||||
#define SPASTRING_LB_KILLS_EASY_SPIDERJOCKEYS_NAME 528
|
||||
#define SPASTRING_LB_KILLS_EASY_ZOMBIEPIGMEN_NAME 529
|
||||
#define SPASTRING_LB_KILLS_EASY_SLIME_NAME 530
|
||||
#define SPASTRING_LB_KILLS_EASY_RATING_NAME 531
|
||||
#define SPASTRING_PROPERTY_RATING_NAME 532
|
||||
#define SPASTRING_LB_KILLS_EASY_LOCALE_NAME 533
|
||||
#define SPASTRING_PROPERTY_KILLS_ZOMBIE_NAME 534
|
||||
#define SPASTRING_PROPERTY_KILLS_SKELETON_NAME 535
|
||||
#define SPASTRING_PROPERTY_KILLS_CREEPER_NAME 536
|
||||
#define SPASTRING_PROPERTY_KILLS_SPIDER_NAME 537
|
||||
#define SPASTRING_PROPERTY_KILLS_SPIDERJOCKEY_NAME 538
|
||||
#define SPASTRING_PROPERTY_KILLS_ZOMBIEPIGMAN_NAME 539
|
||||
#define SPASTRING_PROPERTY_KILLS_SLIME_NAME 540
|
||||
#define SPASTRING_PROPERTY_KILLS_GHAST_NAME 541
|
||||
#define SPASTRING_LB_KILLS_NORMAL_NAME 543
|
||||
#define SPASTRING_LB_KILLS_NORMAL_LOCALE_NAME 544
|
||||
#define SPASTRING_LB_KILLS_NORMAL_ZOMBIES_NAME 545
|
||||
#define SPASTRING_LB_KILLS_NORMAL_SKELETONS_NAME 546
|
||||
#define SPASTRING_LB_KILLS_NORMAL_CREEPERS_NAME 547
|
||||
#define SPASTRING_LB_KILLS_NORMAL_SPIDERS_NAME 548
|
||||
#define SPASTRING_LB_KILLS_NORMAL_SPIDERJOCKEYS_NAME 549
|
||||
#define SPASTRING_LB_KILLS_NORMAL_ZOMBIEPIGMEN_NAME 550
|
||||
#define SPASTRING_LB_KILLS_NORMAL_SLIME_NAME 551
|
||||
#define SPASTRING_LB_KILLS_NORMAL_RATING_NAME 552
|
||||
#define SPASTRING_LB_KILLS_HARD_NAME 554
|
||||
#define SPASTRING_LB_KILLS_HARD_LOCALE_NAME 555
|
||||
#define SPASTRING_LB_KILLS_HARD_ZOMBIES_NAME 556
|
||||
#define SPASTRING_LB_KILLS_HARD_SKELETONS_NAME 557
|
||||
#define SPASTRING_LB_KILLS_HARD_CREEPERS_NAME 558
|
||||
#define SPASTRING_LB_KILLS_HARD_SPIDERS_NAME 559
|
||||
#define SPASTRING_LB_KILLS_HARD_SPIDERJOCKEYS_NAME 560
|
||||
#define SPASTRING_LB_KILLS_HARD_ZOMBIEPIGMEN_NAME 561
|
||||
#define SPASTRING_LB_KILLS_HARD_SLIME_NAME 562
|
||||
#define SPASTRING_LB_KILLS_HARD_RATING_NAME 563
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_NAME 564
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_LOCALE_NAME 565
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_DIRT_NAME 566
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_STONE_NAME 567
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_SAND_NAME 568
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_COBBLESTONE_NAME 569
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_GRAVEL_NAME 570
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_CLAY_NAME 571
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_OBSIDIAN_NAME 572
|
||||
#define SPASTRING_LB_MINING_BLOCKS_PEACEFUL_RATING_NAME 573
|
||||
#define SPASTRING_PROPERTY_MINED_DIRT_NAME 574
|
||||
#define SPASTRING_PROPERTY_MINED_STONE_NAME 575
|
||||
#define SPASTRING_PROPERTY_MINED_SAND_NAME 576
|
||||
#define SPASTRING_PROPERTY_MINED_COBBLESTONE_NAME 577
|
||||
#define SPASTRING_PROPERTY_MINED_GRAVEL_NAME 578
|
||||
#define SPASTRING_PROPERTY_MINED_CLAY_NAME 579
|
||||
#define SPASTRING_PROPERTY_MINED_OBSIDIAN_NAME 580
|
||||
#define SPASTRING_PROPERTY_MINED_COAL_NAME 581
|
||||
#define SPASTRING_PROPERTY_MINED_IRON_NAME 582
|
||||
#define SPASTRING_PROPERTY_MINED_GOLD_NAME 583
|
||||
#define SPASTRING_PROPERTY_MINED_DIAMOND_NAME 584
|
||||
#define SPASTRING_PROPERTY_MINED_REDSTONE_NAME 585
|
||||
#define SPASTRING_PROPERTY_MINED_LAPISLAZULI_NAME 586
|
||||
#define SPASTRING_PROPERTY_MINED_NETHERRACK_NAME 587
|
||||
#define SPASTRING_PROPERTY_MINED_SOULSAND_NAME 588
|
||||
#define SPASTRING_PROPERTY_MINED_GLOWSTONE_NAME 589
|
||||
#define SPASTRING_PROPERTY_COLLECTED_EGG_NAME 590
|
||||
#define SPASTRING_PROPERTY_COLLECTED_WHEAT_NAME 591
|
||||
#define SPASTRING_PROPERTY_COLLECTED_MUSHROOM_NAME 592
|
||||
#define SPASTRING_PROPERTY_COLLECTED_SUGARCANE_NAME 593
|
||||
#define SPASTRING_PROPERTY_COLLECTED_MILK_NAME 594
|
||||
#define SPASTRING_PROPERTY_COLLECTED_PUMPKIN_NAME 595
|
||||
#define SPASTRING_PROPERTY_TRAVEL_WALK_NAME 596
|
||||
#define SPASTRING_PROPERTY_TRAVEL_SWIM_NAME 597
|
||||
#define SPASTRING_PROPERTY_TRAVEL_FALL_NAME 598
|
||||
#define SPASTRING_PROPERTY_TRAVEL_CLIMB_NAME 599
|
||||
#define SPASTRING_PROPERTY_TRAVEL_MINECART_NAME 600
|
||||
#define SPASTRING_PROPERTY_TRAVEL_BOAT_NAME 601
|
||||
#define SPASTRING_PROPERTY_PORTALS_CREATED_NAME 603
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_NAME 605
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_LOCALE_NAME 606
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_DIRT_NAME 607
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_STONE_NAME 608
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_SAND_NAME 609
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_COBBLESTONE_NAME 610
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_GRAVEL_NAME 611
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_CLAY_NAME 612
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_OBSIDIAN_NAME 613
|
||||
#define SPASTRING_LB_MINING_BLOCKS_EASY_RATING_NAME 614
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_NAME 616
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_LOCALE_NAME 617
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_DIRT_NAME 618
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_STONE_NAME 619
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_SAND_NAME 620
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_COBBLESTONE_NAME 621
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_GRAVEL_NAME 622
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_CLAY_NAME 623
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_OBSIDIAN_NAME 624
|
||||
#define SPASTRING_LB_MINING_BLOCKS_NORMAL_RATING_NAME 625
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_NAME 627
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_LOCALE_NAME 628
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_DIRT_NAME 629
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_STONE_NAME 630
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_SAND_NAME 631
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_COBBLESTONE_NAME 632
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_GRAVEL_NAME 633
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_CLAY_NAME 634
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_OBSIDIAN_NAME 635
|
||||
#define SPASTRING_LB_MINING_BLOCKS_HARD_RATING_NAME 636
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_NAME 676
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_LOCALE_NAME 677
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_EGGS_NAME 678
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_WHEAT_NAME 679
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_MUSHROOMS_NAME 680
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_SUGARCANE_NAME 681
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_MILK_NAME 682
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_PUMPKINS_NAME 683
|
||||
#define SPASTRING_LB_FARMING_PEACEFUL_RATING_NAME 684
|
||||
#define SPASTRING_LB_FARMING_EASY_NAME 686
|
||||
#define SPASTRING_LB_FARMING_EASY_LOCALE_NAME 687
|
||||
#define SPASTRING_LB_FARMING_EASY_EGGS_NAME 688
|
||||
#define SPASTRING_LB_FARMING_EASY_WHEAT_NAME 689
|
||||
#define SPASTRING_LB_FARMING_EASY_MUSHROOMS_NAME 690
|
||||
#define SPASTRING_LB_FARMING_EASY_SUGARCANE_NAME 691
|
||||
#define SPASTRING_LB_FARMING_EASY_MILK_NAME 692
|
||||
#define SPASTRING_LB_FARMING_EASY_PUMPKINS_NAME 693
|
||||
#define SPASTRING_LB_FARMING_EASY_RATING_NAME 694
|
||||
#define SPASTRING_LB_FARMING_NORMAL_NAME 696
|
||||
#define SPASTRING_LB_FARMING_NORMAL_LOCALE_NAME 697
|
||||
#define SPASTRING_LB_FARMING_NORMAL_EGGS_NAME 698
|
||||
#define SPASTRING_LB_FARMING_NORMAL_WHEAT_NAME 699
|
||||
#define SPASTRING_LB_FARMING_NORMAL_MUSHROOMS_NAME 700
|
||||
#define SPASTRING_LB_FARMING_NORMAL_SUGARCANE_NAME 701
|
||||
#define SPASTRING_LB_FARMING_NORMAL_MILK_NAME 702
|
||||
#define SPASTRING_LB_FARMING_NORMAL_PUMPKINS_NAME 703
|
||||
#define SPASTRING_LB_FARMING_NORMAL_RATING_NAME 704
|
||||
#define SPASTRING_LB_FARMING_HARD_NAME 706
|
||||
#define SPASTRING_LB_FARMING_HARD_LOCALE_NAME 707
|
||||
#define SPASTRING_LB_FARMING_HARD_EGGS_NAME 708
|
||||
#define SPASTRING_LB_FARMING_HARD_WHEAT_NAME 709
|
||||
#define SPASTRING_LB_FARMING_HARD_MUSHROOMS_NAME 710
|
||||
#define SPASTRING_LB_FARMING_HARD_SUGARCANE_NAME 711
|
||||
#define SPASTRING_LB_FARMING_HARD_MILK_NAME 712
|
||||
#define SPASTRING_LB_FARMING_HARD_PUMPKINS_NAME 713
|
||||
#define SPASTRING_LB_FARMING_HARD_RATING_NAME 714
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_NAME 715
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_LOCALE_NAME 716
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_WALKED_NAME 717
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_SWAM_NAME 718
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_FALLEN_NAME 719
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_CLIMBED_NAME 720
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_MINECART_NAME 721
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_BOAT_NAME 722
|
||||
#define SPASTRING_LB_TRAVELLING_PEACEFUL_RATING_NAME 724
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_NAME 726
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_LOCALE_NAME 727
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_WALKED_NAME 728
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_SWAM_NAME 729
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_FALLEN_NAME 730
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_CLIMBED_NAME 731
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_MINECART_NAME 732
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_BOAT_NAME 733
|
||||
#define SPASTRING_LB_TRAVELLING_EASY_RATING_NAME 735
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_NAME 737
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_LOCALE_NAME 738
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_WALKED_NAME 739
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_SWAM_NAME 740
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_FALLEN_NAME 741
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_CLIMBED_NAME 742
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_MINECART_NAME 743
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_BOAT_NAME 744
|
||||
#define SPASTRING_LB_TRAVELLING_NORMAL_RATING_NAME 746
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_NAME 748
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_LOCALE_NAME 749
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_WALKED_NAME 750
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_SWAM_NAME 751
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_FALLEN_NAME 752
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_CLIMBED_NAME 753
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_MINECART_NAME 754
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_BOAT_NAME 755
|
||||
#define SPASTRING_LB_TRAVELLING_HARD_RATING_NAME 757
|
||||
#define SPASTRING_LB_TRAVELLING_TOTAL_NAME 795
|
||||
#define SPASTRING_LB_TRAVELLING_TOTAL_RATING_NAME 796
|
||||
#define SPASTRING_LB_ARCADE_TRAVELLING_TOTAL_RATING_NAME 797
|
||||
#define SPASTRING_PROPERTY_COLLECTED_NETHERLAVA_NAME 799
|
||||
#define SPASTRING_PRESENCE_MULTIPLAYEROFFLINE_NAME 803
|
||||
#define SPASTRING_PRESENCE_MULTIPLAYER_1P_NAME 804
|
||||
#define SPASTRING_PRESENCE_MULTIPLAYER_1POFFLINE_NAME 805
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __MINECRAFT_SPA_H__
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 5.0 KiB |
|
Before Width: | Height: | Size: 27 KiB |