2 Commits
Author SHA1 Message Date
str1k3r 40d5709317 Merge remote-tracking branch 'origin/kbm' 2026-08-17 14:55:16 -04:00
pieeebot 4110db8572 add kbm support 2026-08-13 09:09:09 +03:00
73 changed files with 1473 additions and 5096 deletions
-1
View File
@@ -9,6 +9,5 @@ ipch/
VS_* VS_*
# Output Folders # Output Folders
4J_*/Build/*
libs/ libs/
inc/ inc/
+44 -62
View File
@@ -12,7 +12,6 @@ EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Headers", "Headers", "{1CB4373E-3F61-460C-B319-78C925BE3B8F}" Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Headers", "Headers", "{1CB4373E-3F61-460C-B319-78C925BE3B8F}"
ProjectSection(SolutionItems) = preProject ProjectSection(SolutionItems) = preProject
Headers\extraX64.h = Headers\extraX64.h Headers\extraX64.h = Headers\extraX64.h
Headers\Ps3Types.h = Headers\Ps3Types.h
EndProjectSection EndProjectSection
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4J_XTMS", "4J_XTMS\4J_XTMS.vcxproj", "{D0FDED0B-7704-4376-82DC-FF4377A7CD53}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "4J_XTMS", "4J_XTMS\4J_XTMS.vcxproj", "{D0FDED0B-7704-4376-82DC-FF4377A7CD53}"
@@ -68,93 +67,76 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PSVita", "PSVita", "{88A465
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Durango = Debug|Durango
Debug|ORBIS = Debug|ORBIS Debug|ORBIS = Debug|ORBIS
Debug|PS3 = Debug|PS3 Debug|PS3 = Debug|PS3
Debug|PSVita = Debug|PSVita
Debug|Windows64 = Debug|Windows64 Debug|Windows64 = Debug|Windows64
Release|Durango = Release|Durango Debug|Xbox 360 = Debug|Xbox 360
Release|ORBIS = Release|ORBIS Release|ORBIS = Release|ORBIS
Release|PS3 = Release|PS3 Release|PS3 = Release|PS3
Release|PSVita = Release|PSVita
Release|Windows64 = Release|Windows64 Release|Windows64 = Release|Windows64
Release|Xbox 360 = Release|Xbox 360
EndGlobalSection EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Durango.ActiveCfg = Debug|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|ORBIS.ActiveCfg = Debug|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Durango.Build.0 = Debug|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|PS3.ActiveCfg = Debug|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Durango.Deploy.0 = Debug|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|PSVita.ActiveCfg = Debug|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|ORBIS.ActiveCfg = Debug|ORBIS
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|ORBIS.Build.0 = Debug|ORBIS
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|PS3.ActiveCfg = Debug|PS3
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|PS3.Build.0 = Debug|PS3
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Windows64.ActiveCfg = Debug|x64 {A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Windows64.ActiveCfg = Debug|x64
{A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Windows64.Build.0 = Debug|x64 {A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Windows64.Build.0 = Debug|x64
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Durango.ActiveCfg = Release|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Debug|Xbox 360.ActiveCfg = Debug|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Durango.Build.0 = Release|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Release|ORBIS.ActiveCfg = Release|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Durango.Deploy.0 = Release|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Release|PS3.ActiveCfg = Release|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|ORBIS.ActiveCfg = Release|ORBIS {A9125E77-A460-46FB-8EF3-2166F8657226}.Release|PSVita.ActiveCfg = Release|Win32
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|ORBIS.Build.0 = Release|ORBIS
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|PS3.ActiveCfg = Release|PS3
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|PS3.Build.0 = Release|PS3
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Windows64.ActiveCfg = Release|x64 {A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Windows64.ActiveCfg = Release|x64
{A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Windows64.Build.0 = Release|x64 {A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Windows64.Build.0 = Release|x64
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Durango.ActiveCfg = Debug|Durango {A9125E77-A460-46FB-8EF3-2166F8657226}.Release|Xbox 360.ActiveCfg = Release|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Durango.Build.0 = Debug|Durango {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|ORBIS.ActiveCfg = Debug|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Durango.Deploy.0 = Debug|Durango {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|PS3.ActiveCfg = Debug|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|ORBIS.ActiveCfg = Debug|ORBIS {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|PSVita.ActiveCfg = Debug|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|ORBIS.Build.0 = Debug|ORBIS
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|PS3.ActiveCfg = Debug|PS3
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Windows64.ActiveCfg = Debug|x64 {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Windows64.ActiveCfg = Debug|x64
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Windows64.Build.0 = Debug|x64 {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Windows64.Build.0 = Debug|x64
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Durango.ActiveCfg = Release|Durango {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Debug|Xbox 360.ActiveCfg = Debug|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Durango.Build.0 = Release|Durango {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|ORBIS.ActiveCfg = Release|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Durango.Deploy.0 = Release|Durango {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|PS3.ActiveCfg = Release|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|ORBIS.ActiveCfg = Release|ORBIS {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|PSVita.ActiveCfg = Release|Win32
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|ORBIS.Build.0 = Release|ORBIS
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|PS3.ActiveCfg = Release|PS3
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Windows64.ActiveCfg = Release|x64 {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Windows64.ActiveCfg = Release|x64
{C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Windows64.Build.0 = Release|x64 {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Windows64.Build.0 = Release|x64
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Durango.ActiveCfg = Debug|Durango {C3833C67-05E4-4D6C-8707-22F95B6939E4}.Release|Xbox 360.ActiveCfg = Release|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Durango.Build.0 = Debug|Durango {22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|ORBIS.ActiveCfg = Debug|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Durango.Deploy.0 = Debug|Durango {22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|PS3.ActiveCfg = Debug|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|ORBIS.ActiveCfg = Debug|ORBIS {22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|PSVita.ActiveCfg = Debug|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|ORBIS.Build.0 = Debug|ORBIS
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|PS3.ActiveCfg = Debug|PS3
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Windows64.ActiveCfg = Debug|x64 {22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Windows64.ActiveCfg = Debug|x64
{22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Windows64.Build.0 = Debug|x64 {22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Windows64.Build.0 = Debug|x64
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Durango.ActiveCfg = Release|Durango {22938163-5DDB-4D04-883B-07212EB99FAE}.Debug|Xbox 360.ActiveCfg = Debug|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Durango.Build.0 = Release|Durango {22938163-5DDB-4D04-883B-07212EB99FAE}.Release|ORBIS.ActiveCfg = Release|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Durango.Deploy.0 = Release|Durango {22938163-5DDB-4D04-883B-07212EB99FAE}.Release|PS3.ActiveCfg = Release|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|ORBIS.ActiveCfg = Release|ORBIS {22938163-5DDB-4D04-883B-07212EB99FAE}.Release|PSVita.ActiveCfg = Release|Win32
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|ORBIS.Build.0 = Release|ORBIS
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|PS3.ActiveCfg = Release|PS3
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Windows64.ActiveCfg = Release|x64 {22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Windows64.ActiveCfg = Release|x64
{22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Windows64.Build.0 = Release|x64 {22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Windows64.Build.0 = Release|x64
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Durango.ActiveCfg = Debug|Durango {22938163-5DDB-4D04-883B-07212EB99FAE}.Release|Xbox 360.ActiveCfg = Release|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Durango.Build.0 = Debug|Durango {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|ORBIS.ActiveCfg = Debug|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Durango.Deploy.0 = Debug|Durango {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|PS3.ActiveCfg = Debug|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|ORBIS.ActiveCfg = Debug|ORBIS {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|PSVita.ActiveCfg = Debug|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|ORBIS.Build.0 = Debug|ORBIS
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|PS3.ActiveCfg = Debug|PS3
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Windows64.ActiveCfg = Debug|x64 {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Windows64.ActiveCfg = Debug|x64
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Windows64.Build.0 = Debug|x64 {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Windows64.Build.0 = Debug|x64
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Durango.ActiveCfg = Release|Durango {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Debug|Xbox 360.ActiveCfg = Debug|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Durango.Build.0 = Release|Durango {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|ORBIS.ActiveCfg = Release|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Durango.Deploy.0 = Release|Durango {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|PS3.ActiveCfg = Release|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|ORBIS.ActiveCfg = Release|ORBIS {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|PSVita.ActiveCfg = Release|Win32
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|ORBIS.Build.0 = Release|ORBIS
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|PS3.ActiveCfg = Release|PS3
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Windows64.ActiveCfg = Release|x64 {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Windows64.ActiveCfg = Release|x64
{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Windows64.Build.0 = Release|x64 {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Windows64.Build.0 = Release|x64
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|Durango.ActiveCfg = Debug|Durango {2E28BC2E-BF30-4C83-A4D8-C967DD409D70}.Release|Xbox 360.ActiveCfg = Release|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|Durango.Build.0 = Debug|Durango {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|ORBIS.ActiveCfg = Debug|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|Durango.Deploy.0 = Debug|Durango {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|PS3.ActiveCfg = Debug|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|ORBIS.ActiveCfg = Debug|ORBIS {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|PSVita.ActiveCfg = Debug|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|ORBIS.Build.0 = Debug|ORBIS
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|PS3.ActiveCfg = Debug|PS3
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|Windows64.ActiveCfg = Debug|x64 {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|Windows64.ActiveCfg = Debug|x64
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|Durango.ActiveCfg = Release|Durango {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Debug|Xbox 360.ActiveCfg = Debug|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|ORBIS.ActiveCfg = Release|ORBIS {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|ORBIS.ActiveCfg = Release|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|PS3.ActiveCfg = Release|PS3 {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|PS3.ActiveCfg = Release|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|PSVita.ActiveCfg = Release|Win32
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|Windows64.ActiveCfg = Release|x64 {D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|Windows64.ActiveCfg = Release|x64
{D0FDED0B-7704-4376-82DC-FF4377A7CD53}.Release|Xbox 360.ActiveCfg = Release|Win32
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE
+162 -999
View File
File diff suppressed because it is too large Load Diff
+3 -51
View File
@@ -291,29 +291,11 @@
<ClInclude Include="Windows64\vendor\SDL\include\SDL3\SDL_vulkan.h"> <ClInclude Include="Windows64\vendor\SDL\include\SDL3\SDL_vulkan.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Orbis\INP_ForceFeedback.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Orbis\INP_Main.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Orbis\INP_OnScreenKeyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Orbis\LinkedList.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="PS3\INP_Main.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="PS3\INP_MsgBox.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="PS3\INP_OnScreenKeyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="Windows64\4J_Input.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Windows64\INP_ForceFeedback.cpp"> <ClCompile Include="Windows64\INP_ForceFeedback.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
@@ -332,35 +314,5 @@
<ClCompile Include="stdafx.cpp"> <ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Windows64\4J_Input.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Orbis\4J_Input.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Orbis\INP_ForceFeedback.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Orbis\INP_Main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Orbis\INP_OnScreenKeyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Orbis\LinkedList.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="PS3\INP_Main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="PS3\INP_MsgBox.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="PS3\4J_Input.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="PS3\INP_OnScreenKeyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
</Project> </Project>
-14
View File
@@ -1,14 +0,0 @@
#include "INP_OnScreenKeyboard.h"
#include "4J_Input.h"
#include "INP_Main.h"
//str1k3r - to be renamed SelectBackSwapped
void C_4JInput::SetCircleCrossSwapped(bool swapped)
{
InternalInputManager.m_iSelectBackSwapped = swapped;
}
bool C_4JInput::IsCircleCrossSwapped()
{
return InternalInputManager.m_iSelectBackSwapped;
}
-5
View File
@@ -1,5 +0,0 @@
#pragma once
class CForceFeedback
{
};
View File
-10
View File
@@ -1,10 +0,0 @@
#pragma once
class CInput
{
public:
bool m_iSelectBackSwapped;
};
// Singleton
extern CInput InternalInputManager;
-5
View File
@@ -1,5 +0,0 @@
#pragma once
class CKeyboard
{
};
View File
-5
View File
@@ -1,5 +0,0 @@
#pragma once
class LinkedList
{
};
-167
View File
@@ -1,167 +0,0 @@
#include "INP_Main.h"
#include "4J_Input.h"
#include "INP_OnScreenKeyboard.h"
#include "INP_MsgBox.h"
C_4JInput InputManager;
void C_4JInput::Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC )
{
InternalInputManager.Initialise(iInputStateC, ucMapC, ucActionC, ucMenuActionC);
}
void C_4JInput::Tick(void)
{
InternalInputManager.Tick();
}
void C_4JInput::SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax )
{
InternalInputManager.SetDeadzoneAndMovementRange(uiDeadzone, uiMovementRangeMax);
}
void C_4JInput::SetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction,unsigned int uiActionVal)
{
InternalInputManager.SetGameJoypadMaps(ucMap, ucAction, uiActionVal);
}
unsigned int C_4JInput::GetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction)
{
return InternalInputManager.GetGameJoypadMaps(ucMap, ucAction);
}
void C_4JInput::SetJoypadMapVal(int iPad,unsigned char ucMap)
{
InternalInputManager.SetJoypadMapVal(iPad, ucMap);
}
unsigned char C_4JInput::GetJoypadMapVal(int iPad)
{
return InternalInputManager.GetJoypadMapVal(iPad);
}
void C_4JInput::SetJoypadSensitivity(int iPad, float fSensitivity)
{
InternalInputManager.SetJoypadSensitivity(iPad, fSensitivity);
}
unsigned int C_4JInput::GetValue(int iPad,unsigned char ucAction, bool bRepeat)
{
return InternalInputManager.GetValue(iPad, ucAction, bRepeat);
}
bool C_4JInput::ButtonPressed(int iPad,unsigned char ucAction)
{
return InternalInputManager.ButtonPressed(iPad, ucAction);
}
bool C_4JInput::ButtonReleased(int iPad,unsigned char ucAction)
{
return InternalInputManager.ButtonReleased(iPad, ucAction);
}
bool C_4JInput::ButtonDown(int iPad,unsigned char ucAction)
{
return InternalInputManager.ButtonDown(iPad, ucAction);
}
void C_4JInput::SetJoypadStickAxisMap(int iPad,unsigned int uiFrom, unsigned int uiTo)
{
InternalInputManager.SetJoypadStickAxisMap(iPad, uiFrom, uiTo);
}
void C_4JInput::SetJoypadStickTriggerMap(int iPad,unsigned int uiFrom, unsigned int uiTo)
{
InternalInputManager.SetJoypadStickTriggerMap(iPad, uiFrom, uiTo);
}
void C_4JInput::SetKeyRepeatRate(float fRepeatDelaySecs,float fRepeatRateSecs)
{
InternalInputManager.SetKeyRepeatRate(fRepeatDelaySecs, fRepeatRateSecs);
}
void C_4JInput::SetDebugSequence( const char *chSequenceA,int( *Func)(LPVOID),LPVOID lpParam )
{
InternalInputManager.SetDebugSequence(chSequenceA, Func, lpParam);
}
FLOAT C_4JInput::GetIdleSeconds(int iPad)
{
return InternalInputManager.GetIdleSeconds(iPad);
}
bool C_4JInput::IsPadConnected(int iPad)
{
return InternalInputManager.IsPadConnected(iPad);
}
bool C_4JInput::IsCircleCrossSwapped()
{
return InternalInputManager.m_bSwappedEnter;
}
float C_4JInput::GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay)
{
return InternalInputManager.GetJoypadStick_LX(iPad, bCheckMenuDisplay);
}
float C_4JInput::GetJoypadStick_LY(int iPad, bool bCheckMenuDisplay)
{
return InternalInputManager.GetJoypadStick_LY(iPad, bCheckMenuDisplay);
}
float C_4JInput::GetJoypadStick_RX(int iPad, bool bCheckMenuDisplay)
{
return InternalInputManager.GetJoypadStick_RX(iPad, bCheckMenuDisplay);
}
float C_4JInput::GetJoypadStick_RY(int iPad, bool bCheckMenuDisplay)
{
return InternalInputManager.GetJoypadStick_RY(iPad, bCheckMenuDisplay);
}
unsigned char C_4JInput::GetJoypadLTrigger(int iPad, bool bCheckMenuDisplay)
{
return InternalInputManager.GetJoypadLTrigger(iPad, bCheckMenuDisplay);
}
unsigned char C_4JInput::GetJoypadRTrigger(int iPad, bool bCheckMenuDisplay)
{
return InternalInputManager.GetJoypadRTrigger(iPad, bCheckMenuDisplay);
}
void C_4JInput::SetMenuDisplayed(int iPad, bool bVal)
{
InternalInputManager.SetMenuDisplayed(iPad, bVal);
}
EKeyboardResult C_4JInput::RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode)
{
return InternalInputManager.m_Keyboard.RequestKeyboard(Title, Text, dwPad, uiMaxChars, Func, lpParam, eMode);
}
void C_4JInput::DestroyKeyboard()
{
InternalInputManager.m_Keyboard.DestroyKeyboard();
}
void C_4JInput::GetText(uint16_t *UTF16String)
{
InternalInputManager.m_Keyboard.GetText(UTF16String);
}
void C_4JInput::SetLostInputControlCallback(void( *Func)(LPVOID, bool),LPVOID lpParam)
{
InternalInputManager.SetLostInputControlCallback(Func, lpParam);
}
bool C_4JInput::VerifyStrings(WCHAR **pwStringA,int iStringC,int( *Func)(LPVOID,STRING_VERIFY_RESPONSE *),LPVOID lpParam)
{
return false;
}
EMsgBoxResult C_4JInput::RequestMessageBox(EMSgBoxType eType, DWORD dwPad,void( *Func)(int iButtonType,void *pvUserData),LPVOID lpParam, const char *pchText ,unsigned int uiFocusButton )
{
return InternalInputManager.m_MsgBox.RequestMessageBox(eType, dwPad, Func, lpParam, pchText, uiFocusButton);
}
-915
View File
@@ -1,915 +0,0 @@
#include "INP_Main.h"
#include <stdlib.h>
#include <stdio.h>
#include <sys/sys_time.h> // sys_time_get_current_time
#include <sysutil/sysutil_common.h> // cellSysutilGetSystemParamInt
#include <sysutil/sysutil_sysparam.h> // cellSysutilGetSystemParamInt
CInput InternalInputManager;
CInput::CInput()
{
m_MsgBox = CMsgBox();
m_Keyboard = CKeyboard();
m_uiSigninJoypadMask = 0;
for (int i = 0; i < 4; ++i)
m_bIsMenuDisplayed[i] = 0;
InitTime();
m_fRepeatDelaySecs = 0.5f;
m_fRepeatRateSecs = 0.8f;
m_sDebugSequenceName = 0;
m_uiDebugSequenceIndex = 0;
m_pDebugSequenceFn = 0;
#if TO_BE_IMPLEMENTED
*((_BYTE *)&loc_650 + this + 1) = 0;
#endif
m_pLostInputFn = NULL;
m_pLostInputParam = NULL;
}
CInput::~CInput()
{
// ~CKeyboard
}
void CInput::DebugPrintf(const char *szFormat, ...)
{
va_list ap;
va_start(ap, szFormat);
char buf[1024];
vsnprintf(buf, sizeof(buf), szFormat, ap);
va_end(ap);
printf(buf);
}
bool CInput::QueryPerformanceFrequency(_LARGE_INTEGER *)
{
#if TO_BE_IMPLEMENTED
*(_QWORD *)a2 = 1000000;
#endif
return false;
}
bool CInput::QueryPerformanceCounter(_LARGE_INTEGER *)
{
#if TO_BE_IMPLEMENTED
sys_time_get_current_time(&v3, &v4);
*(_QWORD *)a2 = 1000000 * v3 + v4 / 1000;
#endif
return true;
}
void CInput::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC)
{
assert(iInputStateC > 0);
assert(ucMapC > 0);
assert(ucActionC > 0);
int padInit = cellPadInit(MAX_JOYPADS);
if ( padInit != CELL_PAD_OK )
InternalInputManager.DebugPrintf("cellPadInit failed 0x%08x\n", padInit);
ZeroMemory(m_Joypads, sizeof(m_Joypads));
m_ucInputStateC = iInputStateC;
m_iDeadzone = 0x2;
m_iMovementRangeMax = 0x7F;
m_iEffectiveRange = m_iMovementRangeMax - m_iDeadzone;
m_fEffectiveRange = (float)m_iEffectiveRange;
m_iHalfRange = m_iEffectiveRange * 0.75;
for (int i = 0; i < MAX_JOYPADS; i++)
{
m_Joypads[i].m_pInputStates = new CellPadData[m_ucInputStateC];
m_Joypads[i].m_ucInputStateIndex = -1;
m_Joypads[i].m_pfLeftThumbXAxisMap = &m_Joypads[i].m_fNormalizedLeftThumbX;
m_Joypads[i].m_pfLeftThumbYAxisMap = &m_Joypads[i].m_fNormalizedLeftThumbY;
m_Joypads[i].m_pfRightThumbXAxisMap = &m_Joypads[i].m_fNormalizedRightThumbX;
m_Joypads[i].m_pfRightThumbYAxisMap = &m_Joypads[i].m_fNormalizedRightThumbY;
m_Joypads[i].m_pucLeftTriggerAxisMap = &m_Joypads[i].m_ucLeftTriggerState;
m_Joypads[i].m_pucRightTriggerAxisMap = &m_Joypads[i].m_ucRightTriggerState;
m_Joypads[i].m_fSensitivity = 1.0f;
cellPadSetPortSetting(i, 6);
}
m_JoypadMap = (unsigned int **)operator new[](ucMapC * sizeof(int *));
for (int i = 0; i < ucMapC; i++)
{
m_JoypadMap[i] = (unsigned int *)operator new[](ucActionC * sizeof(int));
}
m_ucJoypadMapC = ucMapC;
m_ucJoypadMapActionC = ucActionC;
m_ucMenuActionC = ucMenuActionC;
m_bJoypadMapArrayIsSetup = false;
int swappedEnter;
cellSysutilGetSystemParamInt(CELL_SYSUTIL_SYSTEMPARAM_ID_ENTER_BUTTON_ASSIGN, &swappedEnter);
if ( swappedEnter )
{
m_bSwappedEnter = false;
}
else
{
m_bSwappedEnter = true;
}
}
void CInput::Tick()
{
UpdateJoypads();
m_Keyboard.Tick();
}
void CInput::SetJoypadValues(JOYPAD *pThisPad)
{
CellPadData *pGamePad = &pThisPad->m_pInputStates[pThisPad->m_ucInputStateIndex];
pThisPad->m_uiButtons = pThisPad->m_uiOldButtons;
if (pGamePad->len > 2)
{
pThisPad->m_uiButtons &= ~(
_360_JOY_BUTTON_START |
_360_JOY_BUTTON_BACK |
_360_JOY_BUTTON_LTHUMB |
_360_JOY_BUTTON_RTHUMB |
_360_JOY_BUTTON_DPAD_UP |
_360_JOY_BUTTON_DPAD_DOWN |
_360_JOY_BUTTON_DPAD_LEFT |
_360_JOY_BUTTON_DPAD_RIGHT
);
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_START) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_START;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_SELECT) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_BACK;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_L3) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LTHUMB;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_R3) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RTHUMB;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_UP) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_DPAD_UP;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_DOWN) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_DPAD_DOWN;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_LEFT) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_DPAD_LEFT;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL1] & CELL_PAD_CTRL_RIGHT) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_DPAD_RIGHT;
}
}
if (pGamePad->len > 3)
{
pThisPad->m_uiButtons &= ~(
_360_JOY_BUTTON_RB |
_360_JOY_BUTTON_LB |
_360_JOY_BUTTON_RT |
_360_JOY_BUTTON_LT |
_360_JOY_BUTTON_A |
_360_JOY_BUTTON_B |
_360_JOY_BUTTON_X |
_360_JOY_BUTTON_Y
);
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_R1) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RB;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_L1) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LB;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_R2) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RT;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_L2) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LT;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_CROSS) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_A;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_CIRCLE) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_B;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_SQUARE) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_X;
}
if ((pGamePad->button[CELL_PAD_BTN_OFFSET_DIGITAL2] & CELL_PAD_CTRL_TRIANGLE) != 0)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_Y;
}
}
if (pGamePad->len > 4)
{
int sThumbRX = pGamePad->button[CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_X] - 127;
if (sThumbRX > m_iDeadzone + m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RSTICK_RIGHT;
}
else if (sThumbRX < -m_iDeadzone - m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RSTICK_LEFT;
}
else
{
pThisPad->m_uiButtons &= ~(
_360_JOY_BUTTON_RSTICK_RIGHT |
_360_JOY_BUTTON_RSTICK_LEFT
);
}
if (sThumbRX >= -m_iDeadzone)
{
if (sThumbRX > m_iDeadzone)
pThisPad->m_iRightThumbX = sThumbRX - m_iDeadzone;
else
pThisPad->m_iRightThumbX = 0;
}
else
{
pThisPad->m_iRightThumbX = sThumbRX + m_iDeadzone;
}
}
if (pGamePad->len > 5)
{
int sThumbRY = 127 - pGamePad->button[CELL_PAD_BTN_OFFSET_ANALOG_RIGHT_Y];
if (sThumbRY > m_iDeadzone + m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RSTICK_UP;
}
else if (sThumbRY < -m_iDeadzone - m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_RSTICK_DOWN;
}
else
{
pThisPad->m_uiButtons &= ~(
_360_JOY_BUTTON_RSTICK_UP |
_360_JOY_BUTTON_RSTICK_DOWN
);
}
if (sThumbRY >= -m_iDeadzone)
{
if (sThumbRY > m_iDeadzone)
pThisPad->m_iRightThumbY = sThumbRY - m_iDeadzone;
else
pThisPad->m_iRightThumbY = 0;
}
else
{
pThisPad->m_iRightThumbY = sThumbRY + m_iDeadzone;
}
}
if (pGamePad->len > 6)
{
int sThumbLX = pGamePad->button[CELL_PAD_BTN_OFFSET_ANALOG_LEFT_X] - 127;
if (sThumbLX > m_iDeadzone + m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LSTICK_RIGHT;
}
else if (sThumbLX < -m_iDeadzone - m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LSTICK_LEFT;
}
else
{
pThisPad->m_uiButtons &= ~(
_360_JOY_BUTTON_LSTICK_RIGHT |
_360_JOY_BUTTON_LSTICK_LEFT
);
}
if (sThumbLX >= -m_iDeadzone)
{
if (sThumbLX > m_iDeadzone)
pThisPad->m_iLeftThumbX = sThumbLX - m_iDeadzone;
else
pThisPad->m_iLeftThumbX = 0;
}
else
{
pThisPad->m_iLeftThumbX = sThumbLX + m_iDeadzone;
}
}
if (pGamePad->len > 7)
{
int sThumbLY = 127 - pGamePad->button[CELL_PAD_BTN_OFFSET_ANALOG_LEFT_Y];
if (sThumbLY > m_iDeadzone + m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LSTICK_UP;
}
else if (sThumbLY < -m_iDeadzone - m_iHalfRange)
{
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LSTICK_DOWN;
}
else
{
pThisPad->m_uiButtons &= ~(
_360_JOY_BUTTON_LSTICK_UP |
_360_JOY_BUTTON_LSTICK_DOWN
);
}
if (sThumbLY >= -m_iDeadzone)
{
if (sThumbLY > m_iDeadzone)
pThisPad->m_iLeftThumbY = sThumbLY - m_iDeadzone;
else
pThisPad->m_iLeftThumbY = 0;
}
else
{
pThisPad->m_iLeftThumbY = sThumbLY + m_iDeadzone;
}
}
if (pGamePad->len > 18)
{
pThisPad->m_ucLeftTriggerState = pGamePad->button[CELL_PAD_BTN_OFFSET_PRESS_L2];
}
if (pGamePad->len > 19)
{
pThisPad->m_ucRightTriggerState = pGamePad->button[CELL_PAD_BTN_OFFSET_PRESS_R2];
}
pThisPad->m_iNormalizedLeftThumbX = pThisPad->m_iLeftThumbX / m_iEffectiveRange;
pThisPad->m_iNormalizedLeftThumbY = pThisPad->m_iLeftThumbY / m_iEffectiveRange;
pThisPad->m_iNormalizedRightThumbX = pThisPad->m_iRightThumbX / m_iEffectiveRange;
pThisPad->m_iNormalizedRightThumbY = pThisPad->m_iRightThumbY / m_iEffectiveRange;
pThisPad->m_fNormalizedLeftThumbX = pThisPad->m_iLeftThumbX / m_fEffectiveRange;
pThisPad->m_fNormalizedLeftThumbY = pThisPad->m_iLeftThumbY / m_fEffectiveRange;
pThisPad->m_fNormalizedRightThumbX = pThisPad->m_iRightThumbX / m_fEffectiveRange;
pThisPad->m_fNormalizedRightThumbY = pThisPad->m_iRightThumbY / m_fEffectiveRange;
}
void CInput::SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax)
{
m_iDeadzone = uiDeadzone;
m_iMovementRangeMax = uiMovementRangeMax;
m_iEffectiveRange = uiMovementRangeMax - uiDeadzone;
}
void CInput::SetJoypadSensitivity(int iPad, float fSensitivity)
{
m_Joypads[iPad].m_fSensitivity = fSensitivity;
}
void CInput::SetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction, unsigned int uiActionVal)
{
assert(ucMap < m_ucJoypadMapC);
assert(ucAction < m_ucJoypadMapActionC);
m_JoypadMap[ucMap][ucAction] = uiActionVal;
}
unsigned int CInput::GetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction)
{
assert(ucMap < m_ucJoypadMapC);
assert(ucAction < m_ucJoypadMapActionC);
return m_JoypadMap[ucMap][ucAction];
}
void CInput::SetJoypadMapVal(int iPad, unsigned char ucMap)
{
m_bJoypadMapArrayIsSetup = true;
m_Joypads[iPad].m_ucMappingValue = ucMap;
}
unsigned char CInput::GetJoypadMapVal(int iPad)
{
return m_Joypads[iPad].m_ucMappingValue;
}
void CInput::SetJoypadStickAxisMap(int iPad, unsigned int uiFrom, unsigned int uiTo)
{
float *pfTo = NULL;
switch (uiTo)
{
case AXIS_MAP_LX:
pfTo = &m_Joypads[iPad].m_fNormalizedLeftThumbX;
break;
case AXIS_MAP_LY:
pfTo = &m_Joypads[iPad].m_fNormalizedLeftThumbY;
break;
case AXIS_MAP_RX:
pfTo = &m_Joypads[iPad].m_fNormalizedRightThumbX;
break;
case AXIS_MAP_RY:
pfTo = &m_Joypads[iPad].m_fNormalizedRightThumbY;
break;
}
switch (uiFrom)
{
case AXIS_MAP_LX:
m_Joypads[iPad].m_pfLeftThumbXAxisMap = pfTo;
break;
case AXIS_MAP_LY:
m_Joypads[iPad].m_pfLeftThumbYAxisMap = pfTo;
break;
case AXIS_MAP_RX:
m_Joypads[iPad].m_pfRightThumbXAxisMap = pfTo;
break;
case AXIS_MAP_RY:
m_Joypads[iPad].m_pfRightThumbYAxisMap = pfTo;
break;
}
}
void CInput::SetJoypadStickTriggerMap(int iPad, unsigned int uiFrom, unsigned int uiTo)
{
unsigned char *pucTo = NULL;
switch (uiTo)
{
case TRIGGER_MAP_0:
pucTo = &m_Joypads[iPad].m_ucRightTriggerState;
break;
case TRIGGER_MAP_1:
pucTo = &m_Joypads[iPad].m_ucLeftTriggerState;
break;
}
switch (uiFrom)
{
case TRIGGER_MAP_0:
m_Joypads[iPad].m_pucRightTriggerAxisMap = pucTo;
break;
case TRIGGER_MAP_1:
m_Joypads[iPad].m_pucLeftTriggerAxisMap = pucTo;
break;
}
}
bool CInput::IsPadConnected(int iPad)
{
return m_Joypads[iPad].m_bIsConnected;
}
void CInput::SetSigninJoypadMask(unsigned int mask)
{
m_uiSigninJoypadMask = mask;
}
unsigned int CInput::GetValue(int iPad, unsigned char ucAction, bool bRepeat)
{
if (m_bIsMenuDisplayed[iPad] && ucAction > this->m_ucMenuActionC)
{
return 0;
}
unsigned char ucMap = this->m_Joypads[iPad].m_ucMappingValue;
unsigned int uiVal = this->m_JoypadMap[ucMap][ucAction] & this->m_Joypads[iPad].m_uiButtons;
if (!uiVal || !bRepeat)
{
return uiVal;
}
int iKeyVal = 0;
for (int iKey = this->m_JoypadMap[ucMap][ucAction]; (iKey & 1) == 0; iKey >>= 1)
{
iKeyVal++;
}
if (m_fRepeatDelaySecs <= m_Timers[iPad][iKeyVal].m_fTotalHoldTime || m_Timers[iPad][iKeyVal].m_bInitialPressHandled)
{
if (m_Timers[iPad][iKeyVal].m_fTotalHoldTime < m_fRepeatDelaySecs)
{
return 0;
}
else if (m_Timers[iPad][iKeyVal].m_fLastRepeatTime == 0.0f)
{
m_Timers[iPad][iKeyVal].m_fLastRepeatTime = m_fRepeatDelaySecs;
return uiVal;
}
else if ((m_Timers[iPad][iKeyVal].m_fTotalHoldTime - m_Timers[iPad][iKeyVal].m_fLastRepeatTime) <= m_fRepeatRateSecs)
{
return 0;
}
else
{
m_Timers[iPad][iKeyVal].m_fLastRepeatTime = m_Timers[iPad][iKeyVal].m_fLastRepeatTime + m_fRepeatRateSecs;
return uiVal;
}
}
else
{
m_Timers[iPad][iKeyVal].m_bInitialPressHandled = true;
return uiVal;
}
}
bool CInput::IsSet(int iPad, unsigned char ucAction)
{
return (!m_bIsMenuDisplayed[iPad] || ucAction <= m_ucMenuActionC) &&
(m_JoypadMap[m_Joypads[iPad].m_ucMappingValue][ucAction] & m_Joypads[iPad].m_uiButtons) != 0;
}
bool CInput::ButtonPressed(int iPad, unsigned char ucAction)
{
if (ucAction == 255)
{
return m_Joypads[iPad].m_uiButtonsPressed != 0;
}
if (m_bIsMenuDisplayed[iPad] && ucAction > m_ucMenuActionC)
{
return 0;
}
return (m_JoypadMap[m_Joypads[iPad].m_ucMappingValue][ucAction] & m_Joypads[iPad].m_uiButtonsPressed) != 0;
}
bool CInput::ButtonReleased(int iPad, unsigned char ucAction)
{
return (!m_bIsMenuDisplayed[iPad] || ucAction <= m_ucMenuActionC) &&
(m_JoypadMap[m_Joypads[iPad].m_ucMappingValue][ucAction] & m_Joypads[iPad].m_uiButtonsReleased) != 0;
}
bool CInput::ButtonDown(int iPad, unsigned char ucAction)
{
if (ucAction == 255)
{
return m_Joypads[iPad].m_uiButtons != 0;
}
if (m_bIsMenuDisplayed[iPad] && ucAction > m_ucMenuActionC)
{
return 0;
}
return (m_JoypadMap[m_Joypads[iPad].m_ucMappingValue][ucAction] & m_Joypads[iPad].m_uiButtons) != 0;
}
float CInput::GetJoypadStick_Menu_LX(unsigned char ucPad)
{
return m_Joypads[ucPad].m_iNormalizedLeftThumbX;
}
float CInput::GetJoypadStick_Menu_LY(unsigned char ucPad)
{
return m_Joypads[ucPad].m_iNormalizedLeftThumbY;
}
float CInput::GetJoypadStick_Menu_RX(unsigned char ucPad)
{
return m_Joypads[ucPad].m_iNormalizedRightThumbX;
}
float CInput::GetJoypadStick_Menu_RY(unsigned char ucPad)
{
return m_Joypads[ucPad].m_iNormalizedRightThumbY;
}
unsigned char CInput::GetJoypadLTrigger_Menu(unsigned char ucPad)
{
return m_Joypads[ucPad].m_ucLeftTriggerState;
}
unsigned char CInput::GetJoypadRTrigger_Menu(unsigned char ucPad)
{
return m_Joypads[ucPad].m_ucRightTriggerState;
}
float CInput::GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay)
{
if (bCheckMenuDisplay && m_bIsMenuDisplayed[iPad])
{
return 0.0f;
}
return *m_Joypads[iPad].m_pfLeftThumbXAxisMap * m_Joypads[iPad].m_fSensitivity;
}
float CInput::GetJoypadStick_LY(int iPad, bool bCheckMenuDisplay)
{
if (bCheckMenuDisplay && m_bIsMenuDisplayed[iPad])
{
return 0.0f;
}
return *m_Joypads[iPad].m_pfLeftThumbYAxisMap * m_Joypads[iPad].m_fSensitivity;
}
float CInput::GetJoypadStick_RX(int iPad, bool bCheckMenuDisplay)
{
if (bCheckMenuDisplay && m_bIsMenuDisplayed[iPad])
{
return 0.0f;
}
return *m_Joypads[iPad].m_pfRightThumbXAxisMap * m_Joypads[iPad].m_fSensitivity;
}
float CInput::GetJoypadStick_RY(int iPad, bool bCheckMenuDisplay)
{
if (bCheckMenuDisplay && m_bIsMenuDisplayed[iPad])
{
return 0.0f;
}
return *m_Joypads[iPad].m_pfRightThumbYAxisMap * m_Joypads[iPad].m_fSensitivity;
}
unsigned char CInput::GetJoypadLTrigger(int iPad, bool bCheckMenuDisplay)
{
if (bCheckMenuDisplay && m_bIsMenuDisplayed[iPad])
{
return 0;
}
return *m_Joypads[iPad].m_pucLeftTriggerAxisMap;
}
unsigned char CInput::GetJoypadRTrigger(int iPad, bool bCheckMenuDisplay)
{
if (bCheckMenuDisplay && m_bIsMenuDisplayed[iPad])
{
return 0;
}
return *m_Joypads[iPad].m_pucRightTriggerAxisMap;
}
void CInput::SetMenuDisplayed(int iPad, bool bVal)
{
m_bIsMenuDisplayed[iPad] = bVal;
}
void CInput::SetKeyRepeatRate(float fRepeatDelaySecs, float fRepeatRateSecs)
{
m_fRepeatDelaySecs = fRepeatDelaySecs;
m_fRepeatRateSecs = fRepeatRateSecs;
}
void CInput::SetDebugSequence(const char *chSequenceA, int (*Func)(LPVOID), LPVOID lpParam)
{
int iLen = strlen(chSequenceA);
m_sDebugSequenceName = (char *)operator new[](iLen);
strcpy(m_sDebugSequenceName, chSequenceA);
m_pDebugSequenceFn = Func;
m_pDebugSequenceParam = lpParam;
}
FLOAT CInput::GetIdleSeconds(int iPad)
{
LARGE_INTEGER qwDeltaTime;
QueryPerformanceCounter(&qwDeltaTime);
#if TO_BE_IMPLEMENTED
uint64_t v4 = qwDeltaTime.QuadPart - *(_QWORD *)(v5 + 4696 + 8 * a2);
return (float)(*(float *)((char *)&loc_644 + v5) * (float)v4)
#else
return 0.0f;
#endif
}
void CInput::SetLostInputControlCallback(void( *Func)(LPVOID, bool),LPVOID lpParam)
{
m_pLostInputFn = Func;
m_pLostInputParam = lpParam;
}
bool CInput::UpdateJoypads()
{
assert(m_bJoypadMapArrayIsSetup);
for (int i = 0; i < MAX_JOYPADS; i++)
{
JOYPAD *pThisPad = &m_Joypads[i];
pThisPad->m_uiOldButtons = pThisPad->m_uiButtons;
pThisPad->m_uiButtons = 0;
pThisPad->m_ucLeftTriggerState = 0;
pThisPad->m_ucRightTriggerState = 0;
}
CellPadInfo2 info;
int32_t getInfo2 = cellPadGetInfo2(&info);
if ( getInfo2 != CELL_PAD_OK )
InternalInputManager.DebugPrintf("cellPadGetInfo2 failed 0x%08x\n", getInfo2);
for (int i = 0; i < MAX_JOYPADS; i++)
{
if (!m_Joypads[i].m_bIsDisabled)
{
JOYPAD *pThisPad = &m_Joypads[i];
bool bOldIsConnected = pThisPad->m_bIsConnected;
pThisPad->m_ucInputStateIndex = pThisPad->m_ucInputStateIndex++;
if (pThisPad->m_ucInputStateIndex == m_ucInputStateC)
{
pThisPad->m_ucInputStateIndex = 0;
}
pThisPad->m_bIsConnected = info.port_status[i] & CELL_PAD_STATUS_CONNECTED;
if ( (info.system_info & CELL_PAD_INFO_INTERCEPTED) != 0)
{
if (!m_bLostInput)
{
m_bLostInput = true;
if ( m_pLostInputFn )
m_pLostInputFn(m_pLostInputParam, true);
}
}
else if ( m_bLostInput )
{
m_bLostInput = false;
if ( m_pLostInputFn )
m_pLostInputFn(m_pLostInputParam, false);
}
if (pThisPad->m_bIsConnected)
{
int32_t getData = cellPadGetData(i, &pThisPad->m_pInputStates[pThisPad->m_ucInputStateIndex]);
if ( getData != CELL_PAD_OK )
InternalInputManager.DebugPrintf("cellPadGetData failed 0x%08x\n", getData);
}
bool bWasConnected = bOldIsConnected && !pThisPad->m_bIsConnected;
pThisPad->m_bWasConnected = bWasConnected;
bool bHasConnected = !bOldIsConnected && pThisPad->m_bIsConnected;
pThisPad->m_bHasConnected = bHasConnected;
if (pThisPad->m_bIsConnected)
{
SetJoypadValues(pThisPad);
pThisPad->m_uiButtonsPressed = ~pThisPad->m_uiOldButtons & pThisPad->m_uiButtons;
pThisPad->m_uiButtonsReleased = ~pThisPad->m_uiButtons & pThisPad->m_uiOldButtons;
for (int bit = 0; bit < 24; ++bit)
{
if ((pThisPad->m_uiButtonsPressed & (1 << bit)) != 0)
{
GetStartTime(i, bit);
}
else if ((pThisPad->m_uiButtons & (1 << bit)) != 0)
{
UpdateTime(i, bit);
}
}
}
else if (pThisPad->m_bWasConnected)
{
ClearJoypadValues(pThisPad);
}
if (m_pDebugSequenceFn && (pThisPad->m_uiButtonsPressed & (_360_JOY_BUTTON_A | _360_JOY_BUTTON_B | _360_JOY_BUTTON_X | _360_JOY_BUTTON_Y |
_360_JOY_BUTTON_RB | _360_JOY_BUTTON_LB)) != 0)
{
char chSeq;
if ((pThisPad->m_uiButtonsPressed & _360_JOY_BUTTON_A) == _360_JOY_BUTTON_A)
{
chSeq = 'A';
}
else if ((pThisPad->m_uiButtonsPressed & _360_JOY_BUTTON_B) == _360_JOY_BUTTON_B)
{
chSeq = 'B';
}
else if ((pThisPad->m_uiButtonsPressed & _360_JOY_BUTTON_X) == _360_JOY_BUTTON_X)
{
chSeq = 'X';
}
else if ((pThisPad->m_uiButtonsPressed & _360_JOY_BUTTON_Y) == _360_JOY_BUTTON_Y)
{
chSeq = 'Y';
}
else if ((pThisPad->m_uiButtonsPressed & _360_JOY_BUTTON_LB) == _360_JOY_BUTTON_LB)
{
chSeq = 'L';
}
else if ((pThisPad->m_uiButtonsPressed & _360_JOY_BUTTON_RB) == _360_JOY_BUTTON_RB)
{
chSeq = 'R';
}
if (m_sDebugSequenceName[m_uiDebugSequenceIndex] == chSeq)
{
if (!m_sDebugSequenceName[m_uiDebugSequenceIndex++])
{
m_uiDebugSequenceIndex = 0;
(m_pDebugSequenceFn)(m_pDebugSequenceParam);
}
}
else
{
m_uiDebugSequenceIndex = 0;
}
}
}
}
return true;
}
void CInput::ClearJoypadValues(JOYPAD *pThisPad)
{
pThisPad->m_uiButtonsPressed = 0;
pThisPad->m_uiButtonsReleased = 0;
pThisPad->m_uiButtons = 0;
pThisPad->m_ucLeftTriggerState = 0;
pThisPad->m_ucRightTriggerState = 0;
pThisPad->m_iRightThumbX = 0;
pThisPad->m_iRightThumbY = 0;
pThisPad->m_iLeftThumbX = 0;
pThisPad->m_iLeftThumbY = 0;
pThisPad->m_iNormalizedLeftThumbX = 0;
pThisPad->m_iNormalizedLeftThumbY = 0;
pThisPad->m_iNormalizedRightThumbX = 0;
pThisPad->m_iNormalizedRightThumbY = 0;
pThisPad->m_fNormalizedLeftThumbX = 0.0f;
pThisPad->m_fNormalizedLeftThumbY = 0.0f;
pThisPad->m_fNormalizedRightThumbX = 0.0f;
pThisPad->m_fNormalizedRightThumbY = 0.0f;
}
void CInput::InitTime(void)
{
LARGE_INTEGER qwTicksPerSec;
QueryPerformanceFrequency(&qwTicksPerSec);
m_fTickToSeconds = 1.0 / (float)(int)qwTicksPerSec.LowPart;
for (int i = 0; i < MAX_JOYPADS; i++)
{
m_LastActivityTime[i].QuadPart = 0;
}
}
void CInput::GetStartTime(int iPad, int iKey)
{
QueryPerformanceCounter(&m_Timers[iPad][iKey].m_qwStartTime);
m_Timers[iPad][iKey].m_qwTotalHoldTicks.QuadPart = 0;
m_Timers[iPad][iKey].m_fTotalHoldTime = 0;
m_Timers[iPad][iKey].m_fLastRepeatTime = 0;
m_Timers[iPad][iKey].m_bInitialPressHandled = false;
m_LastActivityTime[iPad].QuadPart = m_Timers[iPad][iKey].m_qwStartTime.QuadPart;
}
void CInput::UpdateTime(int iPad, int iKey)
{
LARGE_INTEGER qwDeltaTime;
QueryPerformanceCounter(&qwDeltaTime);
uint64_t qwNewTime = qwDeltaTime.QuadPart - m_Timers[iPad][iKey].m_qwStartTime.QuadPart;
m_Timers[iPad][iKey].m_qwTotalHoldTicks.QuadPart += qwNewTime;
m_Timers[iPad][iKey].m_qwStartTime = qwDeltaTime;
m_Timers[iPad][iKey].m_fTotalHoldTime = m_Timers[iPad][iKey].m_fTotalHoldTime + (m_fTickToSeconds * qwNewTime);
m_LastActivityTime[iPad].QuadPart = m_Timers[iPad][iKey].m_qwStartTime.QuadPart;
}
-175
View File
@@ -1,175 +0,0 @@
#include "stdafx.h"
#include "4J_Input.h"
#include "INP_OnScreenKeyboard.h"
#include "INP_MsgBox.h"
#include <cell/pad.h>
#define MAX_JOYPADS 4
class CInput
{
public:
struct XINPUT_STATE {};
struct JOYPAD
{
bool m_bIsDisabled;
bool m_bIsConnected;
bool m_bWasConnected;
bool m_bHasConnected;
unsigned int m_uiButtons;
unsigned int m_uiOldButtons;
int m_uiButtonsPressed;
int m_uiButtonsReleased;
int m_iRightThumbX;
int m_iRightThumbY;
int m_iLeftThumbX;
int m_iLeftThumbY;
DWORD m_iNormalizedRightThumbX;
DWORD m_iNormalizedRightThumbY;
DWORD m_iNormalizedLeftThumbX;
DWORD m_iNormalizedLeftThumbY;
float m_fNormalizedRightThumbX;
float m_fNormalizedRightThumbY;
float m_fNormalizedLeftThumbX;
float m_fNormalizedLeftThumbY;
unsigned char m_ucLeftTriggerState;
unsigned char m_ucRightTriggerState;
float *m_pfLeftThumbXAxisMap;
float *m_pfLeftThumbYAxisMap;
float *m_pfRightThumbXAxisMap;
float *m_pfRightThumbYAxisMap;
float m_fSensitivity;
BYTE *m_pucLeftTriggerAxisMap;
BYTE *m_pucRightTriggerAxisMap;
unsigned char m_ucMappingValue;
unsigned char m_ucInputStateIndex;
CellPadData *m_pInputStates;
};
struct TimeInfo
{
LARGE_INTEGER m_qwStartTime;
LARGE_INTEGER m_qwTotalHoldTicks;
float m_fTotalHoldTime;
float m_fLastRepeatTime;
bool m_bInitialPressHandled;
};
CInput();
~CInput();
void DebugPrintf(const char *szFormat, ...);
bool QueryPerformanceFrequency(_LARGE_INTEGER *);
bool QueryPerformanceCounter(_LARGE_INTEGER *);
void Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC);
void Tick();
void SetJoypadValues(JOYPAD *);
void SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax);
void SetJoypadSensitivity(int iPad, float fSensitivity);
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 SetJoypadStickAxisMap(int iPad, unsigned int uiFrom, unsigned int uiTo);
void SetJoypadStickTriggerMap(int iPad, unsigned int uiFrom, unsigned int uiTo);
bool IsPadConnected(int iPad);
void SetSigninJoypadMask(unsigned int mask);
unsigned int GetValue(int iPad, unsigned char ucAction, bool bRepeat);
bool IsSet(int iPad, unsigned char ucAction);
bool ButtonPressed(int iPad, unsigned char ucAction);
bool ButtonReleased(int iPad, unsigned char ucAction);
bool ButtonDown(int iPad, unsigned char ucAction);
float GetJoypadStick_Menu_LX(unsigned char ucPad);
float GetJoypadStick_Menu_LY(unsigned char ucPad);
float GetJoypadStick_Menu_RX(unsigned char ucPad);
float GetJoypadStick_Menu_RY(unsigned char ucPad);
unsigned char GetJoypadLTrigger_Menu(unsigned char ucPad);
unsigned char GetJoypadRTrigger_Menu(unsigned char ucPad);
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);
void SetKeyRepeatRate(float fRepeatDelaySecs, float fRepeatRateSecs);
void SetDebugSequence(const char *chSequenceA, int (*Func)(LPVOID), LPVOID lpParam);
FLOAT GetIdleSeconds(int iPad);
void SetLostInputControlCallback(void (*a2)(void *, bool), void *a3);
bool UpdateJoypads();
void ClearJoypadValues(JOYPAD *pThisPad);
void InitTime(void);
void GetStartTime(int iPad, int iKey);
void UpdateTime(int, int);
private:
JOYPAD m_Joypads[MAX_JOYPADS];
int m_iDeadzone;
int m_iMovementRangeMax;
int m_iEffectiveRange;
int m_iHalfRange;
float m_fEffectiveRange;
unsigned char m_ucInputStateC;
unsigned char m_ucJoypadMapC;
unsigned char m_ucJoypadMapActionC;
unsigned char m_ucMenuActionC;
unsigned int **m_JoypadMap;
bool m_bSelectBackSwapped;
bool m_bLostInput;
bool m_bJoypadMapArrayIsSetup;
unsigned int m_uiSigninJoypadMask;
bool m_bIsMenuDisplayed[MAX_JOYPADS];
public:
CMsgBox m_MsgBox;
CKeyboard m_Keyboard;
bool m_bSwappedEnter;
private:
float m_fTickToSeconds;
float m_fRepeatDelaySecs;
float m_fRepeatRateSecs;
TimeInfo m_Timers[MAX_JOYPADS][24];
LARGE_INTEGER m_LastActivityTime[MAX_JOYPADS];
char *m_sDebugSequenceName;
unsigned int m_uiDebugSequenceIndex;
int (*m_pDebugSequenceFn)(void *);
LPVOID m_pDebugSequenceParam;
void (*m_pLostInputFn)(LPVOID, const bool);
LPVOID m_pLostInputParam;
};
extern CInput InternalInputManager;
-51
View File
@@ -1,51 +0,0 @@
#include "INP_Main.h"
#include "INP_MsgBox.h"
CMsgBox::CMsgBox()
{
m_eResult = EMsgBox_Undefined;
}
EMsgBoxResult CMsgBox::RequestMessageBox(EMSgBoxType eType, DWORD dwPad,void( *Func)(int iButtonType,void *pvUserData),LPVOID lpParam, const char *pchText ,unsigned int uiFocusButton )
{
InternalInputManager.DebugPrintf("InputManager CMsgBox::RequestMessageBox\n");
if (m_eResult == EMsgBox_Pending)
return EMsgBox_Busy;
m_eResult = EMsgBox_Pending;
int messageType = CELL_MSGDIALOG_TYPE_SE_TYPE_NORMAL
| CELL_MSGDIALOG_TYPE_DISABLE_CANCEL_ON;
m_iPad = dwPad;
m_pParam = lpParam;
switch (eType)
{
case EMSgBoxType_OK:
messageType |= CELL_MSGDIALOG_TYPE_BUTTON_TYPE_OK;
break;
case EMSgBoxType_YesNo:
messageType |= CELL_MSGDIALOG_TYPE_BUTTON_TYPE_YESNO;
if (uiFocusButton)
{
messageType |= CELL_MSGDIALOG_TYPE_DEFAULT_CURSOR_NO;
}
break;
}
int msgDialog = cellMsgDialogOpen2(messageType, pchText, Func, this, NULL);
if (msgDialog != CELL_OK)
{
InternalInputManager.DebugPrintf("ERROR : cellMsgDialogOpen2() = 0x%x\n", msgDialog);
if (msgDialog == CELL_SYSUTIL_ERROR_BUSY)
{
InternalInputManager.DebugPrintf("WARN : cellMsgDialogOpen2() = 0x%x (CELL_SYSUTIL_ERROR_BUSY) ... Retry.\n", CELL_SYSUTIL_ERROR_BUSY);
return EMsgBox_SysUtilBusy;
}
return EMsgBox_Undefined;
}
InternalInputManager.DebugPrintf("cellMsgDialogOpen2 - CELL_OK\n");
return m_eResult;
}
-18
View File
@@ -1,18 +0,0 @@
#pragma once
#include "4J_Input.h"
#include <sysutil/sysutil_msgdialog.h> // cellMsgDialogOpen2
class CMsgBox
{
public:
CMsgBox();
~CMsgBox() {};
EMsgBoxResult RequestMessageBox(EMSgBoxType eType, DWORD dwPad,void( *Func)(int iButtonType,void *pvUserData),LPVOID lpParam, const char *pchText ,unsigned int uiFocusButton );
void Tick() {};
private:
EMsgBoxResult m_eResult;
DWORD m_iPad;
LPVOID m_pParam;
};
-262
View File
@@ -1,262 +0,0 @@
#include "INP_Main.h"
#include "INP_OnScreenKeyboard.h"
CKeyboard::CKeyboard()
{
m_pInstance = this;
m_iMode = 0;
cellSysutilRegisterCallback(3, (CellSysutilCallback)&CKeyboard::KeyboardEventsCallback, this);
SetKeyboardLanguage();
}
void CKeyboard::Tick()
{
if (m_iMode == 5)
{
cellOskDialogUnloadAsync(&m_pDialogReturn);
InternalInputManager.DebugPrintf("############## result ##############\n");
InternalInputManager.DebugPrintf("OskDialog result status:\t%d\n", m_pDialogReturn);
if (m_pDialogReturn.result == CELL_OK)
{
InternalInputManager.DebugPrintf("OskDialog return chars :\t%d\n", m_pDialogReturn.numCharsResultString);
InternalInputManager.DebugPrintf("OskDialog return text :\t%S\n", m_pDialogReturn.pResultString);
}
InternalInputManager.DebugPrintf("########################################\n\n");
if (m_pFunc)
{
m_pFunc(m_lpParam, m_pDialogReturn.result == CELL_OK);
}
m_iMode = 0;
}
else if (m_iMode != 4)
{
if (m_iMode == 3)
{
if (m_pTickCountdown)
m_pTickCountdown--;
else
m_iMode = 2;
}
else if (m_iMode == 2)
{
register_osk_callback();
cellOskDialogAddSupportLanguage(CELL_OSKDIALOG_PANELMODE_GERMAN |
CELL_OSKDIALOG_PANELMODE_ENGLISH |
CELL_OSKDIALOG_PANELMODE_SPANISH |
CELL_OSKDIALOG_PANELMODE_FRENCH |
CELL_OSKDIALOG_PANELMODE_ITALIAN |
CELL_OSKDIALOG_PANELMODE_PORTUGUESE |
CELL_OSKDIALOG_PANELMODE_KOREAN |
CELL_OSKDIALOG_PANELMODE_TRADITIONAL_CHINESE |
CELL_OSKDIALOG_PANELMODE_SIMPLIFIED_CHINESE |
CELL_OSKDIALOG_PANELMODE_PORTUGUESE_BRAZIL
);
int iResult;
iResult = cellOskDialogSetKeyLayoutOption(CELL_OSKDIALOG_10KEY_PANEL | CELL_OSKDIALOG_FULLKEY_PANEL);
if ( iResult )
InternalInputManager.DebugPrintf("cellOskDialogSetKeyLayoutOption() = 0x%x \n", iResult);
iResult = cellOskDialogSetInitialKeyLayout(CELL_OSKDIALOG_INITIAL_PANEL_LAYOUT_FULLKEY);
if ( iResult )
InternalInputManager.DebugPrintf("cellOskDialogSetKeyLayoutOption()= 0x%x \n", iResult);
iResult = cellOskDialogExtSetInitialScale(1.0f);
if ( iResult )
InternalInputManager.DebugPrintf("cellOskDialogExtSetInitialScale()= 0x%x \n", iResult);
cellOskDialogSetLayoutMode(CELL_OSKDIALOG_LAYOUTMODE_X_ALIGN_CENTER | CELL_OSKDIALOG_LAYOUTMODE_Y_ALIGN_CENTER);
iResult = cellOskDialogLoadAsync(SYS_MEMORY_CONTAINER_ID_INVALID, &m_pDialogParam, &inputFieldInfo);
if ( iResult != CELL_OK )
{
InternalInputManager.DebugPrintf("cellOskDialogLoadAsync() = 0x%x \n", iResult);
m_iMode = 0;
}
else
{
m_iMode = 4;
}
}
else
{
m_iMode = 3;
m_pTickCountdown = 5;
}
}
}
void CKeyboard::GetText(uint16_t *UTF16String)
{
memcpy(UTF16String, &m_pText, 2*m_pDialogReturn.numCharsResultString);
}
EKeyboardResult CKeyboard::RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode)
{
m_pFunc = Func;
m_lpParam = lpParam;
SetMode(1);
inputFieldInfo.message = (uint16_t *)Title;
inputFieldInfo.init_text = (uint16_t *)Text;
inputFieldInfo.limit_length = uiMaxChars;
m_fX = 0.0f;
m_fY = 0;
m_pDialogParam.allowOskPanelFlg = CELL_OSKDIALOG_PANELMODE_DEFAULT;
m_pDialogParam.firstViewPanel = CELL_OSKDIALOG_PANELMODE_DEFAULT;
switch (eMode)
{
case C_4JInput::EKeyboardMode_Alphabet_Extended:
m_pDialogParam.allowOskPanelFlg = CELL_OSKDIALOG_PANELMODE_LATIN;
m_pDialogParam.firstViewPanel = CELL_OSKDIALOG_PANELMODE_LATIN;
break;
case C_4JInput::EKeyboardMode_Alphabet:
m_pDialogParam.allowOskPanelFlg = CELL_OSKDIALOG_PANELMODE_ALPHABET;
m_pDialogParam.firstViewPanel = CELL_OSKDIALOG_PANELMODE_ALPHABET;
break;
case C_4JInput::EKeyboardMode_Password:
m_pDialogParam.allowOskPanelFlg = CELL_OSKDIALOG_PANELMODE_PASSWORD;
m_pDialogParam.firstViewPanel = CELL_OSKDIALOG_PANELMODE_PASSWORD;
break;
case C_4JInput::EKeyboardMode_Numeric:
m_pDialogParam.allowOskPanelFlg = CELL_OSKDIALOG_PANELMODE_NUMERAL;
m_pDialogParam.firstViewPanel = CELL_OSKDIALOG_PANELMODE_NUMERAL;
break;
}
m_pDialogParam.controlPoint.x = m_fX;
m_pDialogParam.prohibitFlgs = 0;
m_pDialogParam.controlPoint.y = m_fY;
m_pDialogReturn.result = CELL_OSKDIALOG_INPUT_FIELD_RESULT_OK;
m_pDialogReturn.numCharsResultString = uiMaxChars;
memset(m_pText, 0, sizeof(*m_pText));
m_pDialogReturn.pResultString = (uint16_t *)m_pText;
return EKeyboard_Pending;
}
void CKeyboard::DestroyKeyboard()
{
if (m_iMode == 4)
m_pFunc = NULL;
}
void CKeyboard::register_osk_callback()
{
cellOskDialogExtRegisterKeyboardEventHookCallback(3, &CKeyboard::OSK_KeyhookCallback);
}
bool CKeyboard::OSK_KeyhookCallback(CellOskDialogKeyMessage *keyMessage, unsigned int *action, void *pActionInfo)
{
*action = CELL_OSKDIALOG_CHANGE_NO_EVENT;
return false;
}
void CKeyboard::KeyboardEventsCallback(uint64_t status, uint64_t param, CKeyboard* userdata)
{
switch (status)
{
case CELL_SYSUTIL_OSKDIALOG_DISPLAY_CHANGED:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED");
if ( param == CELL_OSKDIALOG_DISPLAY_STATUS_HIDE )
{
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED\n");
InternalInputManager.DebugPrintf("Completed hide of OSK.\n");
}
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED\n");
break;
case CELL_SYSUTIL_OSKDIALOG_INPUT_DEVICE_CHANGED:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED\n");
if ( param == CELL_OSKDIALOG_INPUT_DEVICE_KEYBOARD )
{
InternalInputManager.DebugPrintf("Input device changed to keyboard.\n");
}
else if( param == CELL_OSKDIALOG_INPUT_DEVICE_PAD)
{
InternalInputManager.DebugPrintf("Input device changed to pad.\n");
}
break;
case CELL_SYSUTIL_OSKDIALOG_INPUT_CANCELED:
case CELL_SYSUTIL_OSKDIALOG_INPUT_ENTERED:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED\n");
break;
case CELL_SYSUTIL_OSKDIALOG_FINISHED:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED\n");
if ( userdata->GetMode() == 4 )
userdata->SetMode(5);
break;
case CELL_SYSUTIL_OSKDIALOG_LOADED:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_LOADED\n");
break;
case CELL_SYSUTIL_SYSTEM_MENU_CLOSE:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_OSKDIALOG_FINISHED\n");
InternalInputManager.DebugPrintf("CELL_SYSUTIL_SYSTEM_MENU_CLOSE\n");
break;
case CELL_SYSUTIL_SYSTEM_MENU_OPEN:
InternalInputManager.DebugPrintf("CELL_SYSUTIL_SYSTEM_MENU_OPEN\n");
break;
}
}
void CKeyboard::SetKeyboardLanguage()
{
int language;
cellSysutilGetSystemParamInt(CELL_SYSUTIL_SYSTEMPARAM_ID_LANG, &language);
switch (language)
{
case CELL_SYSUTIL_LANG_PORTUGUESE_BR:
m_iLanguage = 0x10000;
return;
case CELL_SYSUTIL_LANG_CHINESE_T:
case CELL_SYSUTIL_LANG_CHINESE_S:
m_iLanguage = 0x4000;
return;
case CELL_SYSUTIL_LANG_PORTUGUESE_PT:
m_iLanguage = 0x40;
return;
case CELL_SYSUTIL_LANG_ITALIAN:
m_iLanguage = 0x10;
return;
case CELL_SYSUTIL_LANG_GERMAN:
m_iLanguage = 0x1;
return;
case CELL_SYSUTIL_LANG_SPANISH:
m_iLanguage = 0x4;
return;
case CELL_SYSUTIL_LANG_FRENCH:
m_iLanguage = 0x8;
return;
case CELL_SYSUTIL_LANG_DUTCH:
case CELL_SYSUTIL_LANG_ENGLISH_US:
m_iLanguage = 0x2;
return;
case CELL_SYSUTIL_LANG_JAPANESE:
m_iLanguage = 0x200000;
return;
case CELL_SYSUTIL_LANG_KOREAN:
m_iLanguage = 0x1000;
return;
case CELL_SYSUTIL_LANG_RUSSIAN:
m_iLanguage = 0x80;
return;
}
m_iLanguage = 0x200000;
}
void CKeyboard::SetMode(int mode)
{
m_iMode = mode;
}
CKeyboard *CKeyboard::GetInstance()
{
return m_pInstance;
}
int CKeyboard::GetMode()
{
return m_iMode;
}
-51
View File
@@ -1,51 +0,0 @@
#pragma once
#include "4J_Input.h"
#include <sysutil/sysutil_common.h> // cellSysutilRegisterCallback
#include <sysutil/sysutil_oskdialog.h > // cellOskDialogUnloadAsync
#include <sysutil/sysutil_oskdialog_ext.h> // cellOskDialogExtRegisterKeyboardEventHookCallback
#include <sysutil/sysutil_sysparam.h> // cellSysutilGetSystemParamInt
#include <cell/sysmodule.h> // SYS_MEMORY_CONTAINER_ID_INVALID
class CKeyboard
{
public:
// PIEBOT: m_iMode is supposed to be using eKeyboardProcessState
// I'll leave that work to someone else.
enum eKeyboardProcessState
{
};
CKeyboard();
void Tick();
void GetText(uint16_t *UTF16String);
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode);
void DestroyKeyboard();
void register_osk_callback();
static bool OSK_KeyhookCallback(CellOskDialogKeyMessage *keyMessage, unsigned int *action, void *pActionInfo);
static void KeyboardEventsCallback(uint64_t status, uint64_t param, CKeyboard* userdata);
void SetKeyboardLanguage();
void SetMode(int mode);
CKeyboard *GetInstance();
int GetMode();
private:
int m_iMode;
int (*m_pFunc)(LPVOID, const bool);
LPVOID m_lpParam;
CellOskDialogParam m_pDialogParam;
float m_fX;
float m_fY;
CellOskDialogInputFieldInfo inputFieldInfo;
CellOskDialogCallbackReturnParam m_pDialogReturn;
uint16_t *m_pText[513];
int m_iLanguage;
CKeyboard *m_pInstance;
int m_pTickCountdown;
};
+192 -10
View File
@@ -32,6 +32,7 @@ CKeyboard InternalKeyboard;
void C_4JInput::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC) void C_4JInput::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC)
{ {
InternalInputManager.Initialise(iInputStateC, ucMapC, ucActionC, ucMenuActionC); InternalInputManager.Initialise(iInputStateC, ucMapC, ucActionC, ucMenuActionC);
InternalKeyboard.Init();
} }
void C_4JInput::Tick(void) void C_4JInput::Tick(void)
@@ -39,6 +40,10 @@ void C_4JInput::Tick(void)
InternalInputManager.Tick(); InternalInputManager.Tick();
} }
void C_4JInput::TickKBM(void)
{
InternalKeyboard.Tick();
}
void C_4JInput::SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax) void C_4JInput::SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax)
{ {
InternalInputManager.SetDeadzoneAndMovementRange(uiDeadzone, uiMovementRangeMax); InternalInputManager.SetDeadzoneAndMovementRange(uiDeadzone, uiMovementRangeMax);
@@ -74,6 +79,11 @@ unsigned int C_4JInput::GetValue(int iPad, unsigned char ucAction, bool bRepeat)
return InternalInputManager.GetValue(iPad, ucAction, bRepeat); return InternalInputManager.GetValue(iPad, ucAction, bRepeat);
} }
void C_4JInput::MapTouchInput(int iPad, int button)
{
InternalInputManager.MapTouchInput(iPad, button);
}
bool C_4JInput::ButtonPressed(int iPad, unsigned char ucAction) bool C_4JInput::ButtonPressed(int iPad, unsigned char ucAction)
{ {
return InternalInputManager.ButtonPressed(iPad, ucAction); return InternalInputManager.ButtonPressed(iPad, ucAction);
@@ -119,14 +129,9 @@ bool C_4JInput::IsPadConnected(int iPad)
return InternalInputManager.IsPadConnected(iPad); return InternalInputManager.IsPadConnected(iPad);
} }
void C_4JInput::SetSelectBackSwapped(bool swapped) bool C_4JInput::IsPadActive(int iPad)
{ {
InternalInputManager.SetSelectBackSwapped(swapped); return InternalInputManager.IsPadActive(iPad);
}
bool C_4JInput::IsSelectBackSwapped()
{
return InternalInputManager.IsSelectBackSwapped();
} }
float C_4JInput::GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay) float C_4JInput::GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay)
@@ -164,6 +169,171 @@ void C_4JInput::SetMenuDisplayed(int iPad, bool bVal)
InternalInputManager.SetMenuDisplayed(iPad, bVal); InternalInputManager.SetMenuDisplayed(iPad, bVal);
} }
void C_4JInput::OnKeyDown(int vkCode)
{
InternalKeyboard.OnKeyDown(vkCode);
}
void C_4JInput::OnKeyUp(int vkCode)
{
InternalKeyboard.OnKeyUp(vkCode);
}
void C_4JInput::OnChar(wchar_t ch)
{
InternalKeyboard.OnChar(ch);
}
bool C_4JInput::IsKeyDown(int vkCode) const
{
return InternalKeyboard.IsKeyDown(vkCode);
}
bool C_4JInput::IsKeyPressed(int vkCode) const
{
return InternalKeyboard.IsKeyPressed(vkCode);
}
bool C_4JInput::IsKeyReleased(int vkCode) const
{
return InternalKeyboard.IsKeyReleased(vkCode);
}
int C_4JInput::GetMouseX() const
{
return InternalKeyboard.GetMouseX();
}
int C_4JInput::GetMouseY() const
{
return InternalKeyboard.GetMouseY();
}
bool C_4JInput::IsMouseLDown() const
{
return InternalKeyboard.IsLButtonDown();
}
bool C_4JInput::IsLButtonPressed() const
{
return InternalKeyboard.IsLButtonPressed();
}
bool C_4JInput::IsLButtonReleased() const
{
return InternalKeyboard.IsLButtonReleased();
}
bool C_4JInput::IsMouseRDown() const
{
return InternalKeyboard.IsRButtonDown();
}
bool C_4JInput::IsRButtonPressed() const
{
return InternalKeyboard.IsRButtonPressed();
}
bool C_4JInput::IsRButtonReleased() const
{
return InternalKeyboard.IsRButtonReleased();
}
int C_4JInput::GetMouseWheelDelta() const
{
return InternalKeyboard.GetMouseWheelDelta();
}
wchar_t C_4JInput::GetLastChar() const
{
return InternalKeyboard.GetLastChar();
}
bool C_4JInput::HasChar() const
{
return InternalKeyboard.HasChar();
}
wchar_t C_4JInput::GetChar(int index) const
{
return InternalKeyboard.GetChar(index);
}
void C_4JInput::OnMouseMove(int x, int y)
{
InternalKeyboard.OnMouseMove(x, y);
}
void C_4JInput::OnRawMouseDelta(int dx, int dy)
{
InternalKeyboard.OnRawMouseDelta(dx, dy);
}
void C_4JInput::OnLButtonDown(int x, int y)
{
InternalKeyboard.OnLButtonDown(x, y);
}
void C_4JInput::OnLButtonUp(int x, int y)
{
InternalKeyboard.OnLButtonUp(x, y);
}
void C_4JInput::OnRButtonDown(int x, int y)
{
InternalKeyboard.OnRButtonDown(x, y);
}
void C_4JInput::OnRButtonUp(int x, int y)
{
InternalKeyboard.OnRButtonUp(x, y);
}
void C_4JInput::OnMButtonDown(int x, int y)
{
InternalKeyboard.OnMButtonDown(x, y);
}
void C_4JInput::OnMButtonUp(int x, int y)
{
InternalKeyboard.OnMButtonUp(x, y);
}
void C_4JInput::OnMouseWheel(int delta, int x, int y)
{
InternalKeyboard.OnMouseWheel(delta, x, y);
}
void C_4JInput::SetMouseCaptured(bool captured)
{
InternalKeyboard.SetMouseCaptured(captured);
}
void C_4JInput::SetWindowFocused(bool focused)
{
InternalKeyboard.SetWindowFocused(focused);
}
bool C_4JInput::IsMouseCaptured() const
{
return InternalKeyboard.IsMouseCaptured();
}
void C_4JInput::SetMousePos(int x, int y)
{
InternalKeyboard.SetMousePos(x, y);
}
int C_4JInput::GetRawMouseX() const
{
return InternalKeyboard.GetRawMouseX();
}
int C_4JInput::GetRawMouseY() const
{
return InternalKeyboard.GetRawMouseY();
}
EKeyboardResult C_4JInput::RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam, EKeyboardResult C_4JInput::RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam,
C_4JInput::EKeyboardMode eMode) C_4JInput::EKeyboardMode eMode)
{ {
@@ -175,9 +345,21 @@ void C_4JInput::GetText(uint16_t *UTF16String)
InternalKeyboard.GetText(UTF16String); InternalKeyboard.GetText(UTF16String);
} }
EControllerType C_4JInput::GetControllerType(int iPad) const char* C_4JInput::PollControllerType(int ipad) {
{ const char* GamepadType = InternalInputManager.GetGamepadType(ipad);
return InternalInputManager.GetControllerType(iPad); //strk13r - mrow mrow mrow mrowwwwwwwwwww, i am silly kitty
if (!GamepadType)
return "UNKNOWN";
if (strcmp(GamepadType, "SWITCH_PRO") == 0 ||
strcmp(GamepadType, "JOYCON_PAIR") == 0 ||
strcmp(GamepadType, "JOYCON_L") == 0 ||
strcmp(GamepadType, "JOYCON_R") == 0)
{
return "SWITCH";
}
return GamepadType; // str1k3r - if not one of the switch types, return the type itself
} }
bool C_4JInput::VerifyStrings(WCHAR **pwStringA, int iStringC, int (*Func)(LPVOID, STRING_VERIFY_RESPONSE *), LPVOID lpParam) bool C_4JInput::VerifyStrings(WCHAR **pwStringA, int iStringC, int (*Func)(LPVOID, STRING_VERIFY_RESPONSE *), LPVOID lpParam)
+9 -11
View File
@@ -23,7 +23,6 @@ SOFTWARE.
*/ */
#include "INP_ForceFeedback.h" #include "INP_ForceFeedback.h"
#include "INP_Main.h"
void CForceFeedback::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC) void CForceFeedback::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC)
{ {
@@ -86,8 +85,8 @@ void CForceFeedback::AddRumble(unsigned int uiPad, WORD leftMotorSpeed, WORD rig
QueryPerformanceCounter(&qwCurrentTime); QueryPerformanceCounter(&qwCurrentTime);
pRumble->m_TimeLeft = (m_TicksPerSecond * fSeconds) + qwCurrentTime.QuadPart; pRumble->m_TimeLeft = (m_TicksPerSecond * fSeconds) + qwCurrentTime.QuadPart;
pRumble->m_LowFreqRumble = leftMotorSpeed; pRumble->m_RumbleData.wLeftMotorSpeed = leftMotorSpeed;
pRumble->m_HighFreqRumble = rightMotorSpeed; pRumble->m_RumbleData.wRightMotorSpeed = rightMotorSpeed;
pRumble->m_Pad = uiPad; pRumble->m_Pad = uiPad;
m_RumbleList.AddToTail(pRumble); m_RumbleList.AddToTail(pRumble);
@@ -109,15 +108,14 @@ void CForceFeedback::Tick(void)
LinkedList::_LL_NODE *pRumbleNode = m_RumbleList.m_Head; LinkedList::_LL_NODE *pRumbleNode = m_RumbleList.m_Head;
while (pRumbleNode) while (pRumbleNode)
{ {
RUMBLE_EFFECT *pRumble = pRumbleNode->GetDataAs<RUMBLE_EFFECT>(); if (pRumbleNode->GetDataAs<RUMBLE_EFFECT>()->m_TimeLeft <= qwCurrentTime.QuadPart)
SDL_Gamepad* m_pGamepad = InternalInputManager.m_Joypads[pRumble->m_Pad].m_pGamepad;
if (pRumble->m_TimeLeft <= qwCurrentTime.QuadPart)
{ {
pRumble->m_LowFreqRumble = 0; RUMBLE_EFFECT *pRumble = pRumbleNode->GetDataAs<RUMBLE_EFFECT>();
pRumble->m_HighFreqRumble = 0;
if (m_pGamepad != nullptr) SDL_RumbleGamepad(m_pGamepad, 0, 0, 0); pRumble->m_RumbleData.wLeftMotorSpeed = 0;
pRumble->m_RumbleData.wRightMotorSpeed = 0;
XInputSetState(pRumble->m_Pad, &pRumble->m_RumbleData);
m_RumbleList.RemoveNode(pRumbleNode); m_RumbleList.RemoveNode(pRumbleNode);
@@ -129,7 +127,7 @@ void CForceFeedback::Tick(void)
} }
else else
{ {
if (m_pGamepad != nullptr) SDL_RumbleGamepad(m_pGamepad, pRumble->m_LowFreqRumble, pRumble->m_HighFreqRumble, 30000); XInputSetState(pRumbleNode->GetDataAs<RUMBLE_EFFECT>()->m_Pad, &pRumbleNode->GetDataAs<RUMBLE_EFFECT>()->m_RumbleData);
pRumbleNode = pRumbleNode->m_Next; pRumbleNode = pRumbleNode->m_Next;
} }
} }
+2 -4
View File
@@ -24,7 +24,6 @@ SOFTWARE.
*/ */
#include "LinkedList.h" #include "LinkedList.h"
#include "SDL3\SDL_gamepad.h"
#define MAX_EFFECTS 10 #define MAX_EFFECTS 10
@@ -39,10 +38,9 @@ public:
struct RUMBLE_EFFECT struct RUMBLE_EFFECT
{ {
int m_Pad; DWORD m_Pad;
uint64_t m_TimeLeft; uint64_t m_TimeLeft;
uint16_t m_LowFreqRumble; XINPUT_VIBRATION m_RumbleData;
uint16_t m_HighFreqRumble;
WORD unk; WORD unk;
}; };
+225 -1
View File
@@ -24,7 +24,231 @@ SOFTWARE.
#include "INP_Keyboard.h" #include "INP_Keyboard.h"
void CKeyboard::Tick(void) {} CKeyboard::CKeyboard()
{
m_lParam = nullptr;
m_onInput = nullptr;
ZeroMemory(m_chrText, sizeof(m_chrText));
memset(m_keysPrev, 0, sizeof(m_keysPrev));
memset(m_keysCurr, 0, sizeof(m_keysCurr));
m_mouseX = m_mouseY = 0;
m_lButtonPrev = m_lButtonCurr = false;
m_rButtonPrev = m_rButtonCurr = false;
m_mButtonPrev = m_mButtonCurr = false;
m_mouseWheel = 0;
memset(m_charBuffer, 0, sizeof(m_charBuffer));
m_charCount = 0;
m_mouseCaptured = false;
m_mouseDeltaX = m_mouseDeltaY = 0;
m_windowFocused = true;
}
void CKeyboard::Init()
{
RAWINPUTDEVICE rid;
rid.usUsagePage = 0x01; // HID_USAGE_PAGE_GENERIC
rid.usUsage = 0x02; // HID_USAGE_GENERIC_MOUSE
rid.dwFlags = 0;
rid.hwndTarget = g_hWnd;
RegisterRawInputDevices(&rid, 1, sizeof(rid));
}
void CKeyboard::Tick(void)
{
memcpy(m_keysPrev, m_keysCurr, sizeof(m_keysCurr));
m_lButtonPrev = m_lButtonCurr;
m_rButtonPrev = m_rButtonCurr;
m_mButtonPrev = m_mButtonCurr;
m_mouseWheel = 0;
m_charCount = 0;
m_mouseDeltaX = m_mouseDeltaAccumX;
m_mouseDeltaY = m_mouseDeltaAccumY;
m_mouseDeltaAccumX = 0;
m_mouseDeltaAccumY = 0;
if (m_mouseCaptured && g_hWnd && m_windowFocused && g_hWnd)
{
RECT rc;
GetClientRect(g_hWnd, &rc);
POINT center;
center.x = (rc.right - rc.left) / 2;
center.y = (rc.bottom - rc.top) / 2;
ClientToScreen(g_hWnd, &center);
SetCursorPos(center.x, center.y);
}
}
void CKeyboard::OnKeyDown(int vkCode)
{
if (vkCode >= 0 && vkCode < MAX_KEYS)
{
m_keysCurr[vkCode] = true;
}
}
void CKeyboard::OnKeyUp(int vkCode)
{
if (vkCode >= 0 && vkCode < MAX_KEYS)
{
m_keysCurr[vkCode] = false;
}
}
void CKeyboard::OnChar(wchar_t ch)
{
if (m_charCount < MAX_CHARS_PER_FRAME)
{
m_charBuffer[m_charCount++] = ch;
}
}
bool CKeyboard::IsKeyDown(int vkCode) const
{
if (vkCode >= 0 && vkCode < MAX_KEYS)
return m_keysCurr[vkCode];
return false;
}
bool CKeyboard::IsKeyPressed(int vkCode) const
{
if (vkCode >= 0 && vkCode < MAX_KEYS)
return m_keysCurr[vkCode] && !m_keysPrev[vkCode];
return false;
}
bool CKeyboard::IsKeyReleased(int vkCode) const
{
if (vkCode >= 0 && vkCode < MAX_KEYS)
return !m_keysCurr[vkCode] && m_keysPrev[vkCode];
return false;
}
void CKeyboard::OnMouseMove(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
}
void CKeyboard::OnRawMouseDelta(int dx, int dy)
{
m_mouseDeltaAccumX += dx;
m_mouseDeltaAccumY += dy;
}
void CKeyboard::OnLButtonDown(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_lButtonCurr = true;
}
void CKeyboard::OnLButtonUp(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_lButtonCurr = false;
}
void CKeyboard::OnRButtonDown(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_rButtonCurr = true;
}
void CKeyboard::OnRButtonUp(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_rButtonCurr = false;
}
void CKeyboard::OnMButtonDown(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_mButtonCurr = true;
}
void CKeyboard::OnMButtonUp(int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_mButtonCurr = false;
}
void CKeyboard::OnMouseWheel(int delta, int x, int y)
{
m_mouseX = x;
m_mouseY = y;
m_mouseWheel += delta;
}
void CKeyboard::SetMouseCaptured(bool grabbed)
{
if (m_mouseCaptured == grabbed)
return;
m_mouseCaptured = grabbed;
if (grabbed && g_hWnd)
{
while (ShowCursor(FALSE) >= 0) {}
RECT rc;
GetClientRect(g_hWnd, &rc);
POINT topLeft = { rc.left, rc.top };
POINT bottomRight = { rc.right, rc.bottom };
ClientToScreen(g_hWnd, &topLeft);
ClientToScreen(g_hWnd, &bottomRight);
RECT clipRect = { topLeft.x, topLeft.y, bottomRight.x, bottomRight.y };
ClipCursor(&clipRect);
GetClientRect(g_hWnd, &rc);
POINT center;
center.x = (rc.right - rc.left) / 2;
center.y = (rc.bottom - rc.top) / 2;
ClientToScreen(g_hWnd, &center);
SetCursorPos(center.x, center.y);
m_mouseDeltaAccumX = 0;
m_mouseDeltaAccumY = 0;
}
else if (!grabbed && g_hWnd)
{
while (ShowCursor(TRUE) < 0) {}
ClipCursor(nullptr);
}
}
void CKeyboard::SetWindowFocused(bool focused)
{
m_windowFocused = focused;
if (focused)
{
if (m_mouseCaptured)
{
while (ShowCursor(FALSE) >= 0) {}
RECT rc;
GetClientRect(g_hWnd, &rc);
POINT center;
center.x = (rc.right - rc.left) / 2;
center.y = (rc.bottom - rc.top) / 2;
ClientToScreen(g_hWnd, &center);
SetCursorPos(center.x, center.y);
}
else
{
while (ShowCursor(TRUE) < 0) {}
ClipCursor(nullptr);
}
}
else
{
while (ShowCursor(TRUE) < 0) {}
ClipCursor(nullptr);
}
}
EKeyboardResult CKeyboard::RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam, EKeyboardResult CKeyboard::RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam,
C_4JInput::EKeyboardMode eMode) C_4JInput::EKeyboardMode eMode)
+76 -2
View File
@@ -32,6 +32,8 @@ void SeedEditBox();
class CKeyboard class CKeyboard
{ {
public: public:
CKeyboard();
enum EKeyboardProcessState enum EKeyboardProcessState
{ {
}; };
@@ -40,11 +42,83 @@ public:
{ {
}; };
void Tick(void); void Init();
void Tick();
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam, void OnKeyDown(int vkCode);
void OnKeyUp(int vkCode);
void OnChar(wchar_t ch);
void OnMouseMove(int x, int y);
void OnRawMouseDelta(int dx, int dy);
void OnLButtonDown(int x, int y);
void OnLButtonUp(int x, int y);
void OnRButtonDown(int x, int y);
void OnRButtonUp(int x, int y);
void OnMButtonDown(int x, int y);
void OnMButtonUp(int x, int y);
void OnMouseWheel(int delta, int x, int y);
bool IsKeyDown(int vkCode) const;
bool IsKeyPressed(int vkCode) const;
bool IsKeyReleased(int vkCode) const;
int GetMouseX() const { return m_mouseX; }
int GetMouseY() const { return m_mouseY; }
int GetRawMouseX() const { return m_mouseDeltaX; }
int GetRawMouseY() const { return m_mouseDeltaY; }
bool IsLButtonDown() const { return m_lButtonCurr; }
bool IsLButtonPressed() const { return m_lButtonCurr && !m_lButtonPrev; }
bool IsLButtonReleased() const { return !m_lButtonCurr && m_lButtonPrev; }
bool IsRButtonDown() const { return m_rButtonCurr; }
bool IsRButtonPressed() const { return m_rButtonCurr && !m_rButtonPrev; }
bool IsRButtonReleased() const { return !m_rButtonCurr && m_rButtonPrev; }
int GetMouseWheelDelta() const { return m_mouseWheel; }
wchar_t GetLastChar() const { return m_charCount > 0 ? m_charBuffer[0] : 0; }
bool HasChar() const { return m_charCount > 0; }
int GetCharCount() const { return m_charCount; }
wchar_t GetChar(int index) const { return (index >= 0 && index < m_charCount) ? m_charBuffer[index] : 0; }
void SetMouseCaptured(bool captured);
void SetWindowFocused(bool focused);
bool IsMouseCaptured() const { return m_mouseCaptured; }
void SetMousePos(int x, int y) { m_mouseX = x; m_mouseY = y; }
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int (*Func)(LPVOID, const bool), LPVOID lpParam,
C_4JInput::EKeyboardMode eMode); C_4JInput::EKeyboardMode eMode);
void GetText(uint16_t *UTF16String); void GetText(uint16_t *UTF16String);
BYTE gap0[0x68]; BYTE gap0[0x68];
private:
static const int MAX_KEYS = 256;
static const int MAX_CHARS_PER_FRAME = 32;
bool m_keysPrev[MAX_KEYS];
bool m_keysCurr[MAX_KEYS];
int m_mouseX, m_mouseY;
bool m_lButtonPrev, m_lButtonCurr;
bool m_rButtonPrev, m_rButtonCurr;
bool m_mButtonPrev, m_mButtonCurr;
int m_mouseWheel;
wchar_t m_charBuffer[MAX_CHARS_PER_FRAME];
int m_charCount;
bool m_windowFocused;
bool m_mouseCaptured;
int m_mouseDeltaX, m_mouseDeltaY;
int m_mouseDeltaAccumX, m_mouseDeltaAccumY;
wchar_t m_chrText[128];
LPVOID m_lParam;
int (*m_onInput)(LPVOID, LPCWSTR);
}; };
+42 -54
View File
@@ -29,9 +29,6 @@ CInput InternalInputManager;
CInput::CInput() CInput::CInput()
{ {
m_Keyboard = CKeyboard();
m_bSelectBackSwapped = false;
m_uiSigninJoypadMask = 0; m_uiSigninJoypadMask = 0;
for (int i = 0; i < 4; ++i) for (int i = 0; i < 4; ++i)
m_bIsMenuDisplayed[i] = 0; m_bIsMenuDisplayed[i] = 0;
@@ -78,6 +75,8 @@ void CInput::Initialise(int iInputStateC, unsigned char ucMapC, unsigned char uc
m_Joypads[i].m_pucLeftTriggerAxisMap = &m_Joypads[i].m_ucLeftTriggerState; m_Joypads[i].m_pucLeftTriggerAxisMap = &m_Joypads[i].m_ucLeftTriggerState;
m_Joypads[i].m_pucRightTriggerAxisMap = &m_Joypads[i].m_ucRightTriggerState; m_Joypads[i].m_pucRightTriggerAxisMap = &m_Joypads[i].m_ucRightTriggerState;
m_Joypads[i].m_fSensitivity = 1.0f; m_Joypads[i].m_fSensitivity = 1.0f;
m_iTouchInputButton[i] = 0;
} }
m_JoypadMap = (unsigned int **)operator new[](ucMapC * sizeof(int *)); m_JoypadMap = (unsigned int **)operator new[](ucMapC * sizeof(int *));
@@ -96,7 +95,6 @@ void CInput::Tick(void)
{ {
HandleGamepadEvents(); HandleGamepadEvents();
UpdateJoypads(); UpdateJoypads();
m_Keyboard.Tick();
} }
void CInput::SetJoypadValues(JOYPAD *pThisPad) void CInput::SetJoypadValues(JOYPAD *pThisPad)
@@ -148,15 +146,6 @@ void CInput::SetJoypadValues(JOYPAD *pThisPad)
pThisPad->m_uiButtons |= _360_JOY_BUTTON_BACK; pThisPad->m_uiButtons |= _360_JOY_BUTTON_BACK;
} }
//str1k3r - Only check the touchpad if we have one
if (SDL_GetNumGamepadTouchpads(pGamePad) > 0)
{
if (SDL_GetGamepadButton(pGamePad, SDL_GAMEPAD_BUTTON_TOUCHPAD))
{
pThisPad->m_uiButtons |= _PS_JOY_BUTTON_TOUCHPAD;
}
}
if (SDL_GetGamepadButton(pGamePad, SDL_GAMEPAD_BUTTON_LEFT_STICK)) if (SDL_GetGamepadButton(pGamePad, SDL_GAMEPAD_BUTTON_LEFT_STICK))
{ {
pThisPad->m_uiButtons |= _360_JOY_BUTTON_LTHUMB; pThisPad->m_uiButtons |= _360_JOY_BUTTON_LTHUMB;
@@ -322,24 +311,14 @@ unsigned int CInput::GetGameJoypadMaps(unsigned char ucMap, unsigned char ucActi
return m_JoypadMap[ucMap][ucAction]; return m_JoypadMap[ucMap][ucAction];
} }
//str1k3r - renamed to match the Orbis Input lib, why did i rename it cause tism const char* CInput::GetGamepadType(int iPad)
EControllerType CInput::GetControllerType(int iPad)
{ {
//str1k3r - if the pad is connected then check the type, if we are the same type or we arent connected return the last type if (!m_Joypads[iPad].m_pGamepad)
if(InternalInputManager.IsPadConnected(iPad)) {
{ return "UNKNOWN";
EControllerType ControllerType = GetControllerName(SDL_GetGamepadType(m_Joypads[iPad].m_pGamepad)); }
if(ControllerType != m_LastControllerType) return GamepadTypeName(SDL_GetGamepadType(m_Joypads[iPad].m_pGamepad));
{
m_LastControllerType = ControllerType;
return ControllerType;
}
return m_LastControllerType;
}
return m_LastControllerType;
} }
void CInput::SetJoypadMapVal(int iPad, unsigned char ucMap) void CInput::SetJoypadMapVal(int iPad, unsigned char ucMap)
@@ -353,6 +332,11 @@ unsigned char CInput::GetJoypadMapVal(int iPad)
return m_Joypads[iPad].m_ucMappingValue; return m_Joypads[iPad].m_ucMappingValue;
} }
void CInput::MapTouchInput(int iPad, int button)
{
m_iTouchInputButton[iPad] |= button;
}
void CInput::SetJoypadStickAxisMap(int iPad, unsigned int uiFrom, unsigned int uiTo) void CInput::SetJoypadStickAxisMap(int iPad, unsigned int uiFrom, unsigned int uiTo)
{ {
float *pfTo = nullptr; float *pfTo = nullptr;
@@ -420,17 +404,9 @@ bool CInput::IsPadConnected(int iPad)
return m_Joypads[iPad].m_bIsConnected; return m_Joypads[iPad].m_bIsConnected;
} }
void CInput::SetSelectBackSwapped(bool swapped) bool CInput::IsPadActive(int iPad)
{ {
if(m_bSelectBackSwapped != swapped) return m_Joypads[iPad].m_bControllerActive;
{
m_bSelectBackSwapped = swapped;
}
}
bool CInput::IsSelectBackSwapped()
{
return m_bSelectBackSwapped;
} }
void CInput::SetSigninJoypadMask(unsigned int mask) void CInput::SetSigninJoypadMask(unsigned int mask)
@@ -789,27 +765,39 @@ bool CInput::UpdateJoypads()
if (pThisPad->m_bIsConnected) if (pThisPad->m_bIsConnected)
{ {
SetJoypadValues(pThisPad); SetJoypadValues(pThisPad);
pThisPad->m_uiButtonsPressed = ~pThisPad->m_uiOldButtons & pThisPad->m_uiButtons;
pThisPad->m_uiButtonsReleased = ~pThisPad->m_uiButtons & pThisPad->m_uiOldButtons;
for (int bit = 0; bit < 24; ++bit)
{
if ((pThisPad->m_uiButtonsPressed & (1 << bit)) != 0)
{
GetStartTime(i, bit);
}
else if ((pThisPad->m_uiButtons & (1 << bit)) != 0)
{
UpdateTime(i, bit);
}
}
} }
else if (pThisPad->m_bWasConnected) else if (pThisPad->m_bWasConnected)
{ {
ClearJoypadValues(pThisPad); ClearJoypadValues(pThisPad);
} }
if (m_iTouchInputButton[i])
{
pThisPad->m_uiButtons |= m_iTouchInputButton[i];
}
m_iTouchInputButton[i] = 0;
pThisPad->m_uiButtonsPressed = ~pThisPad->m_uiOldButtons & pThisPad->m_uiButtons;
pThisPad->m_uiButtonsReleased = ~pThisPad->m_uiButtons & pThisPad->m_uiOldButtons;
for (int bit = 0; bit < 24; ++bit)
{
if ((pThisPad->m_uiButtonsPressed & (1 << bit)) != 0)
{
GetStartTime(i, bit);
}
else if ((pThisPad->m_uiButtons & (1 << bit)) != 0)
{
UpdateTime(i, bit);
}
}
if (pThisPad->m_uiButtonsPressed)
pThisPad->m_bControllerActive = true;
else
pThisPad->m_bControllerActive = false;
if (m_pDebugSequenceFn && (pThisPad->m_uiButtonsPressed & (_360_JOY_BUTTON_A | _360_JOY_BUTTON_B | _360_JOY_BUTTON_X | _360_JOY_BUTTON_Y | if (m_pDebugSequenceFn && (pThisPad->m_uiButtonsPressed & (_360_JOY_BUTTON_A | _360_JOY_BUTTON_B | _360_JOY_BUTTON_X | _360_JOY_BUTTON_Y |
_360_JOY_BUTTON_RB | _360_JOY_BUTTON_LB)) != 0) _360_JOY_BUTTON_RB | _360_JOY_BUTTON_LB)) != 0)
{ {
+25 -26
View File
@@ -31,6 +31,26 @@ SOFTWARE.
class CInput class CInput
{ {
private:
const char* GamepadTypeName(SDL_GamepadType type)
{
switch (type)
{
case SDL_GAMEPAD_TYPE_UNKNOWN: return "UNKNOWN";
case SDL_GAMEPAD_TYPE_GAMECUBE: return "GAMECUBE";
case SDL_GAMEPAD_TYPE_STANDARD: return "STANDARD";
case SDL_GAMEPAD_TYPE_XBOX360: return "XBOX360";
case SDL_GAMEPAD_TYPE_XBOXONE: return "XBOXONE";
case SDL_GAMEPAD_TYPE_PS3: return "PS3";
case SDL_GAMEPAD_TYPE_PS4: return "PS4";
case SDL_GAMEPAD_TYPE_PS5: return "PS5";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO: return "SWITCH_PRO";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT: return "JOYCON_L";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT: return "JOYCON_R";
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return "JOYCON_PAIR";
default: return "UNKNOWN";
}
}
public: public:
struct JOYPAD struct JOYPAD
{ {
@@ -38,6 +58,7 @@ public:
bool m_bIsConnected; bool m_bIsConnected;
bool m_bWasConnected; bool m_bWasConnected;
bool m_bHasConnected; bool m_bHasConnected;
bool m_bControllerActive;
unsigned int m_uiButtons; unsigned int m_uiButtons;
unsigned int m_uiOldButtons; unsigned int m_uiOldButtons;
@@ -101,16 +122,16 @@ public:
void SetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction, unsigned int uiActionVal); void SetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction, unsigned int uiActionVal);
unsigned int GetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction); unsigned int GetGameJoypadMaps(unsigned char ucMap, unsigned char ucAction);
EControllerType GetControllerType(int iPad); const char* GetGamepadType(int iPad);
void SetJoypadMapVal(int iPad, unsigned char ucMap); void SetJoypadMapVal(int iPad, unsigned char ucMap);
unsigned char GetJoypadMapVal(int iPad); unsigned char GetJoypadMapVal(int iPad);
void MapTouchInput(int iPad, int button);
void SetJoypadStickAxisMap(int iPad, unsigned int uiFrom, unsigned int uiTo); void SetJoypadStickAxisMap(int iPad, unsigned int uiFrom, unsigned int uiTo);
void SetJoypadStickTriggerMap(int iPad, unsigned int uiFrom, unsigned int uiTo); void SetJoypadStickTriggerMap(int iPad, unsigned int uiFrom, unsigned int uiTo);
bool IsPadConnected(int iPad); bool IsPadConnected(int iPad);
void SetSelectBackSwapped(bool swapped); bool IsPadActive(int iPad);
bool IsSelectBackSwapped();
void SetSigninJoypadMask(unsigned int mask); void SetSigninJoypadMask(unsigned int mask);
unsigned int GetValue(int iPad, unsigned char ucAction, bool bRepeat = false); unsigned int GetValue(int iPad, unsigned char ucAction, bool bRepeat = false);
bool IsSet(int iPad, unsigned char ucAction); bool IsSet(int iPad, unsigned char ucAction);
@@ -166,13 +187,10 @@ public:
unsigned int **m_JoypadMap; unsigned int **m_JoypadMap;
bool m_bSelectBackSwapped;
bool m_bJoypadMapArrayIsSetup; bool m_bJoypadMapArrayIsSetup;
unsigned int m_uiSigninJoypadMask; unsigned int m_uiSigninJoypadMask;
bool m_bIsMenuDisplayed[MAX_JOYPADS]; bool m_bIsMenuDisplayed[MAX_JOYPADS];
EControllerType m_LastControllerType;
CForceFeedback m_ForceFeedback; CForceFeedback m_ForceFeedback;
CKeyboard m_Keyboard; CKeyboard m_Keyboard;
@@ -188,26 +206,7 @@ public:
int (*m_pDebugSequenceFn)(void *); int (*m_pDebugSequenceFn)(void *);
LPVOID m_pDebugSequenceParam; LPVOID m_pDebugSequenceParam;
private: unsigned int m_iTouchInputButton[MAX_JOYPADS];
EControllerType GetControllerName(SDL_GamepadType type)
{
switch (type)
{
case SDL_GAMEPAD_TYPE_XBOX360: return EControllerType_Xbox360;
case SDL_GAMEPAD_TYPE_XBOXONE: return EControllerType_XboxOne;
case SDL_GAMEPAD_TYPE_PS3: return EControllerType_PS3;
case SDL_GAMEPAD_TYPE_PS4: return EControllerType_PS4;
case SDL_GAMEPAD_TYPE_PS5: return EControllerType_PS5;
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_PRO:
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_LEFT:
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_RIGHT:
case SDL_GAMEPAD_TYPE_NINTENDO_SWITCH_JOYCON_PAIR: return EControllerType_Switch;
case SDL_GAMEPAD_TYPE_GAMECUBE: return EControllerType_Gamecube;
case SDL_GAMEPAD_TYPE_STANDARD:
case SDL_GAMEPAD_TYPE_UNKNOWN:
default: return EControllerType_Default;
}
}
}; };
// Singleton // Singleton
+1 -18
View File
@@ -1,30 +1,13 @@
#ifndef PCH_H #ifndef PCH_H
#define PCH_H #define PCH_H
#ifdef _WIN64
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <Windows.h> #include <Windows.h>
#include <cstdint> #include <cstdint>
#include <assert.h> #include <assert.h>
#endif #include <Xinput.h>
#ifdef __ORBIS__
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <scebase.h>
#include <kernel.h>
#include <fios2.h>
#include <message_dialog.h>
#endif
#ifndef _XBOX
#include "extraX64.h" #include "extraX64.h"
#endif
#ifdef __PS3__
#include "Ps3Types.h"
#endif
#endif //PCH_H #endif //PCH_H
+80 -263
View File
@@ -1,33 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Durango"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ORBIS">
<Configuration>Debug</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|PS3">
<Configuration>Debug</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Durango"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ORBIS">
<Configuration>Release</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|PS3">
<Configuration>Release</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
@@ -35,170 +19,21 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="Durango\4J_Profile.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Durango\Durango_PlayerUID.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Durango\PRO_Data.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Durango\PRO_Main.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Durango\PRO_Sys.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="stdafx.cpp" /> <ClCompile Include="stdafx.cpp" />
<ClCompile Include="Windows64\4J_Profile.cpp"> <ClCompile Include="Windows64\4J_Profile.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild> <ClCompile Include="Windows64\PRO_AwardManager.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild> <ClCompile Include="Windows64\PRO_Data.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\PRO_Main.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\PRO_RichPresence.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\PRO_Sys.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\PRO_AwardManager.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\PRO_Data.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\PRO_Main.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\PRO_RichPresence.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\PRO_Sys.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="Durango\Durango_PlayerUID.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Durango\PRO_Data.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Durango\PRO_Main.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Durango\PRO_Sys.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="stdafx.h" /> <ClInclude Include="stdafx.h" />
<ClInclude Include="Windows64\PRO_AwardManager.h"> <ClInclude Include="Windows64\PRO_AwardManager.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild> <ClInclude Include="Windows64\PRO_Data.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild> <ClInclude Include="Windows64\PRO_Main.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\PRO_RichPresence.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\PRO_Sys.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\PRO_Data.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\PRO_Main.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\PRO_RichPresence.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\PRO_Sys.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{C3833C67-05E4-4D6C-8707-22F95B6939E4}</ProjectGuid> <ProjectGuid>{C3833C67-05E4-4D6C-8707-22F95B6939E4}</ProjectGuid>
@@ -206,12 +41,25 @@
<RootNamespace>My4J_Profile</RootNamespace> <RootNamespace>My4J_Profile</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
@@ -219,78 +67,51 @@
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<PlatformToolset>v110</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<PlatformToolset>v110</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
<PlatformToolset>SNC</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetName>$(ProjectName)_d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>$(ProjectName)_d</TargetName> <TargetName>$(ProjectName)_d</TargetName>
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>$(ProjectName)_r</TargetName>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>$(ProjectName)_r</TargetName> <TargetName>$(ProjectName)_r</TargetName>
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<TargetExt>.lib</TargetExt>
<ExecutablePath>$(Console_SdkRoot)bin;$(VCInstallDir)bin\x86_amd64;$(VCInstallDir)bin;$(WindowsSDK_ExecutablePath_x86);$(VSInstallDir)Common7\Tools\bin;$(VSInstallDir)Common7\tools;$(VSInstallDir)Common7\ide;$(ProgramFiles)\HTML Help Workshop;$(MSBuildToolsPath32);$(FxCopDir);$(PATH);</ExecutablePath>
<ReferencePath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</ReferencePath>
<LibraryPath>$(Console_SdkLibPath)</LibraryPath>
<LibraryWPath>$(Console_SdkLibPath);$(Console_SdkWindowsMetadataPath)</LibraryWPath>
<IncludePath>$(Console_SdkIncludeRoot)</IncludePath>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
@@ -300,7 +121,7 @@
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild> <MinimalRebuild>false</MinimalRebuild>
</ClCompile> </ClCompile>
@@ -309,20 +130,17 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>Full</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WINDOWS64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -331,27 +149,26 @@
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<AdditionalIncludeDirectories>../Headers/Durango;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <WarningLevel>Level3</WarningLevel>
</ClCompile> <PrecompiledHeader>NotUsing</PrecompiledHeader>
</ItemDefinitionGroup> <Optimization>MaxSpeed</Optimization>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'"> <FunctionLevelLinking>true</FunctionLevelLinking>
<ClCompile> <IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../Headers/Durango;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINDOWS64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> <SDLCheck>true</SDLCheck>
</ItemDefinitionGroup> <AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'"> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<ClCompile> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>../Headers/Orbis;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<Warnings>NormalWarnings</Warnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<ClCompile>
<AdditionalIncludeDirectories>../Headers/PS3;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Warnings>NormalWarnings</Warnings>
</ClCompile> </ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
-27
View File
@@ -36,21 +36,6 @@
<ClCompile Include="stdafx.cpp"> <ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="Durango\PRO_Sys.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Durango\PRO_Main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Durango\PRO_Data.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Durango\4J_Profile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Durango\Durango_PlayerUID.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="Windows64\PRO_AwardManager.h"> <ClInclude Include="Windows64\PRO_AwardManager.h">
@@ -71,17 +56,5 @@
<ClInclude Include="stdafx.h"> <ClInclude Include="stdafx.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="Durango\PRO_Sys.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Durango\PRO_Main.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Durango\PRO_Data.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Durango\Durango_PlayerUID.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>
-22
View File
@@ -1,22 +0,0 @@
#include "4J_Profile.h"
#include "PRO_Main.h"
HRESULT C_4JProfile::GetLiveConnectionStatus()
{
return S_OK; //str1k3r - 4J you're strange for this
}
bool C_4JProfile::IsSystemUIDisplayed()
{
return 0;
}
bool C_4JProfile::LocaleIsUSorCanada()
{
return InternalProfileManager.m_Sys.LocaleIsUSorCanada();
}
bool C_4JProfile::LocaleIsChina()
{
return InternalProfileManager.m_Sys.LocaleIsChina();
}
View File
View File
-3
View File
@@ -1,3 +0,0 @@
#include "PRO_Main.h"
CProfile InternalProfileManager;
-14
View File
@@ -1,14 +0,0 @@
#pragma once
#include "PRO_Sys.h"
class CProfile
{
public:
CProfile();
CSys m_Sys;
};
// Singleton
extern CProfile InternalProfileManager;
-21
View File
@@ -1,21 +0,0 @@
#include "PRO_Sys.h"
CSys::CSys() {}
//str1k3r - 1:1 to decomp
bool CSys::LocaleIsUSorCanada()
{
GEOID UserGeoID;
UserGeoID = GetUserGeoID(GEOCLASS_NATION);
return UserGeoID == 39 || UserGeoID == 244;
}
//str1k3r - missing from TU18 Libs, added in TU19/20
bool CSys::LocaleIsChina()
{
GEOID UserGeoID;
UserGeoID = GetUserGeoID(GEOCLASS_NATION);
return UserGeoID == 45;
}
-13
View File
@@ -1,13 +0,0 @@
#pragma once
#include "4J_Profile.h"
class CSys
{
public:
CSys();
// Locale
bool LocaleIsUSorCanada();
bool LocaleIsChina();
};
+25 -99
View File
@@ -1,102 +1,28 @@
/*
MIT License
Copyright (c) 2026 Patoke
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
#include "4J_Profile.h" #include "4J_Profile.h"
#include "PRO_Main.h"
int C_4JProfile::GetLockedProfile() C_4JProfile ProfileManager;
{
return InternalProfileManager.GetLockedProfile();
}
void C_4JProfile::SetLockedProfile(int iProf)
{
InternalProfileManager.SetLockedProfile(iProf);
}
bool C_4JProfile::IsSignedIn(int iQuadrant)
{
return InternalProfileManager.m_Sys.IsSignedIn(iQuadrant);
}
bool C_4JProfile::IsSignedInLive(int iProf)
{
return InternalProfileManager.m_Sys.IsSignedInLive(iProf);
}
bool C_4JProfile::IsGuest(int iQuadrant)
{
return InternalProfileManager.m_Sys.IsGuest(iQuadrant);
}
bool C_4JProfile::AllowedToPlayMultiplayer(int iProf)
{
return InternalProfileManager.m_Sys.AllowedToPlayMultiplayer(iProf);
}
void C_4JProfile::LoadGamertag()
{
InternalProfileManager.m_Sys.LoadGamertag();
}
void C_4JProfile::SetFakeGamerTag(char *name)
{
InternalProfileManager.m_Sys.SetFakeGamertag(name);
}
char* C_4JProfile::GetGamertag(int iPad)
{
return InternalProfileManager.m_Sys.GetGamertag(iPad);
}
wstring C_4JProfile::GetDisplayName(int iPad)
{
return InternalProfileManager.m_Sys.GetDisplayName(iPad);
}
int C_4JProfile::GetPrimaryPad()
{
return InternalProfileManager.m_Sys.GetPrimaryPad();
}
void C_4JProfile::SetPrimaryPad(int iPad)
{
InternalProfileManager.m_Sys.SetPrimaryPad(iPad);
}
bool C_4JProfile::IsFullVersion()
{
return InternalProfileManager.m_Sys.IsFullVersion();
}
HRESULT C_4JProfile::GetLiveConnectionStatus()
{
return S_OK; //str1k3r - matches durango profile lib
}
bool C_4JProfile::IsSystemUIDisplayed()
{
return 0; //str1k3r - matches durango profile lib
}
void C_4JProfile::LoadSettings(void* gs, size_t gsSize)
{
InternalProfileManager.m_ProfileData.LoadSettings(gs, gsSize);
}
void C_4JProfile::SaveSettings(void* gs, size_t gsSize)
{
InternalProfileManager.m_ProfileData.SaveSettings(gs, gsSize);
}
void C_4JProfile::SetDebugFullOverride(bool bVal)
{
InternalProfileManager.m_Sys.SetDebugFullOverride(bVal);
}
bool C_4JProfile::LocaleIsUSorCanada()
{
return InternalProfileManager.m_Sys.LocaleIsUSorCanada();
}
bool C_4JProfile::LocaleIsChina()
{
return InternalProfileManager.m_Sys.LocaleIsChina();
}
+19 -42
View File
@@ -1,46 +1,23 @@
#include "PRO_Data.h" /*
#include "4J_Profile.h" MIT License
//C_4JProfile::PROFILESETTINGS * CProfileData::GetDashboardProfileSettings(int iPad) Copyright (c) 2026 Patoke
//{
// ; //str1k3r - stubbed out for now
//}
//str1k3r - GetSettings is basically snatched from smartCMD Permission is hereby granted, free of charge, to any person obtaining a copy
void GetSettings(wchar_t *outPath, DWORD size) of this software and associated documentation files (the "Software"), to deal
{ in the Software without restriction, including without limitation the rights
GetModuleFileNameW(NULL, outPath, size); //str1k3r - unlike smartCMD we use wide so we can handle non english characters to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
wchar_t *lastSlash = wcsrchr(outPath, '\\'); copies of the Software, and to permit persons to whom the Software is
if (lastSlash) *(lastSlash + 1) = '\0'; furnished to do so, subject to the following conditions:
wcsncat_s(outPath, size, L"settings.dat", _TRUNCATE);
}
void CProfileData::LoadSettings(void* gs, size_t gsSize) The above copyright notice and this permission notice shall be included in all
{ copies or substantial portions of the Software.
if (!gs || gsSize == 0) return;
wchar_t settingsPath[MAX_PATH] = {}; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
GetSettings(settingsPath, MAX_PATH); IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
FILE *file = NULL; AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
if (_wfopen_s(&file, settingsPath, L"rb") == 0 && file) //str1k3r - fun fact theres a version of fopen_s but for wide :3 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
{ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
fread(gs, 1, gsSize, file); SOFTWARE.
fclose(file); */
}
}
void CProfileData::SaveSettings(void* gs, size_t gsSize)
{
if (!gs || gsSize == 0) return;
wchar_t settingsPath[MAX_PATH] = {};
GetSettings(settingsPath, MAX_PATH);
FILE *file = NULL;
if (_wfopen_s(&file, settingsPath, L"wb") == 0 && file)
{
fwrite(gs, 1, gsSize, file);
fclose(file);
}
}
+22 -7
View File
@@ -1,9 +1,24 @@
#pragma once #pragma once
/*
MIT License
class CProfileData Copyright (c) 2026 Patoke
{
public: Permission is hereby granted, free of charge, to any person obtaining a copy
// SETTINGS of this software and associated documentation files (the "Software"), to deal
void LoadSettings(void* gs, size_t gsSize); in the Software without restriction, including without limitation the rights
void SaveSettings(void* gs, size_t gsSize); to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
}; copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
+19 -17
View File
@@ -1,21 +1,23 @@
#include "PRO_Main.h" /*
MIT License
CProfile InternalProfileManager; Copyright (c) 2026 Patoke
CProfile::CProfile() Permission is hereby granted, free of charge, to any person obtaining a copy
{ of this software and associated documentation files (the "Software"), to deal
m_LockedProfile = 0; in the Software without restriction, including without limitation the rights
} to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
int CProfile::GetLockedProfile() The above copyright notice and this permission notice shall be included in all
{ copies or substantial portions of the Software.
return m_LockedProfile;
}
void CProfile::SetLockedProfile(int iProf) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
{ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
if(m_LockedProfile != iProf) FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
{ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
m_LockedProfile = iProf; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
} OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
} SOFTWARE.
*/
+19 -17
View File
@@ -1,22 +1,24 @@
#pragma once #pragma once
/*
MIT License
#include "PRO_Sys.h" Copyright (c) 2026 Patoke
#include "PRO_Data.h"
class CProfile Permission is hereby granted, free of charge, to any person obtaining a copy
{ of this software and associated documentation files (the "Software"), to deal
public: in the Software without restriction, including without limitation the rights
CProfile(); to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
int GetLockedProfile(); The above copyright notice and this permission notice shall be included in all
void SetLockedProfile(int iProf); copies or substantial portions of the Software.
CSys m_Sys; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
CProfileData m_ProfileData; IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
private: AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
int m_LockedProfile; LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
}; OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
// Singleton */
extern CProfile InternalProfileManager;
+19 -138
View File
@@ -1,142 +1,23 @@
#include "PRO_Sys.h" /*
#include "4J_Input.h" MIT License
bool s_bProfileIsFullVersion = true; Copyright (c) 2026 Patoke
char fakeGamerTag[XUSER_NAME_SIZE] = "PlayerName";
wchar_t fakeGamerTagW[XUSER_NAME_SIZE] = L"PlayerName";
CSys::CSys() Permission is hereby granted, free of charge, to any person obtaining a copy
{ of this software and associated documentation files (the "Software"), to deal
m_iPrimaryPad = 0; in the Software without restriction, including without limitation the rights
} to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
bool CSys::IsSignedIn(int iQuadrant) The above copyright notice and this permission notice shall be included in all
{ copies or substantial portions of the Software.
return InputManager.IsPadConnected(iQuadrant); //str1k3r - since we dont sign in like consoles just check if the pad is connected
}
bool CSys::IsSignedInLive(int iProf) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
{ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
return InputManager.IsPadConnected(iProf); FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
} AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
//str1k3r - set every pad that isnt pad 0 as a guest OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
bool CSys::IsGuest(int iQuadrant) SOFTWARE.
{ */
if(iQuadrant == 0)
{
return false;
}
return true;
}
void CSys::LoadGamertag()
{
wchar_t exeDir[MAX_PATH] = {};
GetModuleFileNameW(NULL, exeDir, MAX_PATH);
wchar_t *lastSlash = wcsrchr(exeDir, '\\');
if (lastSlash) *(lastSlash + 1) = '\0';
wchar_t filePath[MAX_PATH] = {};
if(wcscpy_s(filePath, _countof(filePath), exeDir) != 0 || wcsncat_s(filePath, _countof(filePath), L"username.txt", _TRUNCATE) != 0)
{
return;
}
FILE *file = NULL;
if (_wfopen_s(&file, filePath, L"r") == 0 && file)
{
wchar_t buffer[128] = {};
if(fgetws(buffer, _countof(buffer), file))
{
size_t len = wcslen(buffer);
while (len > 0 && (buffer[len-1] == '\n' || buffer[len-1] == '\r' || buffer[len-1] == ' ')) buffer[--len] = '\0';
if (len > 0)
{
wcscpy_s(fakeGamerTagW, _countof(fakeGamerTagW), buffer);
WideCharToMultiByte(CP_UTF8, 0, fakeGamerTagW, -1, fakeGamerTag, sizeof(fakeGamerTag), nullptr, nullptr);
}
}
fclose(file);
}
}
void CSys::SetFakeGamertag(char *name)
{
size_t chars = 0;
strcpy_s(fakeGamerTag, name);
mbstowcs_s(&chars, fakeGamerTagW, XUSER_NAME_SIZE, name, _TRUNCATE);
}
char* CSys::GetGamertag(int iPad)
{
if(iPad == 0)
{
return fakeGamerTag;
}
char iPadGamertag[XUSER_NAME_SIZE];
_snprintf_s(iPadGamertag, sizeof(iPadGamertag), "%s (%d)", fakeGamerTag, iPad);
return iPadGamertag;
}
wstring CSys::GetDisplayName(int iPad)
{
if(iPad == 0)
{
return fakeGamerTagW;
}
wchar_t iPadGamertagW[XUSER_NAME_SIZE];
_snwprintf_s(iPadGamertagW, _countof(iPadGamertagW), L"%s (%d)", fakeGamerTagW, iPad);
return iPadGamertagW;
}
bool CSys::AllowedToPlayMultiplayer(int iProf)
{
return InputManager.IsPadConnected(iProf);
}
int CSys::GetPrimaryPad()
{
return m_iPrimaryPad;
}
void CSys::SetPrimaryPad(int iPad)
{
m_iPrimaryPad = iPad;
}
void CSys::SetDebugFullOverride(bool bVal)
{
s_bProfileIsFullVersion = bVal;
}
bool CSys::IsFullVersion()
{
return s_bProfileIsFullVersion;
}
//str1k3r - fun fact this is 1:1 to the Durango lib
bool CSys::LocaleIsUSorCanada()
{
GEOID UserGeoID;
UserGeoID = GetUserGeoID(GEOCLASS_NATION);
return UserGeoID == 39 || UserGeoID == 244;
}
bool CSys::LocaleIsChina()
{
GEOID UserGeoID;
UserGeoID = GetUserGeoID(GEOCLASS_NATION);
return UserGeoID == 45;
}
+19 -33
View File
@@ -1,38 +1,24 @@
#pragma once #pragma once
/*
MIT License
#include "4J_Profile.h" Copyright (c) 2026 Patoke
class CSys Permission is hereby granted, free of charge, to any person obtaining a copy
{ of this software and associated documentation files (the "Software"), to deal
public: in the Software without restriction, including without limitation the rights
CSys(); to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
// SIGNED IN The above copyright notice and this permission notice shall be included in all
bool IsSignedIn(int iQuadrant); copies or substantial portions of the Software.
bool IsSignedInLive(int iProf);
bool IsGuest(int iQuadrant);
// GAMERTAG THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
void LoadGamertag(); IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
void SetFakeGamertag(char *name); FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
char* GetGamertag(int iPad); AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
wstring GetDisplayName(int iPad); LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
// PRIMARY PAD SOFTWARE.
int GetPrimaryPad(); */
void SetPrimaryPad(int iPad);
// MULTIPLAYER
bool AllowedToPlayMultiplayer(int iProf);
// VERSION
bool IsFullVersion();
void SetDebugFullOverride(bool bVal);
// LOCALE
bool LocaleIsUSorCanada();
bool LocaleIsChina();
int m_iPrimaryPad;
};
+1 -14
View File
@@ -1,26 +1,13 @@
#ifndef PCH_H #ifndef PCH_H
#define PCH_H #define PCH_H
#ifdef _WIN64
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <Windows.h> #include <Windows.h>
#include <cstdint> #include <cstdint>
#include <assert.h> #include <assert.h>
#endif #include <Xinput.h>
#ifdef __ORBIS__
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <scebase.h>
#include <kernel.h>
#include <fios2.h>
#include <message_dialog.h>
#endif
#ifndef _XBOX
#include "extraX64.h" #include "extraX64.h"
#endif
#endif //PCH_H #endif //PCH_H
+100 -339
View File
@@ -1,33 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Durango"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ORBIS">
<Configuration>Debug</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|PS3">
<Configuration>Debug</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Durango"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ORBIS">
<Configuration>Release</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|PS3">
<Configuration>Release</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
@@ -35,258 +19,51 @@
</ProjectConfiguration> </ProjectConfiguration>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="PS3\RendererCore.cpp" />
<ClCompile Include="stdafx.cpp" /> <ClCompile Include="stdafx.cpp" />
<ClCompile Include="Windows64\4J_Render.cpp"> <ClCompile Include="Windows64\4J_Render.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\RendererCBuff.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\RendererCore.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\RendererMatrix.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\RendererState.cpp" />
</ClCompile> <ClCompile Include="Windows64\RendererTexture.cpp" />
<ClCompile Include="Windows64\RendererCBuff.cpp"> <ClCompile Include="Windows64\RendererVertex.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\png.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngerror.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngget.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngmem.c" />
</ClCompile> <ClCompile Include="Windows64\vendor\libpng\pngpread.c" />
<ClCompile Include="Windows64\RendererCore.cpp"> <ClCompile Include="Windows64\vendor\libpng\pngread.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngrio.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngrtran.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngrutil.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngset.c" />
</ClCompile> <ClCompile Include="Windows64\vendor\libpng\pngtest.c" />
<ClCompile Include="Windows64\RendererMatrix.cpp"> <ClCompile Include="Windows64\vendor\libpng\pngtrans.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngwio.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngwrite.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngwtran.c" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\vendor\libpng\pngwutil.c" />
</ClCompile> <ClCompile Include="Windows64\vendor\microprofile\microprofile.cpp" />
<ClCompile Include="Windows64\RendererState.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\RendererTexture.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\RendererVertex.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\png.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngerror.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngget.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngmem.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngpread.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngread.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngrio.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngrtran.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngrutil.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngset.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngtest.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngtrans.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngwio.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngwrite.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngwtran.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\libpng\pngwutil.c">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\vendor\microprofile\microprofile.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="PS3\RendererCore.h" />
<ClInclude Include="stdafx.h" /> <ClInclude Include="stdafx.h" />
<ClInclude Include="Windows64\CompiledShaders.h"> <ClInclude Include="Windows64\CompiledShaders.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\Profiler.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\Renderer.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\libpng\png.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\libpng\pngconf.h" />
</ClInclude> <ClInclude Include="Windows64\vendor\libpng\pngdebug.h" />
<ClInclude Include="Windows64\Profiler.h"> <ClInclude Include="Windows64\vendor\libpng\pnginfo.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\libpng\pnglibconf.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\libpng\pngpriv.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\libpng\pngstruct.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\microprofile\microprofile.config.h" />
</ClInclude> <ClInclude Include="Windows64\vendor\microprofile\microprofile.h" />
<ClInclude Include="Windows64\Renderer.h"> <ClInclude Include="Windows64\vendor\microprofile\microprofile_html.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\microprofile\microprofile_icons.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\microprofile\stb\stb_sprintf.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\zlib\zconf.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\vendor\zlib\zlib.h" />
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\png.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\pngconf.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\pngdebug.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\pnginfo.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\pnglibconf.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\pngpriv.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\libpng\pngstruct.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\microprofile\microprofile.config.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\microprofile\microprofile.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\microprofile\microprofile_html.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\microprofile\microprofile_icons.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\microprofile\stb\stb_sprintf.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\zlib\zconf.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\vendor\zlib\zlib.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{22938163-5DDB-4D04-883B-07212EB99FAE}</ProjectGuid> <ProjectGuid>{22938163-5DDB-4D04-883B-07212EB99FAE}</ProjectGuid>
@@ -294,12 +71,25 @@
<RootNamespace>My4J_Render</RootNamespace> <RootNamespace>My4J_Render</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
@@ -307,28 +97,6 @@
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
<PlatformToolset>SNC</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
@@ -348,35 +116,32 @@
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>$(ProjectName)_d</TargetName> <TargetName>$(ProjectName)_d</TargetName>
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetName>$(ProjectName)_d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>$(ProjectName)_r</TargetName>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>$(ProjectName)_r</TargetName> <TargetName>$(ProjectName)_r</TargetName>
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Create</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
@@ -399,13 +164,32 @@
<Command>./Windows64/shaders/build.bat</Command> <Command>./Windows64/shaders/build.bat</Command>
</PreBuildEvent> </PreBuildEvent>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Full</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WINDOWS64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>_WINDOWS64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
@@ -413,7 +197,6 @@
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<CompileAs>CompileAsCpp</CompileAs> <CompileAs>CompileAsCpp</CompileAs>
<MultiProcessorCompilation>true</MultiProcessorCompilation> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -425,28 +208,6 @@
<Command>./Windows64/shaders/build.bat</Command> <Command>./Windows64/shaders/build.bat</Command>
</PreBuildEvent> </PreBuildEvent>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<ClCompile>
<AdditionalIncludeDirectories>../Headers/Durango;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<ClCompile>
<AdditionalIncludeDirectories>../Headers/Durango;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<ClCompile>
<AdditionalIncludeDirectories>../Headers/Orbis;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Warnings>NormalWarnings</Warnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<ClCompile>
<AdditionalIncludeDirectories>../Headers/PS3;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Warnings>NormalWarnings</Warnings>
</ClCompile>
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
-6
View File
@@ -90,9 +90,6 @@
<ClCompile Include="stdafx.cpp"> <ClCompile Include="stdafx.cpp">
<Filter>Source Files</Filter> <Filter>Source Files</Filter>
</ClCompile> </ClCompile>
<ClCompile Include="PS3\RendererCore.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="Windows64\vendor\libpng\png.h"> <ClInclude Include="Windows64\vendor\libpng\png.h">
@@ -149,8 +146,5 @@
<ClInclude Include="stdafx.h"> <ClInclude Include="stdafx.h">
<Filter>Header Files</Filter> <Filter>Header Files</Filter>
</ClInclude> </ClInclude>
<ClInclude Include="PS3\RendererCore.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup> </ItemGroup>
</Project> </Project>
View File
View File
-42
View File
@@ -28,9 +28,6 @@ SOFTWARE.
C4JRender RenderManager; C4JRender RenderManager;
//str1k3r - set VSync to true by default
bool C4JRender::m_VSyncState = true;
void C4JRender::Tick() void C4JRender::Tick()
{ {
InternalRenderManager.CBuffTick(); InternalRenderManager.CBuffTick();
@@ -41,40 +38,6 @@ void C4JRender::UpdateGamma(unsigned short usGamma)
InternalRenderManager.UpdateGamma(usGamma); InternalRenderManager.UpdateGamma(usGamma);
} }
void C4JRender::SetVSync(bool vs)
{
if(vs != m_VSyncState)
m_VSyncState = vs;
}
int C4JRender::GetVSync()
{
return m_VSyncState ? 1 : 0;
}
//str1k3r - gonna be useful one day, kinda made this then didnt have to use it :sob:
EScreenSize C4JRender::GetScreenSize()
{
int width = InternalRenderManager.kScreenWidth;
if(width >= 1920)
{
return EScreenSize_1080P;
}
else if(width >= 1280 && width > 960)
{
return EScreenSize_720P;
}
else if(width >= 960 && width > 640)
{
return EScreenSize_544P;
}
else
{
return EScreenSize_480P;
}
}
void C4JRender::MatrixMode(int type) void C4JRender::MatrixMode(int type)
{ {
InternalRenderManager.MatrixMode(type); InternalRenderManager.MatrixMode(type);
@@ -170,11 +133,6 @@ void C4JRender::SetClearColour(const float colourRGBA[4])
InternalRenderManager.SetClearColour(colourRGBA); InternalRenderManager.SetClearColour(colourRGBA);
} }
void C4JRender::setResolution(int ScreenWidth, int ScreenHeight)
{
InternalRenderManager.setResolution(ScreenWidth, ScreenHeight);
}
bool C4JRender::IsWidescreen() bool C4JRender::IsWidescreen()
{ {
return InternalRenderManager.IsWidescreen(); return InternalRenderManager.IsWidescreen();
-1
View File
@@ -37,4 +37,3 @@ SOFTWARE.
#include "PS_ForceLOD.h" #include "PS_ForceLOD.h"
#include "PS_ScreenSpace.h" #include "PS_ScreenSpace.h"
#include "PS_ScreenClear.h" #include "PS_ScreenClear.h"
#include "PS_ScreenGamma.h"
-201
View File
@@ -1,201 +0,0 @@
#if 0
//
// Generated by Microsoft (R) HLSL Shader Compiler 10.1
//
//
// Buffer Definitions:
//
// cbuffer gammaBuff
// {
//
// float4 gammaParams; // Offset: 0 Size: 16
//
// }
//
//
// Resource Bindings:
//
// Name Type Format Dim HLSL Bind Count
// ------------------------------ ---------- ------- ----------- -------------- ------
// screen_sampler_s sampler NA NA s0 1
// screen_texture texture float4 2d t0 1
// gammaBuff cbuffer NA NA cb6 1
//
//
//
// Input signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_POSITION 0 xyzw 0 POS float
// TEXCOORD 0 xy 1 NONE float xy
//
//
// Output signature:
//
// Name Index Mask Register SysValue Format Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_TARGET 0 xyzw 0 TARGET float xyzw
//
ps_4_0
dcl_constantbuffer CB6[1], immediateIndexed
dcl_sampler s0, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_input_ps linear v1.xy
dcl_output o0.xyzw
dcl_temps 1
sample r0.xyzw, v1.xyxx, t0.xyzw, s0
mov_sat r0.xyz, r0.xyzx
mov o0.w, r0.w
log r0.xyz, r0.xyzx
mul r0.xyz, r0.xyzx, cb6[0].xxxx
exp o0.xyz, r0.xyzx
ret
// Approximately 7 instruction slots used
#endif
const BYTE g_main_PS_ScreenGamma[] =
{
68, 88, 66, 67, 53, 209,
160, 253, 213, 124, 231, 96,
156, 17, 77, 217, 140, 64,
219, 192, 1, 0, 0, 0,
84, 3, 0, 0, 5, 0,
0, 0, 52, 0, 0, 0,
88, 1, 0, 0, 176, 1,
0, 0, 228, 1, 0, 0,
216, 2, 0, 0, 82, 68,
69, 70, 28, 1, 0, 0,
1, 0, 0, 0, 168, 0,
0, 0, 3, 0, 0, 0,
28, 0, 0, 0, 0, 4,
255, 255, 0, 129, 0, 0,
244, 0, 0, 0, 124, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1, 0,
0, 0, 1, 0, 0, 0,
141, 0, 0, 0, 2, 0,
0, 0, 5, 0, 0, 0,
4, 0, 0, 0, 255, 255,
255, 255, 0, 0, 0, 0,
1, 0, 0, 0, 13, 0,
0, 0, 156, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 6, 0,
0, 0, 1, 0, 0, 0,
1, 0, 0, 0, 115, 99,
114, 101, 101, 110, 95, 115,
97, 109, 112, 108, 101, 114,
95, 115, 0, 115, 99, 114,
101, 101, 110, 95, 116, 101,
120, 116, 117, 114, 101, 0,
103, 97, 109, 109, 97, 66,
117, 102, 102, 0, 171, 171,
156, 0, 0, 0, 1, 0,
0, 0, 192, 0, 0, 0,
16, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
216, 0, 0, 0, 0, 0,
0, 0, 16, 0, 0, 0,
2, 0, 0, 0, 228, 0,
0, 0, 0, 0, 0, 0,
103, 97, 109, 109, 97, 80,
97, 114, 97, 109, 115, 0,
1, 0, 3, 0, 1, 0,
4, 0, 0, 0, 0, 0,
0, 0, 0, 0, 77, 105,
99, 114, 111, 115, 111, 102,
116, 32, 40, 82, 41, 32,
72, 76, 83, 76, 32, 83,
104, 97, 100, 101, 114, 32,
67, 111, 109, 112, 105, 108,
101, 114, 32, 49, 48, 46,
49, 0, 73, 83, 71, 78,
80, 0, 0, 0, 2, 0,
0, 0, 8, 0, 0, 0,
56, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
3, 0, 0, 0, 0, 0,
0, 0, 15, 0, 0, 0,
68, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
3, 0, 0, 0, 1, 0,
0, 0, 3, 3, 0, 0,
83, 86, 95, 80, 79, 83,
73, 84, 73, 79, 78, 0,
84, 69, 88, 67, 79, 79,
82, 68, 0, 171, 171, 171,
79, 83, 71, 78, 44, 0,
0, 0, 1, 0, 0, 0,
8, 0, 0, 0, 32, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 3, 0,
0, 0, 0, 0, 0, 0,
15, 0, 0, 0, 83, 86,
95, 84, 65, 82, 71, 69,
84, 0, 171, 171, 83, 72,
68, 82, 236, 0, 0, 0,
64, 0, 0, 0, 59, 0,
0, 0, 89, 0, 0, 4,
70, 142, 32, 0, 6, 0,
0, 0, 1, 0, 0, 0,
90, 0, 0, 3, 0, 96,
16, 0, 0, 0, 0, 0,
88, 24, 0, 4, 0, 112,
16, 0, 0, 0, 0, 0,
85, 85, 0, 0, 98, 16,
0, 3, 50, 16, 16, 0,
1, 0, 0, 0, 101, 0,
0, 3, 242, 32, 16, 0,
0, 0, 0, 0, 104, 0,
0, 2, 1, 0, 0, 0,
69, 0, 0, 9, 242, 0,
16, 0, 0, 0, 0, 0,
70, 16, 16, 0, 1, 0,
0, 0, 70, 126, 16, 0,
0, 0, 0, 0, 0, 96,
16, 0, 0, 0, 0, 0,
54, 32, 0, 5, 114, 0,
16, 0, 0, 0, 0, 0,
70, 2, 16, 0, 0, 0,
0, 0, 54, 0, 0, 5,
130, 32, 16, 0, 0, 0,
0, 0, 58, 0, 16, 0,
0, 0, 0, 0, 47, 0,
0, 5, 114, 0, 16, 0,
0, 0, 0, 0, 70, 2,
16, 0, 0, 0, 0, 0,
56, 0, 0, 8, 114, 0,
16, 0, 0, 0, 0, 0,
70, 2, 16, 0, 0, 0,
0, 0, 6, 128, 32, 0,
6, 0, 0, 0, 0, 0,
0, 0, 25, 0, 0, 5,
114, 32, 16, 0, 0, 0,
0, 0, 70, 2, 16, 0,
0, 0, 0, 0, 62, 0,
0, 1, 83, 84, 65, 84,
116, 0, 0, 0, 7, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 2, 0,
0, 0, 3, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 1, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
1, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 2, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0
};
-14
View File
@@ -49,19 +49,12 @@ SOFTWARE.
#define NUM_COMMAND_HANDLES 0x800000 #define NUM_COMMAND_HANDLES 0x800000
#define MAX_COMMAND_BUFFERS 16000 #define MAX_COMMAND_BUFFERS 16000
extern int kScreenWidth;
extern int kScreenHeight;
class Renderer class Renderer
{ {
public: public:
struct Context; struct Context;
struct CommandBuffer; struct CommandBuffer;
int kScreenHeight;
int kScreenWidth;
void SetGamma(float gamma);
void UpdateGamma(unsigned short usGamma); void UpdateGamma(unsigned short usGamma);
void MatrixMode(int type); void MatrixMode(int type);
void MatrixSetIdentity(); void MatrixSetIdentity();
@@ -82,7 +75,6 @@ public:
void Present(); void Present();
void Clear(int flags, D3D11_RECT *pRect); void Clear(int flags, D3D11_RECT *pRect);
void SetClearColour(const float colourRGBA[4]); void SetClearColour(const float colourRGBA[4]);
void setResolution(int ScreenWidth, int ScreenHeight);
bool IsWidescreen(); bool IsWidescreen();
bool IsHiDef(); bool IsHiDef();
void CaptureThumbnail(ImageFileBuffer *pngOut); void CaptureThumbnail(ImageFileBuffer *pngOut);
@@ -416,7 +408,6 @@ public:
ID3D11Buffer *m_alphaTestBuffer; ID3D11Buffer *m_alphaTestBuffer;
ID3D11Buffer *m_clearColorBuffer; ID3D11Buffer *m_clearColorBuffer;
ID3D11Buffer *m_forcedLODBuffer; ID3D11Buffer *m_forcedLODBuffer;
ID3D11Buffer *m_gammaRenderBuffer;
uint64_t dynamicVertexBase; uint64_t dynamicVertexBase;
DWORD dynamicVertexOffset; DWORD dynamicVertexOffset;
ID3D11Buffer *dynamicVertexBuffer; ID3D11Buffer *dynamicVertexBuffer;
@@ -458,7 +449,6 @@ public:
ID3D11PixelShader **pixelShaderTable; ID3D11PixelShader **pixelShaderTable;
ID3D11PixelShader *screenSpacePixelShader; ID3D11PixelShader *screenSpacePixelShader;
ID3D11PixelShader *screenClearPixelShader; ID3D11PixelShader *screenClearPixelShader;
ID3D11PixelShader *screenGammaPixelShader;
unsigned int *vertexStrideTable; unsigned int *vertexStrideTable;
ID3D11InputLayout **inputLayoutTable; ID3D11InputLayout **inputLayoutTable;
ID3D11Buffer *quadIndexBuffer; ID3D11Buffer *quadIndexBuffer;
@@ -495,10 +485,6 @@ public:
std::unordered_map<int, ID3D11RasterizerState *> managedRasterizerStates; std::unordered_map<int, ID3D11RasterizerState *> managedRasterizerStates;
bool m_bShouldScreenGrabNextFrame; bool m_bShouldScreenGrabNextFrame;
bool m_bSuspended; bool m_bSuspended;
unsigned short m_usPreviousGamma;
float m_usGamma;
ID3D11SamplerState *m_gammaSamplerState;
ID3D11Buffer *m_gammaFullscreenBoundsBuffer;
// @Patoke add // @Patoke add
ID3D11Texture2D *m_backBufferTexture; ID3D11Texture2D *m_backBufferTexture;
+16 -127
View File
@@ -54,9 +54,9 @@ D3D11_PRIMITIVE_TOPOLOGY Renderer::g_topologies[C4JRender::PRIMITIVE_TYPE_COUNT]
D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST, D3D11_PRIMITIVE_TOPOLOGY_LINELIST, D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP, D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST, D3D11_PRIMITIVE_TOPOLOGY_LINELIST, D3D11_PRIMITIVE_TOPOLOGY_LINESTRIP,
}; };
int kScreenWidth = 1920;
int kScreenHeight = 1080;
static const unsigned int kVertexBufferSize = 0x100000; static const unsigned int kVertexBufferSize = 0x100000;
static const unsigned int kScreenGrabWidth = 1920;
static const unsigned int kScreenGrabHeight = 1080;
static const unsigned int kThumbnailSize = 64; static const unsigned int kThumbnailSize = 64;
static const unsigned int g_vertexStrides[C4JRender::VERTEX_TYPE_COUNT] = { 32, 16, 32, 32 }; static const unsigned int g_vertexStrides[C4JRender::VERTEX_TYPE_COUNT] = { 32, 16, 32, 32 };
@@ -99,7 +99,6 @@ Renderer::Context::Context(ID3D11Device* device, ID3D11DeviceContext* deviceCont
, m_alphaTestBuffer(NULL) , m_alphaTestBuffer(NULL)
, m_clearColorBuffer(NULL) , m_clearColorBuffer(NULL)
, m_forcedLODBuffer(NULL) , m_forcedLODBuffer(NULL)
, m_gammaRenderBuffer(NULL)
, dynamicVertexBase(0) , dynamicVertexBase(0)
, dynamicVertexOffset(0) , dynamicVertexOffset(0)
, dynamicVertexBuffer(NULL) , dynamicVertexBuffer(NULL)
@@ -227,10 +226,6 @@ Renderer::Context::Context(ID3D11Device* device, ID3D11DeviceContext* deviceCont
device->CreateBuffer(&cbDesc, &cbData, &m_clearColorBuffer); device->CreateBuffer(&cbDesc, &cbData, &m_clearColorBuffer);
device->CreateBuffer(&cbDesc, &cbData, &m_forcedLODBuffer); device->CreateBuffer(&cbDesc, &cbData, &m_forcedLODBuffer);
cbDesc.ByteWidth = sizeof(zero4);
cbData.pSysMem = zero4;
device->CreateBuffer(&cbDesc, &cbData, &m_gammaRenderBuffer);
deviceContext->VSSetConstantBuffers(0, 10, &m_modelViewMatrix); deviceContext->VSSetConstantBuffers(0, 10, &m_modelViewMatrix);
deviceContext->PSSetConstantBuffers(0, 6, &m_tintColorBuffer); deviceContext->PSSetConstantBuffers(0, 6, &m_tintColorBuffer);
@@ -416,7 +411,7 @@ void Renderer::CaptureThumbnail(ImageFileBuffer *pngOut)
c.m_pDeviceContext->VSSetShader(screenSpaceVertexShader, NULL, 0); c.m_pDeviceContext->VSSetShader(screenSpaceVertexShader, NULL, 0);
c.m_pDeviceContext->IASetInputLayout(NULL); c.m_pDeviceContext->IASetInputLayout(NULL);
c.m_pDeviceContext->PSSetShader(screenSpacePixelShader, NULL, 0); c.m_pDeviceContext->PSSetShader(screenSpacePixelShader, NULL, 0);
c.m_pDeviceContext->OMSetBlendState(blendState, NULL, -1); c.m_pDeviceContext->OMSetBlendState(blendState, NULL, -1);
c.m_pDeviceContext->OMSetDepthStencilState(depthState, 0); c.m_pDeviceContext->OMSetDepthStencilState(depthState, 0);
c.m_pDeviceContext->RSSetState(rasterizerState); c.m_pDeviceContext->RSSetState(rasterizerState);
@@ -841,26 +836,7 @@ void Renderer::Initialise(ID3D11Device *pDevice, IDXGISwapChain *pSwapChain)
m_pDevice->CreateBuffer(&fanIndexDesc, &fanIndexData, &fanIndexBuffer); m_pDevice->CreateBuffer(&fanIndexDesc, &fanIndexData, &fanIndexBuffer);
delete[] fanIndices; delete[] fanIndices;
D3D11_SAMPLER_DESC gammaSamplerDesc = {}; InitializeCriticalSection(&Renderer::totalAllocCS);
gammaSamplerDesc.Filter = D3D11_FILTER_MIN_MAG_MIP_LINEAR;
gammaSamplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP;
gammaSamplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP;
gammaSamplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP;
gammaSamplerDesc.ComparisonFunc = D3D11_COMPARISON_ALWAYS;
m_pDevice->CreateSamplerState(&gammaSamplerDesc, &m_gammaSamplerState);
const float fullscreenBounds[4] = { 0.0f, 0.0f, 2.0f, 2.0f };
D3D11_BUFFER_DESC boundsDesc = {};
boundsDesc.ByteWidth = sizeof(fullscreenBounds);
boundsDesc.Usage = D3D11_USAGE_IMMUTABLE;
boundsDesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
D3D11_SUBRESOURCE_DATA boundsData = { fullscreenBounds };
m_pDevice->CreateBuffer(&boundsDesc, &boundsData, &m_gammaFullscreenBoundsBuffer);
m_usPreviousGamma = 0xFFFF;
m_usGamma = 1.0f;
InitializeCriticalSection(&Renderer::totalAllocCS);
} }
ID3D11DeviceContext *Renderer::InitialiseContext(bool fromPresent) ID3D11DeviceContext *Renderer::InitialiseContext(bool fromPresent)
@@ -878,91 +854,14 @@ ID3D11DeviceContext *Renderer::InitialiseContext(bool fromPresent)
return deviceContext; return deviceContext;
} }
//str1k3r - yo fuck you 4J and your hardcoded ass game
void Renderer::setResolution(int ScreenWidth, int ScreenHeight)
{
if(kScreenHeight != ScreenHeight || kScreenWidth != ScreenWidth)
{
kScreenHeight = ScreenHeight;
kScreenWidth = ScreenWidth;
}
}
bool Renderer::IsHiDef() bool Renderer::IsHiDef()
{ {
return (kScreenHeight >= 720 && kScreenWidth >= 1280); return true;
} }
bool Renderer::IsWidescreen() bool Renderer::IsWidescreen()
{ {
if (kScreenHeight == 0) return false; return true;
float aspectRatio = static_cast<float>(kScreenWidth) / kScreenHeight;
return (aspectRatio >= 1.56f);
}
// PIEBOT: Inspired by CaptureThumbnail
void Renderer::SetGamma(float gamma)
{
Renderer::Context &c = getContext();
// @Patoke fix: bind render target to a proper backbuffer texture
ID3D11Resource *actualBackBuffer = NULL;
mainRenderTargetView->GetResource(&actualBackBuffer);
// copy the backbuffer contents
c.m_pDeviceContext->CopyResource(m_backBufferTexture, actualBackBuffer);
actualBackBuffer->Release();
D3D11_MAPPED_SUBRESOURCE mapped = {};
if (SUCCEEDED(c.m_pDeviceContext->Map(c.m_gammaRenderBuffer, 0, D3D11_MAP_WRITE_DISCARD, 0, &mapped)))
{
*reinterpret_cast<DirectX::XMFLOAT4 *>(mapped.pData) = DirectX::XMFLOAT4(gamma, 0.0f, 0.0f, 0.0f);
c.m_pDeviceContext->Unmap(c.m_gammaRenderBuffer, 0);
}
ID3D11BlendState *blendState = NULL;
ID3D11RasterizerState *rasterizerState = NULL;
D3D11_BLEND_DESC blendDesc = {};
blendDesc.RenderTarget[0].BlendEnable = false;
blendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE;
blendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_ZERO;
blendDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD;
blendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE;
blendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO;
blendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD;
blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL;
m_pDevice->CreateBlendState(&blendDesc, &blendState);
D3D11_RASTERIZER_DESC rasterDesc = {};
rasterDesc.FillMode = D3D11_FILL_SOLID;
rasterDesc.CullMode = D3D11_CULL_NONE;
rasterDesc.DepthClipEnable = true;
rasterDesc.MultisampleEnable = true;
m_pDevice->CreateRasterizerState(&rasterDesc, &rasterizerState);
c.m_pDeviceContext->VSSetShader(screenSpaceVertexShader, NULL, 0);
c.m_pDeviceContext->PSSetShader(screenGammaPixelShader, NULL, 0);
c.m_pDeviceContext->IASetInputLayout(NULL);
c.m_pDeviceContext->IASetVertexBuffers(0, 0, NULL, NULL, NULL);
c.m_pDeviceContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP);
c.m_pDeviceContext->OMSetBlendState(blendState, NULL, 0xFFFFFFFF);
c.m_pDeviceContext->RSSetState(rasterizerState);
blendState->Release();
rasterizerState->Release();
D3D11_VIEWPORT viewport = { 0.0f, 0.0f, (float)backBufferWidth, (float)backBufferHeight, 0.0f, 1.0f };
c.m_pDeviceContext->OMSetRenderTargets(1, &mainRenderTargetView, NULL);
c.m_pDeviceContext->RSSetViewports(1, &viewport);
c.m_pDeviceContext->PSSetShaderResources(0, 1, &mainShaderResourceView);
c.m_pDeviceContext->PSSetSamplers(0, 1, &m_gammaSamplerState);
c.m_pDeviceContext->VSSetConstantBuffers(9, 1, &m_gammaFullscreenBoundsBuffer);
c.m_pDeviceContext->PSSetConstantBuffers(6, 1, &c.m_gammaRenderBuffer);
c.m_pDeviceContext->Draw(4, 0);
} }
void Renderer::Present() void Renderer::Present()
@@ -973,7 +872,7 @@ void Renderer::Present()
{ {
PROFILER_SCOPE("Renderer::Present", "ScreenGrab", MP_MAGENTA); PROFILER_SCOPE("Renderer::Present", "ScreenGrab", MP_MAGENTA);
unsigned char *linearData = new unsigned char[kScreenWidth * kScreenHeight * 4]; unsigned char *linearData = new unsigned char[kScreenGrabWidth * kScreenGrabHeight * 4];
ID3D11Resource *backBufferResource = NULL; ID3D11Resource *backBufferResource = NULL;
ID3D11Texture2D *backBuffer = NULL; ID3D11Texture2D *backBuffer = NULL;
@@ -999,13 +898,13 @@ void Renderer::Present()
m_pDeviceContext->Map(stagingTexture, 0, D3D11_MAP_READ_WRITE, 0, &mapped); m_pDeviceContext->Map(stagingTexture, 0, D3D11_MAP_READ_WRITE, 0, &mapped);
const unsigned char* src = reinterpret_cast<const unsigned char*>(mapped.pData); const unsigned char* src = reinterpret_cast<const unsigned char*>(mapped.pData);
for (UINT y = 0; y < kScreenHeight; ++y) for (UINT y = 0; y < kScreenGrabHeight; ++y)
{ {
unsigned char *dstRow = linearData + y * kScreenWidth * 4; unsigned char *dstRow = linearData + y * kScreenGrabWidth * 4;
const unsigned char *srcRow = src + y * mapped.RowPitch; const unsigned char *srcRow = src + y * mapped.RowPitch;
std::memcpy(dstRow, srcRow, kScreenWidth * 4); std::memcpy(dstRow, srcRow, kScreenGrabWidth * 4);
for (UINT x = 0; x < kScreenWidth; ++x) for (UINT x = 0; x < kScreenGrabWidth; ++x)
dstRow[x * 4 + 3] = 0xFF; dstRow[x * 4 + 3] = 0xFF;
} }
@@ -1027,8 +926,8 @@ void Renderer::Present()
UTCSysTime.wSecond); UTCSysTime.wSecond);
D3DXIMAGE_INFO info; D3DXIMAGE_INFO info;
info.Width = kScreenWidth; info.Width = kScreenGrabWidth;
info.Height = kScreenHeight; info.Height = kScreenGrabHeight;
SaveTextureData(fileName, &info, reinterpret_cast<int*>(linearData)); SaveTextureData(fileName, &info, reinterpret_cast<int*>(linearData));
delete[] linearData; delete[] linearData;
@@ -1036,9 +935,7 @@ void Renderer::Present()
m_bShouldScreenGrabNextFrame = false; m_bShouldScreenGrabNextFrame = false;
} }
SetGamma(m_usGamma); m_pSwapChain->Present(1, 0);
m_pSwapChain->Present(C4JRender::GetVSync(), 0);
++presentCount; ++presentCount;
} }
@@ -1083,7 +980,6 @@ void Renderer::SetupShaders()
m_pDevice->CreatePixelShader(g_main_PS_ForceLOD, sizeof(g_main_PS_ForceLOD), NULL, &pixelShaderTable[C4JRender::PIXEL_SHADER_TYPE_FORCELOD]); m_pDevice->CreatePixelShader(g_main_PS_ForceLOD, sizeof(g_main_PS_ForceLOD), NULL, &pixelShaderTable[C4JRender::PIXEL_SHADER_TYPE_FORCELOD]);
m_pDevice->CreatePixelShader(g_main_PS_ScreenSpace, sizeof(g_main_PS_ScreenSpace), NULL, &screenSpacePixelShader); m_pDevice->CreatePixelShader(g_main_PS_ScreenSpace, sizeof(g_main_PS_ScreenSpace), NULL, &screenSpacePixelShader);
m_pDevice->CreatePixelShader(g_main_PS_ScreenClear, sizeof(g_main_PS_ScreenClear), NULL, &screenClearPixelShader); m_pDevice->CreatePixelShader(g_main_PS_ScreenClear, sizeof(g_main_PS_ScreenClear), NULL, &screenClearPixelShader);
m_pDevice->CreatePixelShader(g_main_PS_ScreenGamma, sizeof(g_main_PS_ScreenGamma), NULL, &screenGammaPixelShader);
m_pDevice->CreateInputLayout(g_vertex_PTN_Elements_PF3_TF2_CB4_NB4_XW1, 5, g_main_VS_PF3_TF2_CB4_NB4_XW1, sizeof(g_main_VS_PF3_TF2_CB4_NB4_XW1), &inputLayoutTable[C4JRender::VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1]); m_pDevice->CreateInputLayout(g_vertex_PTN_Elements_PF3_TF2_CB4_NB4_XW1, 5, g_main_VS_PF3_TF2_CB4_NB4_XW1, sizeof(g_main_VS_PF3_TF2_CB4_NB4_XW1), &inputLayoutTable[C4JRender::VERTEX_TYPE_PF3_TF2_CB4_NB4_XW1]);
m_pDevice->CreateInputLayout(g_vertex_PTN_Elements_Compressed, 2, g_main_VS_Compressed, sizeof(g_main_VS_Compressed), &inputLayoutTable[C4JRender::VERTEX_TYPE_COMPRESSED]); m_pDevice->CreateInputLayout(g_vertex_PTN_Elements_Compressed, 2, g_main_VS_Compressed, sizeof(g_main_VS_Compressed), &inputLayoutTable[C4JRender::VERTEX_TYPE_COMPRESSED]);
@@ -1144,17 +1040,10 @@ bool Renderer::Suspended()
return m_bSuspended; return m_bSuspended;
} }
void Renderer::UpdateGamma(unsigned short usGamma) void Renderer::UpdateGamma(unsigned short) {}
{
if (usGamma != m_usPreviousGamma)
{
m_usPreviousGamma = usGamma;
m_usGamma = 1.0f / (0.5f + (usGamma / 32768.0f) * 1.5f);
}
}
Renderer::Context &Renderer::getContext() Renderer::Context &Renderer::getContext()
{ {
return *reinterpret_cast<Renderer::Context*>(TlsGetValue(Renderer::tlsIdx)); return *reinterpret_cast<Renderer::Context*>(TlsGetValue(Renderer::tlsIdx));
} }
-1
View File
@@ -22,4 +22,3 @@ if not exist %OUT% mkdir %OUT%
%FXC% %OPT% /T ps_4_0 /E main /D FORCE_LOD /Fh %OUT%/PS_ForceLOD.h /Vn g_main_PS_ForceLOD main_PS.hlsl %FXC% %OPT% /T ps_4_0 /E main /D FORCE_LOD /Fh %OUT%/PS_ForceLOD.h /Vn g_main_PS_ForceLOD main_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenSpace /Fh %OUT%/PS_ScreenSpace.h /Vn g_main_PS_ScreenSpace screen_PS.hlsl %FXC% %OPT% /T ps_4_0 /E PS_ScreenSpace /Fh %OUT%/PS_ScreenSpace.h /Vn g_main_PS_ScreenSpace screen_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenClear /Fh %OUT%/PS_ScreenClear.h /Vn g_main_PS_ScreenClear screen_PS.hlsl %FXC% %OPT% /T ps_4_0 /E PS_ScreenClear /Fh %OUT%/PS_ScreenClear.h /Vn g_main_PS_ScreenClear screen_PS.hlsl
%FXC% %OPT% /T ps_4_0 /E PS_ScreenGamma /Fh %OUT%/PS_ScreenGamma.h /Vn g_main_PS_ScreenGamma screen_PS.hlsl
@@ -26,11 +26,6 @@ cbuffer cbuff : register(b4)
float4 clearColour; float4 clearColour;
}; };
cbuffer gammaBuff : register(b6)
{
float4 gammaParams;
};
SamplerState screen_sampler_s : register(s0); SamplerState screen_sampler_s : register(s0);
Texture2D<float4> screen_texture : register(t0); Texture2D<float4> screen_texture : register(t0);
@@ -43,11 +38,3 @@ float4 PS_ScreenClear(float4 position : SV_POSITION) : SV_TARGET
{ {
return clearColour; return clearColour;
} }
float4 PS_ScreenGamma(float4 position : SV_POSITION, float2 texcoord : TEXCOORD0) : SV_TARGET
{
float4 colour = screen_texture.Sample(screen_sampler_s, texcoord);
float invGamma = gammaParams.x;
colour.rgb = pow(saturate(colour.rgb), invGamma);
return colour;
}
+1 -14
View File
@@ -1,30 +1,17 @@
#ifndef PCH_H #ifndef PCH_H
#define PCH_H #define PCH_H
#ifdef _WIN64
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <Windows.h> #include <Windows.h>
#include <cstdint> #include <cstdint>
#include <assert.h> #include <assert.h>
#include <Xinput.h>
#include <d3d11.h> #include <d3d11.h>
#include <d3d11_1.h> #include <d3d11_1.h>
#include <DirectXMath.h> #include <DirectXMath.h>
#endif
#ifdef __ORBIS__
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <scebase.h>
#include <kernel.h>
#include <fios2.h>
#include <message_dialog.h>
#endif
#ifndef _XBOX
#include "extraX64.h" #include "extraX64.h"
#endif
#endif //PCH_H #endif //PCH_H
+75 -136
View File
@@ -1,33 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Durango"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ORBIS">
<Configuration>Debug</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|PS3">
<Configuration>Debug</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Durango"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ORBIS">
<Configuration>Release</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|PS3">
<Configuration>Release</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
@@ -36,51 +20,16 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="stdafx.h" /> <ClInclude Include="stdafx.h" />
<ClInclude Include="Windows64\STO_DLC.h"> <ClInclude Include="Windows64\STO_DLC.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClInclude Include="Windows64\STO_Main.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClInclude Include="Windows64\STO_SaveGame.h" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\STO_Main.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="Windows64\STO_SaveGame.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClInclude>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClCompile Include="stdafx.cpp" /> <ClCompile Include="stdafx.cpp" />
<ClCompile Include="Windows64\4J_Storage.cpp"> <ClCompile Include="Windows64\4J_Storage.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\STO_DLC.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild> <ClCompile Include="Windows64\STO_Main.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild> <ClCompile Include="Windows64\STO_SaveGame.cpp" />
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\STO_DLC.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\STO_Main.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="Windows64\STO_SaveGame.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">true</ExcludedFromBuild>
</ClCompile>
</ItemGroup> </ItemGroup>
<PropertyGroup Label="Globals"> <PropertyGroup Label="Globals">
<ProjectGuid>{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}</ProjectGuid> <ProjectGuid>{2E28BC2E-BF30-4C83-A4D8-C967DD409D70}</ProjectGuid>
@@ -88,12 +37,25 @@
<RootNamespace>My4J_Storage</RootNamespace> <RootNamespace>My4J_Storage</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
@@ -101,70 +63,51 @@
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
<PlatformToolset>SNC</PlatformToolset>
<ConfigurationType>StaticLibrary</ConfigurationType>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<TargetName>$(ProjectName)_d</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<TargetName>$(ProjectName)_d</TargetName> <TargetName>$(ProjectName)_d</TargetName>
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<TargetName>$(ProjectName)_r</TargetName>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<TargetName>$(ProjectName)_r</TargetName> <TargetName>$(ProjectName)_r</TargetName>
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
<TargetExt>.a</TargetExt>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
@@ -183,20 +126,17 @@
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>Full</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WINDOWS64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
@@ -205,27 +145,26 @@
<OptimizeReferences>true</OptimizeReferences> <OptimizeReferences>true</OptimizeReferences>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<AdditionalIncludeDirectories>../Headers/Durango;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <WarningLevel>Level3</WarningLevel>
</ClCompile> <PrecompiledHeader>NotUsing</PrecompiledHeader>
</ItemDefinitionGroup> <Optimization>MaxSpeed</Optimization>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'"> <FunctionLevelLinking>true</FunctionLevelLinking>
<ClCompile> <IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>../Headers/Durango;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <PreprocessorDefinitions>_WINDOWS64;NDEBUG;_LIB;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile> <SDLCheck>true</SDLCheck>
</ItemDefinitionGroup> <AdditionalIncludeDirectories>../Headers/Windows64;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'"> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<ClCompile> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalIncludeDirectories>../Headers/Orbis;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <MultiProcessorCompilation>true</MultiProcessorCompilation>
<Warnings>NormalWarnings</Warnings>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<ClCompile>
<AdditionalIncludeDirectories>../Headers/PS3;../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<Warnings>NormalWarnings</Warnings>
</ClCompile> </ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
+5 -5
View File
@@ -218,7 +218,7 @@ void C4JStorage::RegisterMarketplaceCountsCallback(int (*Func)(LPVOID lpParam, C
; ;
} }
void C4JStorage::SetDLCPackageRoot(wchar_t *pszDLCRoot) void C4JStorage::SetDLCPackageRoot(char *pszDLCRoot)
{ {
InternalStorageManager.m_DLC.SetPackageRoot(pszDLCRoot); InternalStorageManager.m_DLC.SetPackageRoot(pszDLCRoot);
} }
@@ -268,22 +268,22 @@ XCONTENT_DATA &C4JStorage::GetDLC(DWORD dw)
return InternalStorageManager.m_DLC.GetDLC(dw); return InternalStorageManager.m_DLC.GetDLC(dw);
} }
DWORD C4JStorage::MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCWSTR szMountDrive) DWORD C4JStorage::MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCSTR szMountDrive)
{ {
return InternalStorageManager.m_DLC.MountInstalledDLC(iPad, dwDLC, Func, lpParam, szMountDrive); return InternalStorageManager.m_DLC.MountInstalledDLC(iPad, dwDLC, Func, lpParam, szMountDrive);
} }
DWORD C4JStorage::UnmountInstalledDLC(LPCWSTR szMountDrive) DWORD C4JStorage::UnmountInstalledDLC(LPCSTR szMountDrive)
{ {
return InternalStorageManager.m_DLC.UnmountInstalledDLC(szMountDrive); return InternalStorageManager.m_DLC.UnmountInstalledDLC(szMountDrive);
} }
void C4JStorage::GetMountedDLCFileList(const char *szMountDrive, std::vector<std::wstring> &fileList) void C4JStorage::GetMountedDLCFileList(const char *szMountDrive, std::vector<std::string> &fileList)
{ {
InternalStorageManager.m_DLC.GetMountedDLCFileList(szMountDrive, fileList); InternalStorageManager.m_DLC.GetMountedDLCFileList(szMountDrive, fileList);
} }
std::wstring C4JStorage::GetMountedPath(std::wstring szMount) std::string C4JStorage::GetMountedPath(std::string szMount)
{ {
return InternalStorageManager.m_DLC.GetMountedPath(szMount); return InternalStorageManager.m_DLC.GetMountedPath(szMount);
} }
+33 -32
View File
@@ -63,10 +63,10 @@ C4JStorage::EDLCStatus CDLC::GetInstalledDLC(int iPad, int (*Func)(LPVOID, int,
m_iHasNewInstalledDLCs = true; m_iHasNewInstalledDLCs = true;
bool ret = false; bool ret = false;
DWORD atts = GetFileAttributesW(L"Windows64Media/DLC"); DWORD atts = GetFileAttributesA("Windows64Media/DLC");
if (atts == -1) if (atts == -1)
{ {
atts = GetFileAttributesW(L"Windows64/DLC"); atts = GetFileAttributesA("Windows64/DLC");
ret = true; ret = true;
} }
@@ -77,38 +77,38 @@ C4JStorage::EDLCStatus CDLC::GetInstalledDLC(int iPad, int (*Func)(LPVOID, int,
return C4JStorage::EDLC_Error; return C4JStorage::EDLC_Error;
} }
_WIN32_FIND_DATAW hFind; _WIN32_FIND_DATAA hFind;
HANDLE hFindFile; HANDLE hFindFile;
if (ret) if (ret)
{ {
hFindFile = FindFirstFileW(L"Windows64/DLC/*", &hFind); hFindFile = FindFirstFileA("Windows64/DLC/*", &hFind);
} }
else else
{ {
hFindFile = FindFirstFileW(L"Windows64Media/DLC/*", &hFind); hFindFile = FindFirstFileA("Windows64Media/DLC/*", &hFind);
} }
if (hFindFile != INVALID_HANDLE_VALUE) if (hFindFile != (HANDLE)-1LL)
{ {
do do
{ {
atts = hFind.dwFileAttributes; atts = hFind.dwFileAttributes;
bool isArt = hFind.dwFileAttributes != -1 && (hFind.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY); bool isArt = hFind.dwFileAttributes != -1 && (hFind.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY);
if (isArt && hFind.cFileName[0] != L'.') if (isArt && hFind.cFileName[0] != '.')
{ {
XCONTENT_DATA data; XCONTENT_DATA data;
if (ret) if (ret)
{ {
swprintf_s(data.szFileName, _countof(data.szFileName), L"Windows64/DLC/%s", hFind.cFileName); sprintf(data.szFileName, "Windows64/DLC/%s", hFind.cFileName);
} }
else else
{ {
swprintf_s(data.szFileName, _countof(data.szFileName), L"Windows64Media/DLC/%s", hFind.cFileName); sprintf(data.szFileName, "Windows64Media/DLC/%s", hFind.cFileName);
} }
swprintf_s(data.szDisplayName, 256, L"%s", hFind.cFileName); swprintf(data.szDisplayName, 256, L"%S", hFind.cFileName);
int displayNameLen = wcslen(data.szDisplayName); int displayNameLen = wcslen(data.szDisplayName);
data.DeviceID = 0; data.DeviceID = 0;
@@ -116,14 +116,14 @@ C4JStorage::EDLCStatus CDLC::GetInstalledDLC(int iPad, int (*Func)(LPVOID, int,
AddInstalled(&data); AddInstalled(&data);
} }
} while (FindNextFileW(hFindFile, &hFind)); } while (FindNextFileA(hFindFile, &hFind));
FindClose(hFindFile); FindClose(hFindFile);
} }
return C4JStorage::EDLC_Idle; return C4JStorage::EDLC_Idle;
} }
DWORD CDLC::MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCWSTR szMountDrive) DWORD CDLC::MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCSTR szMountDrive)
{ {
this->m_pMountedDLCFunc = Func; this->m_pMountedDLCFunc = Func;
this->m_pMountedDLCParam = lpParam; this->m_pMountedDLCParam = lpParam;
@@ -139,7 +139,7 @@ DWORD CDLC::MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DW
this->m_uiCurrentMappedDLC = dwDLC; this->m_uiCurrentMappedDLC = dwDLC;
wchar_t *dlcdirPath = m_vInstalledDLCs[m_uiCurrentMappedDLC].szFileName; char *dlcdirPath = m_vInstalledDLCs[m_uiCurrentMappedDLC].szFileName;
m_vDLCDriveMappings.push_back(DriveMapping(dlcdirPath, m_szMountPath)); m_vDLCDriveMappings.push_back(DriveMapping(dlcdirPath, m_szMountPath));
m_iHasNewMountedDLCs = true; m_iHasNewMountedDLCs = true;
@@ -147,9 +147,9 @@ DWORD CDLC::MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DW
return 997; return 997;
} }
DWORD CDLC::UnmountInstalledDLC(LPCWSTR szMountDrive) DWORD CDLC::UnmountInstalledDLC(LPCSTR szMountDrive)
{ {
LPCWSTR szDrive = nullptr; LPCSTR szDrive = nullptr;
if (szMountDrive) if (szMountDrive)
{ {
@@ -172,48 +172,49 @@ DWORD CDLC::UnmountInstalledDLC(LPCWSTR szMountDrive)
return 0; return 0;
} }
void CDLC::GetMountedDLCFileList(const char *szMountDrive, std::vector<std::wstring> &fileList) void CDLC::GetMountedDLCFileList(const char *szMountDrive, std::vector<std::string> &fileList)
{ {
wchar_t dlcdirPath[256]; char *dlcdirPath = new char[256];
swprintf_s(dlcdirPath, 256, L"%s/*", m_vInstalledDLCs[m_uiCurrentMappedDLC].szFileName); sprintf(dlcdirPath, "%s/*", m_vInstalledDLCs[m_uiCurrentMappedDLC].szFileName);
_WIN32_FIND_DATAW atts; _WIN32_FIND_DATAA atts;
HANDLE hFind = FindFirstFileW(dlcdirPath, &atts); HANDLE hFind = FindFirstFileA(dlcdirPath, &atts);
if (hFind != INVALID_HANDLE_VALUE) if (hFind != (HANDLE)-1LL)
{ {
do do
{ {
if (atts.dwFileAttributes == -1 || (atts.dwFileAttributes & 0x10) != 0x10) if (atts.dwFileAttributes == -1 || (atts.dwFileAttributes & 0x10) != 0x10)
{ {
wchar_t dir[256]; char dir[256];
swprintf_s(dir, _countof(dir), L"%s/%s", m_vInstalledDLCs[m_uiCurrentMappedDLC].szFileName, atts.cFileName); sprintf(dir, "%s/%s", m_vInstalledDLCs[m_uiCurrentMappedDLC].szFileName, atts.cFileName);
fileList.push_back(dir); fileList.push_back(dir);
} }
} while (FindNextFileW(hFind, &atts)); } while (FindNextFileA(hFind, &atts));
FindClose(hFind); FindClose(hFind);
} }
delete[] dlcdirPath;
} }
std::wstring CDLC::GetMountedPath(std::wstring szMount) std::string CDLC::GetMountedPath(std::string szMount)
{ {
for (int ch = 0; ch < szMount.size(); ++ch) for (int ch = 0; ch < szMount.size(); ++ch)
{ {
if (szMount[ch] == '/' || szMount[ch] == '\\') if (szMount[ch] == '/' || szMount[ch] == '\\')
{ {
return L""; return "";
} }
if (szMount[ch] == ':') if (szMount[ch] == ':')
{ {
std::wstring driveName = szMount.substr(0, ch); std::string driveName = szMount.substr(0, ch);
for (int i = 0; i < m_vDLCDriveMappings.size(); i++) for (int i = 0; i < m_vDLCDriveMappings.size(); i++)
{ {
if (m_vDLCDriveMappings[i].m_szMountPath == driveName) if (m_vDLCDriveMappings[i].m_szMountPath == driveName)
{ {
std::wstring newPath = m_vDLCDriveMappings[i].m_szDirectoryPath; std::string newPath = m_vDLCDriveMappings[i].m_szDirectoryPath;
newPath.append(szMount.substr(ch + 1)); newPath.append(szMount.substr(ch + 1, -1));
return newPath; return newPath;
} }
@@ -222,7 +223,7 @@ std::wstring CDLC::GetMountedPath(std::wstring szMount)
} }
} }
return L""; return "";
} }
void CDLC::SetDLCProductCode(const char *szProductCode) void CDLC::SetDLCProductCode(const char *szProductCode)
@@ -240,9 +241,9 @@ int CDLC::GetAvailableDLCCount(int iPad)
return 0; return 0;
} }
void CDLC::SetPackageRoot(wchar_t *pszDLCRoot) void CDLC::SetPackageRoot(char *pszDLCRoot)
{ {
wcscpy(this->m_szPackageRoot, pszDLCRoot); strcpy(this->m_szPackageRoot, pszDLCRoot);
} }
void CDLC::Tick(void) void CDLC::Tick(void)
+10 -10
View File
@@ -30,13 +30,13 @@ class CDLC
public: public:
struct DriveMapping struct DriveMapping
{ {
DriveMapping(std::wstring szDirectoryPath, std::wstring szMountPath) : m_szDirectoryPath(szDirectoryPath), m_szMountPath(szMountPath) DriveMapping(std::string szDirectoryPath, std::string szMountPath) : m_szDirectoryPath(szDirectoryPath), m_szMountPath(szMountPath)
{ {
; ;
} }
std::wstring m_szMountPath; std::string m_szMountPath;
std::wstring m_szDirectoryPath; std::string m_szDirectoryPath;
}; };
XCONTENT_DATA &GetDLC(DWORD dw); XCONTENT_DATA &GetDLC(DWORD dw);
@@ -46,15 +46,15 @@ public:
DWORD dwOfferTypesBitmask = XMARKETPLACE_OFFERING_TYPE_CONTENT); DWORD dwOfferTypesBitmask = XMARKETPLACE_OFFERING_TYPE_CONTENT);
void ClearOffers(); void ClearOffers();
C4JStorage::EDLCStatus GetInstalledDLC(int iPad, int (*Func)(LPVOID, int, int), LPVOID lpParam); C4JStorage::EDLCStatus GetInstalledDLC(int iPad, int (*Func)(LPVOID, int, int), LPVOID lpParam);
DWORD MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCWSTR szMountDrive = NULL); DWORD MountInstalledDLC(int iPad, DWORD dwDLC, int (*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCSTR szMountDrive = NULL);
DWORD UnmountInstalledDLC(LPCWSTR szMountDrive = NULL); DWORD UnmountInstalledDLC(LPCSTR szMountDrive = NULL);
void GetMountedDLCFileList(const char *szMountDrive, std::vector<std::wstring> &fileList); void GetMountedDLCFileList(const char *szMountDrive, std::vector<std::string> &fileList);
std::wstring GetMountedPath(std::wstring szMount); std::string GetMountedPath(std::string szMount);
void SetDLCProductCode(const char *szProductCode); void SetDLCProductCode(const char *szProductCode);
void SetProductUpgradeKey(const char *szProductCode); void SetProductUpgradeKey(const char *szProductCode);
int GetAvailableDLCCount(int iPad); int GetAvailableDLCCount(int iPad);
void SetPackageRoot(wchar_t *pszDLCRoot); void SetPackageRoot(char *pszDLCRoot);
void Tick(void); void Tick(void);
void AddInstalled(XCONTENT_DATA *data); void AddInstalled(XCONTENT_DATA *data);
@@ -70,10 +70,10 @@ public:
DWORD m_iHasNewMountedDLCs; DWORD m_iHasNewMountedDLCs;
int (*m_pMountedDLCFunc)(LPVOID, int, DWORD, DWORD); int (*m_pMountedDLCFunc)(LPVOID, int, DWORD, DWORD);
LPVOID m_pMountedDLCParam; LPVOID m_pMountedDLCParam;
std::wstring m_szMountPath; std::string m_szMountPath;
DWORD m_uiCurrentMappedDLC; DWORD m_uiCurrentMappedDLC;
DWORD m_dwLicenseMask; DWORD m_dwLicenseMask;
wchar_t m_szPackageRoot[40]; char m_szPackageRoot[40];
DWORD dwordC0; DWORD dwordC0;
std::vector<DriveMapping> m_vDLCDriveMappings; std::vector<DriveMapping> m_vDLCDriveMappings;
char m_szDLCProductCode[16]; char m_szDLCProductCode[16];
+1 -16
View File
@@ -1,28 +1,13 @@
#ifndef PCH_H #ifndef PCH_H
#define PCH_H #define PCH_H
#ifdef _WIN64
#define WIN32_LEAN_AND_MEAN #define WIN32_LEAN_AND_MEAN
#include <Windows.h> #include <Windows.h>
#include <cstdint> #include <cstdint>
#include <assert.h> #include <assert.h>
#include <Xinput.h>
#include <cwchar>
#endif
#ifdef __ORBIS__
#include <stdio.h>
#include <stdarg.h>
#include <stdlib.h>
#include <scebase.h>
#include <kernel.h>
#include <fios2.h>
#include <message_dialog.h>
#endif
#ifndef _XBOX
#include "extraX64.h" #include "extraX64.h"
#endif
#endif //PCH_H #endif //PCH_H
+60 -62
View File
@@ -1,33 +1,17 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Durango"> <ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ORBIS">
<Configuration>Debug</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|PS3">
<Configuration>Debug</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64"> <ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration> <Configuration>Debug</Configuration>
<Platform>x64</Platform> <Platform>x64</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|Durango"> <ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
<Platform>Durango</Platform> <Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ORBIS">
<Configuration>Release</Configuration>
<Platform>ORBIS</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|PS3">
<Configuration>Release</Configuration>
<Platform>PS3</Platform>
</ProjectConfiguration> </ProjectConfiguration>
<ProjectConfiguration Include="Release|x64"> <ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration> <Configuration>Release</Configuration>
@@ -40,12 +24,25 @@
<RootNamespace>My4J_XTMS</RootNamespace> <RootNamespace>My4J_XTMS</RootNamespace>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries> <UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset> <PlatformToolset>v110</PlatformToolset>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType> <ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries> <UseDebugLibraries>false</UseDebugLibraries>
@@ -53,60 +50,43 @@
<WholeProgramOptimization>true</WholeProgramOptimization> <WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet> <CharacterSet>Unicode</CharacterSet>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<PlatformToolset>v110</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'" Label="Configuration">
<PlatformToolset>Clang</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<PlatformToolset>Clang</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'" Label="Configuration">
<PlatformToolset>Clang</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings"> <ImportGroup Label="ExtensionSettings">
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup> </ImportGroup>
<PropertyGroup Label="UserMacros" /> <PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutDir>$(SolutionDir)\libs\</OutDir> <OutDir>$(SolutionDir)\libs\</OutDir>
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Durango'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ORBIS'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|PS3'">
<IntDir>Build\$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile> <ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
@@ -116,26 +96,44 @@
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation> <GenerateDebugInformation>true</GenerateDebugInformation>
</Link> </Link>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>Use</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile> <ClCompile>
<WarningLevel>Level3</WarningLevel> <WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>NotUsing</PrecompiledHeader> <PrecompiledHeader>NotUsing</PrecompiledHeader>
<Optimization>Full</Optimization> <Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking> <FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>false</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>_WINDOWS64;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions> <PreprocessorDefinitions>_WINDOWS64;_CRT_SECURE_NO_WARNINGS</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../Headers;$(ProjectDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles> <ForcedIncludeFiles>stdafx.h</ForcedIncludeFiles>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary> <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>
-258
View File
@@ -1,258 +0,0 @@
#pragma once
#define BOOST_NO_CXX11_NULLPTR
#define BOOST_ENABLE_ASSERT_HANDLER
#include <typeinfo>
#include <stddef.h>
#define __forceinline inline
//#include "winerror.h"
// user the pool_allocator for all unordered_set and unordered_map instances
// template < class T, class H = hash<T>, class P = std::equal_to<T>, class A = boost::pool_allocator<T> >
// class unordered_set : public std::tr1::unordered_set<T, H, P, A >
// {};
//
// template <class K, class T, class H = hash<K>, class P = std::equal_to<K>, class A = boost::pool_allocator<std::pair<const K,T> > >
// class unordered_map : public std::tr1::unordered_map<K, T, H, P, A >
// {};
// template < class T, class H = hash<T>, class P = std::equal_to<T>, class A = C4JPoolAllocator<T> >
// class unordered_set : public std::tr1::unordered_set<T, H, P, A >
// {};
//
// template <class K, class T, class H = hash<K>, class P = std::equal_to<K>, class A = C4JPoolAllocator<std::pair<const K,T> > >
// class unordered_map : public std::tr1::unordered_map<K, T, H, P, A >
// {};
// using boost::ublas::vector;
#define static_assert(a,b) BOOST_STATIC_ASSERT(a)
#define AUTO_VAR BOOST_AUTO
#define RtlEqualMemory(Destination,Source,Length) (!memcmp((Destination),(Source),(Length)))
#define RtlMoveMemory(Destination,Source,Length) memmove((Destination),(Source),(Length))
#define RtlCopyMemory(Destination,Source,Length) memcpy((Destination),(Source),(Length))
#define RtlFillMemory(Destination,Length,Fill) memset((Destination),(Fill),(Length))
#define RtlZeroMemory(Destination,Length) memset((Destination),0,(Length))
#define MoveMemory RtlMoveMemory
#define CopyMemory RtlCopyMemory
#define FillMemory RtlFillMemory
#define ZeroMemory RtlZeroMemory
// #include <math.h>
// #include "DirectX\DirectXMath.h"
// using namespace DirectX;
#define S_OK 0
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef int __int32;
typedef FLOAT *PFLOAT;
typedef BOOL *PBOOL;
typedef BOOL *LPBOOL;
typedef BYTE *PBYTE;
typedef BYTE *LPBYTE;
typedef int *PINT;
typedef int *LPINT;
typedef WORD *PWORD;
typedef WORD *LPWORD;
typedef long *PLONG;
typedef long *LPLONG;
typedef DWORD *PDWORD;
typedef DWORD *LPDWORD;
typedef void *LPVOID;
typedef const void *LPCVOID;
typedef void *PVOID;
typedef unsigned long ULONG;
typedef unsigned char boolean;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
typedef unsigned char byte;
typedef long long __int64;
typedef unsigned long long __uint64;
typedef unsigned long DWORD;
typedef int INT;
typedef unsigned long ULONG_PTR, *PULONG_PTR;
typedef ULONG_PTR SIZE_T, *PSIZE_T;
typedef __int64 LONG64, *PLONG64;
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
typedef __int64 LONGLONG;
typedef __uint64 ULONGLONG;
#define CONST const
typedef wchar_t WCHAR; // wc, 16-bit UNICODE character
typedef WCHAR *PWCHAR;
typedef WCHAR *LPWCH, *PWCH;
typedef CONST WCHAR *LPCWCH, *PCWCH;
typedef WCHAR *NWPSTR;
typedef WCHAR *LPWSTR, *PWSTR;
typedef CONST WCHAR *LPCWSTR, *PCWSTR;
//
// ANSI (Multi-byte Character) types
//
typedef CHAR *PCHAR;
typedef CHAR *LPCH, *PCH;
typedef CONST CHAR *LPCCH, *PCCH;
typedef CHAR *NPSTR;
typedef CHAR *LPSTR, *PSTR;
typedef CONST CHAR *LPCSTR, *PCSTR;
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
typedef struct _FILETIME {
#ifdef _M_PPCBE
DWORD dwHighDateTime;
DWORD dwLowDateTime;
#else
DWORD dwLowDateTime;
DWORD dwHighDateTime;
#endif
} FILETIME, *PFILETIME, *LPFILETIME;
#if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER {
#else // MIDL_PASS
typedef union _LARGE_INTEGER {
struct {
#if defined(_M_PPCBE)
LONG HighPart;
DWORD LowPart;
#else
DWORD LowPart;
LONG HighPart;
#endif
};
struct {
#if defined(_M_PPCBE)
LONG HighPart;
DWORD LowPart;
#else
DWORD LowPart;
LONG HighPart;
#endif
} u;
#endif //MIDL_PASS
LONGLONG QuadPart;
} LARGE_INTEGER;
typedef LARGE_INTEGER *PLARGE_INTEGER;
#if defined(MIDL_PASS)
typedef struct _ULARGE_INTEGER {
#else // MIDL_PASS
typedef union _ULARGE_INTEGER {
struct {
#if defined(_M_PPCBE)
DWORD HighPart;
DWORD LowPart;
#else
DWORD LowPart;
DWORD HighPart;
#endif
};
struct {
#if defined(_M_PPCBE)
DWORD HighPart;
DWORD LowPart;
#else
DWORD LowPart;
DWORD HighPart;
#endif
} u;
#endif //MIDL_PASS
ULONGLONG QuadPart;
} ULARGE_INTEGER;
typedef ULARGE_INTEGER *PULARGE_INTEGER;
// 360 specifics
typedef long HRESULT;
typedef void* HANDLE;
#define DECLARE_HANDLE(name) typedef HANDLE name
DECLARE_HANDLE(HINSTANCE);
typedef HINSTANCE HMODULE; /* HMODULEs can be used in place of HINSTANCEs */
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
DWORD Offset;
DWORD OffsetHigh;
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
typedef LPVOID PSECURITY_ATTRIBUTES;
typedef LPVOID LPSECURITY_ATTRIBUTES;
#define __in_ecount(a)
#define __in_bcount(a)
// const int XUSER_MAX_COUNT = 4;
#include <stdio.h>
#include <libsn.h>
#include <string>
#include <memory>
#ifdef _CONTENT_PACKAGE
#define PS3_ASSERT(val)
#define PS3_ASSERT_CELL_ERROR(errVal)
#elif defined(_RELEASE_FOR_ART)
#define PS3_ASSERT(val)
#define PS3_ASSERT_CELL_ERROR(errVal)
#else
#define PS3_ASSERT(val) if(!(val)) { printf("----------------------\n"); printf("Assert failed!!!\n"); printf(#val); printf("\n"); printf("%s failed.\nFile %s\nline %d \n----------------------\n", __FUNCTION__, __FILE__, __LINE__); snPause(); }
#define PS3_ASSERT_CELL_ERROR(errVal) if(errVal != CELL_OK) { printf("----------------------\n %s failed with error %d [0x%08x]\n----------------------\n", __FUNCTION__, errVal, errVal); PS3_ASSERT(0); }
#endif
#define assert PS3_ASSERT
+52 -19
View File
@@ -1,5 +1,6 @@
#pragma once #pragma once
#define MAP_STYLE_0 0 #define MAP_STYLE_0 0
#define MAP_STYLE_1 1 #define MAP_STYLE_1 1
#define MAP_STYLE_2 2 #define MAP_STYLE_2 2
@@ -35,9 +36,6 @@
#define _360_JOY_BUTTON_RT 0x00400000 #define _360_JOY_BUTTON_RT 0x00400000
#define _360_JOY_BUTTON_LT 0x00800000 #define _360_JOY_BUTTON_LT 0x00800000
//str1k3r - DualShock 4 / DualSense Touchpad
#define _PS_JOY_BUTTON_TOUCHPAD _360_JOY_BUTTON_BACK
// Stick axis maps - to allow changes for SouthPaw in-game axis mapping // Stick axis maps - to allow changes for SouthPaw in-game axis mapping
#define AXIS_MAP_LX 0 #define AXIS_MAP_LX 0
#define AXIS_MAP_LY 1 #define AXIS_MAP_LY 1
@@ -84,18 +82,6 @@ enum EMSgBoxType
EMSgBoxType_OK, EMSgBoxType_OK,
}; };
enum EControllerType
{
EControllerType_Default,
EControllerType_Xbox360,
EControllerType_XboxOne,
EControllerType_PS3,
EControllerType_PS4,
EControllerType_PS5,
EControllerType_Switch,
EControllerType_Gamecube
};
class C_4JInput class C_4JInput
{ {
public: public:
@@ -115,6 +101,7 @@ public:
void Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC ); void Initialise( int iInputStateC, unsigned char ucMapC,unsigned char ucActionC, unsigned char ucMenuActionC );
void Tick(void); void Tick(void);
void TickKBM(void);
void SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax ); void SetDeadzoneAndMovementRange(unsigned int uiDeadzone, unsigned int uiMovementRangeMax );
void SetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction,unsigned int uiActionVal); void SetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction,unsigned int uiActionVal);
unsigned int GetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction); unsigned int GetGameJoypadMaps(unsigned char ucMap,unsigned char ucAction);
@@ -122,6 +109,7 @@ public:
unsigned char GetJoypadMapVal(int iPad); unsigned char GetJoypadMapVal(int iPad);
void SetJoypadSensitivity(int iPad, float fSensitivity); void SetJoypadSensitivity(int iPad, float fSensitivity);
unsigned int GetValue(int iPad,unsigned char ucAction, bool bRepeat=false); unsigned int GetValue(int iPad,unsigned char ucAction, bool bRepeat=false);
void MapTouchInput(int iPad, int button);
bool ButtonPressed(int iPad,unsigned char ucAction=255); // toggled bool ButtonPressed(int iPad,unsigned char ucAction=255); // toggled
bool ButtonReleased(int iPad,unsigned char ucAction); //toggled bool ButtonReleased(int iPad,unsigned char ucAction); //toggled
bool ButtonDown(int iPad,unsigned char ucAction=255); // button held down bool ButtonDown(int iPad,unsigned char ucAction=255); // button held down
@@ -132,9 +120,8 @@ public:
void SetDebugSequence( const char *chSequenceA,int( *Func)(LPVOID),LPVOID lpParam ); void SetDebugSequence( const char *chSequenceA,int( *Func)(LPVOID),LPVOID lpParam );
FLOAT GetIdleSeconds(int iPad); FLOAT GetIdleSeconds(int iPad);
bool IsPadConnected(int iPad); bool IsPadConnected(int iPad);
void SetSelectBackSwapped(bool swapped); bool IsPadActive(int iPad);
bool IsSelectBackSwapped(); bool IsCircleCrossSwapped();
// In-Game values which may have been remapped due to Southpaw, swap triggers, etc // In-Game values which may have been remapped due to Southpaw, swap triggers, etc
float GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay=true); float GetJoypadStick_LX(int iPad, bool bCheckMenuDisplay=true);
float GetJoypadStick_LY(int iPad, bool bCheckMenuDisplay=true); float GetJoypadStick_LY(int iPad, bool bCheckMenuDisplay=true);
@@ -145,12 +132,57 @@ public:
void SetMenuDisplayed(int iPad, bool bVal); void SetMenuDisplayed(int iPad, bool bVal);
void OnKeyDown(int vkCode);
void OnKeyUp(int vkCode);
void OnChar(wchar_t ch);
void OnMouseMove(int x, int y);
void OnRawMouseDelta(int dx, int dy);
void OnLButtonDown(int x, int y);
void OnLButtonUp(int x, int y);
void OnRButtonDown(int x, int y);
void OnRButtonUp(int x, int y);
void OnMButtonDown(int x, int y);
void OnMButtonUp(int x, int y);
void OnMouseWheel(int delta, int x, int y);
bool IsKeyDown(int vkCode) const;
bool IsKeyPressed(int vkCode) const;
bool IsKeyReleased(int vkCode) const;
int GetMouseX() const;
int GetMouseY() const;
// PIEBOT: Used to be IsLButtonDown, changed so it doesnt conflict with windowx.h
bool IsMouseLDown() const;
bool IsLButtonPressed() const;
bool IsLButtonReleased() const;
bool IsMouseRDown() const;
bool IsRButtonPressed() const;
bool IsRButtonReleased() const;
int GetMouseWheelDelta() const;
wchar_t GetLastChar() const;
bool HasChar() const;
int GetCharCount() const;
wchar_t GetChar(int index) const;
void SetMouseCaptured(bool captured);
void SetWindowFocused(bool focused);
bool IsMouseCaptured() const;
void SetMousePos(int x, int y);
int GetRawMouseX() const;
int GetRawMouseY() const;
// EKeyboardResult RequestKeyboard(UINT uiTitle, UINT uiText, UINT uiDesc, DWORD dwPad, WCHAR *pwchResult, UINT uiResultSize,int( *Func)(LPVOID,const bool),LPVOID lpParam,EKeyboardMode eMode,C4JStringTable *pStringTable=NULL); // EKeyboardResult RequestKeyboard(UINT uiTitle, UINT uiText, UINT uiDesc, DWORD dwPad, WCHAR *pwchResult, UINT uiResultSize,int( *Func)(LPVOID,const bool),LPVOID lpParam,EKeyboardMode eMode,C4JStringTable *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,C4JStringTable *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,C4JStringTable *pStringTable=NULL);
EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode); EKeyboardResult RequestKeyboard(LPCWSTR Title, LPCWSTR Text, DWORD dwPad, UINT uiMaxChars, int( *Func)(LPVOID,const bool),LPVOID lpParam,C_4JInput::EKeyboardMode eMode);
void DestroyKeyboard(); void DestroyKeyboard();
void GetText(uint16_t *UTF16String); void GetText(uint16_t *UTF16String);
EControllerType GetControllerType(int ipad); const char* PollControllerType(int ipad);
void SetLostInputControlCallback(void( *Func)(LPVOID, bool),LPVOID lpParam); void SetLostInputControlCallback(void( *Func)(LPVOID, bool),LPVOID lpParam);
@@ -182,3 +214,4 @@ public:
// Singleton // Singleton
extern C_4JInput InputManager; extern C_4JInput InputManager;
extern HWND g_hWnd;
+1 -7
View File
@@ -75,15 +75,13 @@ public:
// SYS // SYS
int GetPrimaryPad(); int GetPrimaryPad();
void SetPrimaryPad(int iPad); void SetPrimaryPad(int iPad);
void LoadGamertag();
void SetFakeGamerTag(char *name);
char* GetGamertag(int iPad); char* GetGamertag(int iPad);
wstring GetDisplayName(int iPad); wstring GetDisplayName(int iPad);
bool IsFullVersion(); bool IsFullVersion();
void SetSignInChangeCallback(void ( *Func)(LPVOID, bool, unsigned int),LPVOID lpParam); void SetSignInChangeCallback(void ( *Func)(LPVOID, bool, unsigned int),LPVOID lpParam);
void SetNotificationsCallback(void ( *Func)(LPVOID, DWORD, unsigned int),LPVOID lpParam); void SetNotificationsCallback(void ( *Func)(LPVOID, DWORD, unsigned int),LPVOID lpParam);
bool RegionIsNorthAmerica(void);
bool LocaleIsUSorCanada(void); bool LocaleIsUSorCanada(void);
bool LocaleIsChina(void);
HRESULT GetLiveConnectionStatus(); HRESULT GetLiveConnectionStatus();
bool IsSystemUIDisplayed(); bool IsSystemUIDisplayed();
void SetProfileReadErrorCallback(void ( *Func)(LPVOID), LPVOID lpParam); void SetProfileReadErrorCallback(void ( *Func)(LPVOID), LPVOID lpParam);
@@ -99,10 +97,6 @@ public:
void ResetProfileProcessState(); // after a sign out from the primary player, call this void ResetProfileProcessState(); // after a sign out from the primary player, call this
void Tick( void ); void Tick( void );
// SETTINGS
void LoadSettings(void* gs, size_t gsSize);
void SaveSettings(void* gs, size_t gsSize);
// ACHIEVEMENTS & AWARDS // ACHIEVEMENTS & AWARDS
void RegisterAward(int iAwardNumber,int iGamerconfigID, eAwardType eType, bool bLeaderboardAffected=false, void RegisterAward(int iAwardNumber,int iGamerconfigID, eAwardType eType, bool bLeaderboardAffected=false,
-18
View File
@@ -51,29 +51,12 @@ typedef struct _XSOCIAL_PREVIEWIMAGE
// D3DFORMAT Format; // D3DFORMAT Format;
} XSOCIAL_PREVIEWIMAGE, *PXSOCIAL_PREVIEWIMAGE; } XSOCIAL_PREVIEWIMAGE, *PXSOCIAL_PREVIEWIMAGE;
//str1k3r - EScreenSize is a windows64 exclusive thingy
enum EScreenSize
{
EScreenSize_1080P,
EScreenSize_720P,
EScreenSize_544P, //str1k3r - vita screen size
EScreenSize_480P
};
class C4JRender class C4JRender
{ {
public: public:
void Tick(); void Tick();
void UpdateGamma(unsigned short usGamma); void UpdateGamma(unsigned short usGamma);
// VSync
static bool m_VSyncState;
static void SetVSync(bool vs);
static int GetVSync();
// Screen Size
EScreenSize GetScreenSize();
// Matrix stack // Matrix stack
void MatrixMode(int type); void MatrixMode(int type);
void MatrixSetIdentity(); void MatrixSetIdentity();
@@ -96,7 +79,6 @@ public:
void Present(); void Present();
void Clear(int flags, D3D11_RECT *pRect = NULL); void Clear(int flags, D3D11_RECT *pRect = NULL);
void SetClearColour(const float colourRGBA[4]); void SetClearColour(const float colourRGBA[4]);
void setResolution(int ScreenWidth, int ScreenHeight);
bool IsWidescreen(); bool IsWidescreen();
bool IsHiDef(); bool IsHiDef();
void CaptureThumbnail(ImageFileBuffer *pngOut); void CaptureThumbnail(ImageFileBuffer *pngOut);
+5 -5
View File
@@ -285,7 +285,7 @@ public:
// DLC // DLC
void RegisterMarketplaceCountsCallback(int (*Func)(LPVOID lpParam, C4JStorage::DLC_TMS_DETAILS*, int), LPVOID lpParam); void RegisterMarketplaceCountsCallback(int (*Func)(LPVOID lpParam, C4JStorage::DLC_TMS_DETAILS*, int), LPVOID lpParam);
void SetDLCPackageRoot(wchar_t* pszDLCRoot); void SetDLCPackageRoot(char* pszDLCRoot);
C4JStorage::EDLCStatus GetDLCOffers(int iPad, int(*Func)(LPVOID, int, DWORD, int), LPVOID lpParam, DWORD dwOfferTypesBitmask = XMARKETPLACE_OFFERING_TYPE_CONTENT); C4JStorage::EDLCStatus GetDLCOffers(int iPad, int(*Func)(LPVOID, int, DWORD, int), LPVOID lpParam, DWORD dwOfferTypesBitmask = XMARKETPLACE_OFFERING_TYPE_CONTENT);
DWORD CancelGetDLCOffers(); DWORD CancelGetDLCOffers();
void ClearDLCOffers(); void ClearDLCOffers();
@@ -296,10 +296,10 @@ public:
C4JStorage::EDLCStatus GetInstalledDLC(int iPad, int(*Func)(LPVOID, int, int), LPVOID lpParam); C4JStorage::EDLCStatus GetInstalledDLC(int iPad, int(*Func)(LPVOID, int, int), LPVOID lpParam);
XCONTENT_DATA& GetDLC(DWORD dw); XCONTENT_DATA& GetDLC(DWORD dw);
DWORD MountInstalledDLC(int iPad, DWORD dwDLC, int(*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCWSTR szMountDrive = NULL); DWORD MountInstalledDLC(int iPad, DWORD dwDLC, int(*Func)(LPVOID, int, DWORD, DWORD), LPVOID lpParam, LPCSTR szMountDrive = NULL);
DWORD UnmountInstalledDLC(LPCWSTR szMountDrive = NULL); DWORD UnmountInstalledDLC(LPCSTR szMountDrive = NULL);
void GetMountedDLCFileList(const char* szMountDrive, std::vector<std::wstring>& fileList); void GetMountedDLCFileList(const char* szMountDrive, std::vector<std::string>& fileList);
std::wstring GetMountedPath(std::wstring szMount); std::string GetMountedPath(std::string szMount);
// Global title storage // Global title storage
C4JStorage::ETMSStatus ReadTMSFile(int iQuadrant, eGlobalStorage eStorageFacility, C4JStorage::eTMS_FileType eFileType, C4JStorage::ETMSStatus ReadTMSFile(int iQuadrant, eGlobalStorage eStorageFacility, C4JStorage::eTMS_FileType eFileType,
+106 -5
View File
@@ -8,17 +8,23 @@
#define MULTITHREAD_ENABLE #define MULTITHREAD_ENABLE
const int XUSER_INDEX_ANY = 255; //const int XUSER_INDEX_ANY = 255;
const int XUSER_INDEX_FOCUS = 254; const int XUSER_INDEX_FOCUS = 254;
#ifdef __PSVITA__ #ifdef __PSVITA__
const int XUSER_MAX_COUNT = 1; const int XUSER_MAX_COUNT = 1;
const int MINECRAFT_NET_MAX_PLAYERS = 4; const int MINECRAFT_NET_MAX_PLAYERS = 4;
#else #else
const int XUSER_MAX_COUNT = 4; //const int XUSER_MAX_COUNT = 4;
const int MINECRAFT_NET_MAX_PLAYERS = 8; const int MINECRAFT_NET_MAX_PLAYERS = 8;
#endif #endif
// @Patoke: i'm sorry i had to do this for compat
namespace sigma
{
enum class byte : unsigned char {};
}
#ifdef __ORBIS__ #ifdef __ORBIS__
#include <net.h> #include <net.h>
#include <np/np_npid.h> #include <np/np_npid.h>
@@ -34,7 +40,10 @@ typedef SQRNetworkManager_Orbis::PresenceSyncInfo INVITE_INFO;
#include <netex/libnetctl.h> #include <netex/libnetctl.h>
#include <assert.h> #include <assert.h>
#include <stdlib.h> #include <stdlib.h>
#include "Ps3Types.h" #include "..\..\Minecraft.Client\PS3\PS3_PlayerUID.h"
#include "..\..\Minecraft.Client\PS3\Network\SQRNetworkManager_PS3.h"
typedef SQRNetworkManager::SessionID SessionID;
typedef SQRNetworkManager::PresenceSyncInfo INVITE_INFO;
#elif defined __PSVITA__ #elif defined __PSVITA__
#include <np.h> #include <np.h>
@@ -60,7 +69,7 @@ class INVITE_INFO;
#endif // __PS3__ #endif // __PS3__
#if !(defined _DURANGO || __PS3__) #ifndef _DURANGO
typedef PlayerUID *PPlayerUID; typedef PlayerUID *PPlayerUID;
#endif #endif
typedef struct _XUIOBJ* HXUIOBJ; typedef struct _XUIOBJ* HXUIOBJ;
@@ -74,8 +83,49 @@ typedef struct _XUIDC* HXUIDC;
// void GetLocalTime(SYSTEMTIME *time); // void GetLocalTime(SYSTEMTIME *time);
// #endif // #endif
bool IsEqualXUID(PlayerUID a, PlayerUID b);
using namespace std; using namespace std;
// Temporary implementation of lock free stack with quite a bit more locking than you might expect
template <typename T> class XLockFreeStack
{
std::vector<T *> intStack;
public:
XLockFreeStack() {
#ifdef __ORBIS__
OrbisInit(); // For PS4, we need to make sure Ult is set up for the critical sections to be able to initialise
#endif
InitializeCriticalSectionAndSpinCount(&m_cs,5120);
}
~XLockFreeStack() { DeleteCriticalSection( &m_cs ); }
void Initialize() {}
void Push(T *data)
{
EnterCriticalSection(&m_cs);
intStack.push_back(data);
LeaveCriticalSection(&m_cs);
}
T *Pop()
{
EnterCriticalSection(&m_cs);
if( intStack.size() )
{
T* ret = intStack.back();
intStack.pop_back();
LeaveCriticalSection(&m_cs);
return ret;
}
else
{
LeaveCriticalSection(&m_cs);
return NULL;
}
}
private:
CRITICAL_SECTION m_cs;
};
void XMemCpy(void *a, const void *b, size_t s); void XMemCpy(void *a, const void *b, size_t s);
void XMemSet(void *a, int t, size_t s); void XMemSet(void *a, int t, size_t s);
void XMemSet128(void *a, int t, size_t s); void XMemSet128(void *a, int t, size_t s);
@@ -154,6 +204,7 @@ public:
bool IsHost(); bool IsHost();
bool IsGuest(); bool IsGuest();
bool IsLocal(); bool IsLocal();
PlayerUID GetXuid();
LPCWSTR GetGamertag(); LPCWSTR GetGamertag();
int GetSessionIndex(); int GetSessionIndex();
bool IsTalking(); bool IsTalking();
@@ -207,6 +258,19 @@ typedef struct _XSESSION_SEARCHRESULT_HEADER {
XSESSION_SEARCHRESULT *pResults; XSESSION_SEARCHRESULT *pResults;
} XSESSION_SEARCHRESULT_HEADER, *PXSESSION_SEARCHRESULT_HEADER; } XSESSION_SEARCHRESULT_HEADER, *PXSESSION_SEARCHRESULT_HEADER;
typedef struct _XONLINE_FRIEND {
PlayerUID xuid;
CHAR szGamertag[XUSER_NAME_SIZE];
DWORD dwFriendState;
SessionID sessionID;
DWORD dwTitleID;
FILETIME ftUserTime;
SessionID xnkidInvite;
FILETIME gameinviteTime;
DWORD cchRichPresence;
// WCHAR wszRichPresence[MAX_RICHPRESENCE_SIZE];
} XONLINE_FRIEND, *PXONLINE_FRIEND;
class IQNetCallbacks class IQNetCallbacks
{ {
}; };
@@ -230,6 +294,25 @@ typedef enum _QNET_STATE
QNET_STATE_SESSION_DELETING QNET_STATE_SESSION_DELETING
} QNET_STATE, * PQNET_STATE; } QNET_STATE, * PQNET_STATE;
class IQNet
{
public:
HRESULT AddLocalPlayerByUserIndex(DWORD dwUserIndex);
IQNetPlayer *GetHostPlayer();
IQNetPlayer *GetLocalPlayerByUserIndex(DWORD dwUserIndex);
IQNetPlayer *GetPlayerByIndex(DWORD dwPlayerIndex);
IQNetPlayer *GetPlayerBySmallId(BYTE SmallId);
IQNetPlayer *GetPlayerByXuid(PlayerUID xuid);
DWORD GetPlayerCount();
QNET_STATE GetState();
bool IsHost();
HRESULT JoinGameFromInviteInfo(DWORD dwUserIndex, DWORD dwUserMask, const INVITE_INFO *pInviteInfo);
void HostGame();
void EndGame();
static IQNetPlayer m_player[4];
};
#ifdef _DURANGO #ifdef _DURANGO
// 4J Stu - We don't want to be doing string conversions at runtime for timing instrumentation, so do this instead // 4J Stu - We don't want to be doing string conversions at runtime for timing instrumentation, so do this instead
#define PIXBeginNamedEvent(a, b, ...) PIXBeginEvent(a,L ## b, __VA_ARGS__) #define PIXBeginNamedEvent(a, b, ...) PIXBeginEvent(a,L ## b, __VA_ARGS__)
@@ -271,7 +354,7 @@ typedef struct _XCONTENT_DATA
XCONTENTDEVICEID DeviceID; XCONTENTDEVICEID DeviceID;
DWORD dwContentType; DWORD dwContentType;
WCHAR szDisplayName[XCONTENT_MAX_DISPLAYNAME_LENGTH]; WCHAR szDisplayName[XCONTENT_MAX_DISPLAYNAME_LENGTH];
WCHAR szFileName[XCONTENT_MAX_FILENAME_LENGTH]; CHAR szFileName[XCONTENT_MAX_FILENAME_LENGTH];
} XCONTENT_DATA, *PXCONTENT_DATA; } XCONTENT_DATA, *PXCONTENT_DATA;
#endif //__PS3__ #endif //__PS3__
@@ -319,13 +402,31 @@ typedef enum
const int QNET_SENDDATA_RELIABLE = 0; const int QNET_SENDDATA_RELIABLE = 0;
const int QNET_SENDDATA_SEQUENTIAL = 0; const int QNET_SENDDATA_SEQUENTIAL = 0;
struct XRNM_SEND_BUFFER
{
DWORD dwDataSize;
sigma::byte *pbyData;
};
const int D3DBLEND_CONSTANTALPHA = 0; const int D3DBLEND_CONSTANTALPHA = 0;
const int D3DBLEND_INVCONSTANTALPHA = 0; const int D3DBLEND_INVCONSTANTALPHA = 0;
const int D3DPT_QUADLIST = 0; const int D3DPT_QUADLIST = 0;
typedef struct _XUSER_SIGNIN_INFO {
PlayerUID xuid;
DWORD dwGuestNumber;
} XUSER_SIGNIN_INFO, *PXUSER_SIGNIN_INFO;
#define XUSER_GET_SIGNIN_INFO_ONLINE_XUID_ONLY 0x00000001 #define XUSER_GET_SIGNIN_INFO_ONLINE_XUID_ONLY 0x00000001
#define XUSER_GET_SIGNIN_INFO_OFFLINE_XUID_ONLY 0x00000002 #define XUSER_GET_SIGNIN_INFO_OFFLINE_XUID_ONLY 0x00000002
DWORD XUserGetSigninInfo(
DWORD dwUserIndex,
DWORD dwFlags,
PXUSER_SIGNIN_INFO pSigninInfo
);
class CXuiStringTable class CXuiStringTable
{ {
public: public:
-108
View File
@@ -1,108 +0,0 @@
#define S_OK 0
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef int __int32;
typedef FLOAT *PFLOAT;
typedef BOOL *PBOOL;
typedef BOOL *LPBOOL;
typedef BYTE *PBYTE;
typedef BYTE *LPBYTE;
typedef int *PINT;
typedef int *LPINT;
typedef WORD *PWORD;
typedef WORD *LPWORD;
typedef long *PLONG;
typedef long *LPLONG;
typedef DWORD *PDWORD;
typedef DWORD *LPDWORD;
typedef void *LPVOID;
typedef const void *LPCVOID;
typedef void *PVOID;
typedef unsigned long ULONG;
typedef unsigned char boolean;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
typedef unsigned char byte;
typedef long long __int64;
typedef unsigned long long __uint64;
typedef unsigned long DWORD;
typedef int INT;
typedef unsigned long ULONG_PTR, *PULONG_PTR;
typedef ULONG_PTR SIZE_T, *PSIZE_T;
typedef __int64 LONG64, *PLONG64;
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
typedef __int64 LONGLONG;
typedef __uint64 ULONGLONG;
#define CONST const
typedef wchar_t WCHAR; // wc, 16-bit UNICODE character
typedef WCHAR *PWCHAR;
typedef WCHAR *LPWCH, *PWCH;
typedef CONST WCHAR *LPCWCH, *PCWCH;
typedef WCHAR *NWPSTR;
typedef WCHAR *LPWSTR, *PWSTR;
typedef CONST WCHAR *LPCWSTR, *PCWSTR;
//
// ANSI (Multi-byte Character) types
//
typedef CHAR *PCHAR;
typedef CHAR *LPCH, *PCH;
typedef CONST CHAR *LPCCH, *PCCH;
typedef CHAR *NPSTR;
typedef CHAR *LPSTR, *PSTR;
typedef CONST CHAR *LPCSTR, *PCSTR;
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#if defined(MIDL_PASS)
typedef struct _LARGE_INTEGER {
#else // MIDL_PASS
typedef union _LARGE_INTEGER {
struct {
#if defined(_M_PPCBE)
LONG HighPart;
DWORD LowPart;
#else
DWORD LowPart;
LONG HighPart;
#endif
};
struct {
#if defined(_M_PPCBE)
LONG HighPart;
DWORD LowPart;
#else
DWORD LowPart;
LONG HighPart;
#endif
} u;
#endif //MIDL_PASS
LONGLONG QuadPart;
} LARGE_INTEGER;
typedef LARGE_INTEGER *PLARGE_INTEGER;
-6
View File
@@ -1,11 +1,5 @@
# 4JLibs-VS2012 # 4JLibs-VS2012
# IMPORTANT:
If you're to use these libs or use code we made in your libs, make sure to credit us in your project's description
## WARNING:
This needs the [Windows 10 SDK](https://learn.microsoft.com/en-us/windows/apps/windows-sdk/downloads#windows-10) to build `4J_Render`.
## Implementation ## Implementation
For implementation details, please look at the [IMPLEMENTATION_GUIDE.md](.gitea/IMPLEMENTATION_GUIDE.md) file For implementation details, please look at the [IMPLEMENTATION_GUIDE.md](.gitea/IMPLEMENTATION_GUIDE.md) file