Skip to content

Commit c2a8cac

Browse files
committed
Current Progress on my Laptop
TManagedPtr<> not working
1 parent d62be51 commit c2a8cac

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+985
-145
lines changed

OpenJPOG/Source/GUI/AGUIGameHUD.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ class AGUIGameHUD
3535
// $JPOG: 0046e4a0 FUNCTION
3636
Toshi::TLString GetHintMessage()
3737
{
38-
return *m_LSHintMessage.m_pObject;
38+
return m_LSHintMessage;
3939
}
4040
// $JPOG: 0046e520 FUNCTION
4141
HUDComponents GetHUD()
@@ -54,8 +54,8 @@ class AGUIGameHUD
5454
}
5555

5656
private:
57-
Toshi::TManagedPtr<Toshi::TLString> m_LSHintMessage; // 0x4
58-
HUDComponents m_eHUDComponents; // 0x8
59-
Toshi::TCString m_szBKGMatLib; // 0x2C
57+
Toshi::TLString m_LSHintMessage; // 0x4
58+
HUDComponents m_eHUDComponents; // 0x8
59+
Toshi::TCString m_szBKGMatLib; // 0x2C
6060
};
6161

OpenJPOG/Source/GUI/AGUISystem.cpp

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,28 @@
11
#include "AGUISystem.h"
22
#include "main.h"
33

4-
54
TOSHI_NAMESPACE_USING
65

76
IMPLEMENT_DYNCREATE(AGUISystem, TTask)
87

8+
AGUISystem::AGUISystem()
9+
{
10+
m_pGUIInterface = TNULL;
11+
}
12+
13+
TBOOL AGUISystem::OnCreate()
14+
{
15+
auto pRenderer = g_oTheApp.GetRootTask()->GetRenderInterface();
16+
m_pNullResource = (TNullResource*)pRenderer->CreateResource(&TGetClass(TNullResource), TNULL, TNULL);
17+
m_pGUIInterface->Create();
18+
return TBOOL();
19+
}
20+
21+
TBOOL AGUISystem::OnUpdate(TFLOAT a_fDeltaTime)
22+
{
23+
return TBOOL();
24+
}
25+
926
void AGUISystem::UpdateHUDComponets()
1027
{
1128
}

OpenJPOG/Source/GUI/AGUISystem.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,30 @@
11
#pragma once
22
#include "TKernel/TCString.h"
33
#include "TKernel/TTask.h"
4+
#include "TKernel/TManagedPointer.h"
5+
#include "TRender/TNullResource.h"
6+
#include "TGui/TGUIInterface.h"
47

58
class AGUISystem : public Toshi::TTask
69
{
710
DECLARE_DYNAMIC(AGUISystem)
811
public:
912

13+
AGUISystem();
14+
15+
virtual TBOOL OnCreate() override;
16+
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override;
17+
1018
void UpdateHUDComponets();
19+
Toshi::TManagedPtr<Toshi::TGUIInterface> GetGUIInterface() const
20+
{
21+
return m_pGUIInterface;
22+
}
1123

1224
static AGUISystem* TOSHI_API GetGUISystem();
25+
26+
private:
27+
Toshi::TGUIInterface* m_pGUIInterface; // 0x24
28+
Toshi::TNullResource* m_pNullResource; // 0x140
1329
};
1430

OpenJPOG/Source/Movie/ABINKMoviePlayer.cpp

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -97,16 +97,16 @@ TBOOL ABINKMoviePlayer::StartMovie(TPCHAR a_szMovieName, TBOOL a_bUnk1, TPCHAR a
9797
TTextureResource* pTexture = GetCurrentTexture();
9898
if (!pTexture) {
9999
TTextureFactory* pTextureFactory = (TTextureFactory*)renderer->GetSystemResource(TRenderInterface::SYSRESOURCE_TEXTUREFACTORY);
100-
TPVOID pData = tmalloc(0x200000, TNULL, -1);
101-
TSystem::MemSet(pData, 0xFF, 0x200000);
100+
TPCHAR pData = new char[0x200000];
101+
TSystem::MemSet(pData, 0xFF, sizeof(pData));
102102
pTexture = pTextureFactory->CreateEx(pData, 0x200000, 1024, 512, 1, TTEXTURERESOURCEFORMAT::R8G8B8A8, 32);
103103
if (pTexture) {
104104
pTexture->Validate();
105105
m_iFrameBufferWidth = 1024;
106106
m_iFrameBufferHeight = 512;
107107
SetCurrentTexture(pTexture);
108108
}
109-
tfree(pData);
109+
delete[] pData;
110110
}
111111

112112
if (!m_bDoAudio) {
@@ -115,8 +115,6 @@ TBOOL ABINKMoviePlayer::StartMovie(TPCHAR a_szMovieName, TBOOL a_bUnk1, TPCHAR a
115115
RenderMovie(TTRUE);
116116
m_bHasMovieStopped = TFALSE;
117117
return TTRUE;
118-
119-
return TBOOL();
120118
}
121119

122120
TBOOL ABINKMoviePlayer::Update(TFLOAT a_fDeltaTime)
@@ -220,14 +218,15 @@ TBOOL ABINKMoviePlayer::InitializeVideoResource()
220218

221219
TBOOL ABINKMoviePlayer::InitializeAudioResource()
222220
{
223-
TRenderD3DInterface* renderer = (TRenderD3DInterface*)g_oTheApp.GetRootTask()->GetRenderInterface();
221+
TManagedPtr<TRenderInterface> renderer = g_oTheApp.GetRootTask()->GetRenderInterface();
222+
TRenderD3DInterface *d3drenderer = (TRenderD3DInterface *)renderer.operator Toshi::TRenderInterface *();
224223
HRESULT hResult = DirectSoundCreate(NULL, &m_pDirectSound, NULL);
225224

226225
if (FAILED(hResult)) {
227226
m_pDirectSound = NULL;
228227
}
229228
else {
230-
m_pDirectSound->SetCooperativeLevel(renderer->GetMSWindow()->GetHWND(), 2);
229+
m_pDirectSound->SetCooperativeLevel(d3drenderer->GetMSWindow()->GetHWND(), 2);
231230
BinkSoundUseDirectSound(m_pDirectSound);
232231
}
233232
return TTRUE;

OpenJPOG/Source/States/AFrontEndSplashState.cpp

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,104 @@
44

55
TOSHI_NAMESPACE_USING
66

7-
IMPLEMENT_DYNCREATE(AFrontEndSplashState, ARootState)
7+
IMPLEMENT_DYNCREATE(AFrontEndSplashState, AFrontendState)
88

9-
AFrontEndSplashState::AFrontEndSplashState(TBOOL a_bUnk, TFLOAT a_fUnk)
9+
AFrontEndSplashState::AFrontEndSplashState(TBOOL a_bInitialise, TFLOAT a_fUnk)
1010
{
11-
11+
m_bInitialise = a_bInitialise;
12+
m_bMovieStarted = TFALSE;
13+
m_iLogoScreenIndex = 0;
14+
m_bLogoScreenSet = TFALSE;
1215
}
1316

1417
void AFrontEndSplashState::OnActivate()
1518
{
1619
ARootState::OnActivate();
1720
AMoviePlayer* pMoviePlayer = g_oTheApp.GetRootTask()->GetMoviePlayer();
21+
22+
//AGUISystem::GetGUISystem()->Get;
23+
1824
pMoviePlayer->SetDoAudio(TTRUE);
1925
pMoviePlayer->InitializeMoviePlayer();
2026
}
2127

2228
TBOOL AFrontEndSplashState::OnUpdate(TFLOAT a_fDeltaTime)
2329
{
24-
static TBOOL s_StartMovie = TTRUE;
25-
2630
AMoviePlayer* pMoviePlayer = g_oTheApp.GetRootTask()->GetMoviePlayer();
2731

32+
if (m_bInitialise) {
33+
static TFLOAT s_fStopLoadingSounds = 0.0f;
34+
static TFLOAT s_fStartLoadingSounds = 5.0f;
35+
static TFLOAT s_fTimeLeftLoadingSounds = 5.0f;
36+
if (s_fStopLoadingSounds < s_fTimeLeftLoadingSounds) {
37+
if (s_fTimeLeftLoadingSounds < s_fStartLoadingSounds && s_bLoadedSound) {
38+
// ASoundManager
39+
s_bLoadedSound = TTRUE;
40+
}
41+
s_fTimeLeftLoadingSounds -= a_fDeltaTime;
42+
return ARootState::OnUpdate(a_fDeltaTime);
43+
}
44+
if (!m_bLogoScreenSet) {
45+
m_oHUDState.ClearBackgroundPicture();
46+
m_oHUDState.SetBackgroundMatLib(sm_asLogoScreens[m_iLogoScreenIndex]);
47+
m_bLogoScreenSet = TTRUE;
48+
}
49+
if (RunLogoState(a_fDeltaTime)) {
50+
return ARootState::OnUpdate(a_fDeltaTime);
51+
}
52+
}
53+
54+
if (!m_bMovieStarted) {
55+
m_bMovieStarted = TTRUE;
56+
}
57+
static TBOOL s_StartMovie = TTRUE;
2858
if (s_StartMovie) {
2959
s_StartMovie = TFALSE;
3060
if (pMoviePlayer && !pMoviePlayer->IsMoviePlaying()) {
3161
pMoviePlayer->StartMovie((TPCHAR)"Intro", TFALSE, (TPCHAR)"Intro", TTRUE);
3262
}
3363
}
64+
else if (!pMoviePlayer) {
65+
//SetStartScreen();
66+
}
67+
else {
68+
if (!pMoviePlayer->IsMoviePlaying()) {
69+
pMoviePlayer->RenderMovie(TFALSE);
70+
//SetStartScreen();
71+
}
72+
else {
73+
pMoviePlayer->RenderMovie(TTRUE);
74+
}
75+
}
3476

3577
return ARootState::OnUpdate(a_fDeltaTime);
3678
}
79+
80+
void AFrontEndSplashState::OnInsertion()
81+
{
82+
AFrontendState::OnInsertion();
83+
if (m_bInitialise) {
84+
m_oHUDState.SetBackgroundMatLib("Data/Matlibs/bkg_Lic_pc.tml");
85+
}
86+
}
87+
88+
TBOOL AFrontEndSplashState::RunLogoState(TFLOAT a_fDeltaTime)
89+
{
90+
if (m_iLogoScreenIndex <= 0) {
91+
return TFALSE;
92+
}
93+
TFLOAT curLogoTime = m_fLogoDisplayTime + a_fDeltaTime;
94+
if (sm_fLogoDisplayTime <= curLogoTime) {
95+
m_iLogoScreenIndex++;
96+
m_fLogoDisplayTime = 0;
97+
if (m_iLogoScreenIndex <= 0) {
98+
return TFALSE;
99+
}
100+
m_oHUDState.ClearBackgroundPicture();
101+
m_oHUDState.SetBackgroundMatLib(sm_asLogoScreens[m_iLogoScreenIndex]);
102+
}
103+
else {
104+
m_fLogoDisplayTime = curLogoTime;
105+
}
106+
return TTRUE;
107+
}

OpenJPOG/Source/States/AFrontEndSplashState.h

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,21 @@ class AFrontEndSplashState : public AFrontendState
1717

1818
virtual void OnActivate() override;
1919
virtual TBOOL OnUpdate(TFLOAT a_fDeltaTime) override;
20+
// $JPOG: FUNCTION 0048a220
21+
virtual void OnInsertion() override;
2022

2123
private:
22-
static inline Toshi::TCString* sm_asLogoScreens = TNULL;
24+
TBOOL RunLogoState(TFLOAT a_fDeltaTime);
25+
26+
private:
27+
static inline Toshi::TCString* sm_asLogoScreens = new Toshi::TCString("bkg_bink.tml");
28+
static inline TBOOL s_bLoadedSound = TFALSE;
29+
static inline TFLOAT sm_fLogoDisplayTime = 2.5f;
30+
31+
TBOOL m_bMovieStarted; // 0x5C
32+
TBOOL m_bInitialise; // 0x64
33+
TINT m_iLogoScreenIndex; // 0x68
34+
TFLOAT m_fLogoDisplayTime; // 0x6C
35+
TBOOL m_bLogoScreenSet; // 0x70
2336
};
2437

OpenJPOG/Source/States/ARootState.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class ARootState : public Toshi::TObject
4141
public:
4242
AGUIGameHUD& GetHUDState() { return m_oHUDState; }
4343

44-
private:
44+
protected:
4545
ARootState* m_pParent; // 0x4
4646
ARootState* m_pChild; // 0x8
4747
TBOOL m_bAllowExit; // 0xC

OpenJPOG/Source/Tasks/AFrontEndController.h

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,14 @@
44
class AFrontEndController : public Toshi::TTask
55
{
66
DECLARE_DYNAMIC(AFrontEndController)
7+
8+
public:
9+
virtual TBOOL OnCreate() override
10+
{
11+
return TTask::OnCreate();
12+
}
13+
virtual void OnDestroy() override
14+
{
15+
TTask::OnDestroy();
16+
}
717
};

OpenJPOG/Source/Tasks/ARootStateController.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ TBOOL ARootStateController::OnCreate()
2121
TBOOL ARootStateController::OnUpdate(TFLOAT a_fDeltaTime)
2222
{
2323
if (m_pBaseAppState) {
24-
ARootState currentState = m_pBaseAppState->GetCurrent();
24+
ARootState& currentState = m_pBaseAppState->GetCurrent();
2525
currentState.OnUpdate(a_fDeltaTime);
2626
}
2727
return TTRUE;

OpenJPOG/Source/Tasks/ARootTask.cpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ ARootTask::ARootTask()
1818
m_pVibrationTask = TNULL;
1919
m_pMoviePlayer = TNULL;
2020
m_pOptions = new AOptions();
21-
AllocateARenderer();
2221
AllocateRenderInterface();
22+
AllocateGUISystem();
23+
AllocateARenderer();
2324
AllocateGameStateController();
2425
m_pMoviePlayer = TNULL;
2526
}
@@ -85,7 +86,7 @@ void ARootTask::UnloadFrontEndController()
8586

8687
void ARootTask::AllocateARenderer()
8788
{
88-
m_pRenderer = (ARenderer*)g_oTheApp.GetKernel()->GetScheduler()->CreateTask(TGetClass(ARenderer), g_oTheApp.GetRenderRootTask());
89+
m_pRenderer = ApplicationCreateTask(ARenderer, g_oTheApp.GetRenderRootTask());
8990
}
9091

9192
void ARootTask::AllocateRenderInterface()
@@ -98,15 +99,18 @@ void ARootTask::AllocateRenderInterface()
9899

99100
void ARootTask::AllocateGameStateController()
100101
{
101-
m_pGameStateController = (ARootStateController*)g_oTheApp.GetKernel()->GetScheduler()->CreateTask(TGetClass(ARootStateController), this);
102+
m_pGameStateController = ApplicationCreateTask(ARootStateController, this);
103+
}
104+
105+
void ARootTask::AllocateGUISystem()
106+
{
107+
m_pGUISystem = ApplicationCreateTask(AGUISystem, g_oTheApp.GetUpdate3RootTask());
102108
}
103109

104110
void ARootTask::AllocateInputSystem()
105111
{
106-
TScheduler* pScheduler = g_oTheApp.GetKernel()->GetScheduler();
107-
ADummyTask* pInputTask = g_oTheApp.GetInputRootTask();
108-
m_pInputTask = pScheduler->CreateTask(TGetClass(ADummyTask), pInputTask);
109-
m_pVibrationTask = (AVibrationManager*)pScheduler->CreateTask(TGetClass(AVibrationManager), pInputTask);
112+
m_pInputTask = ApplicationCreateTask(ADummyTask, g_oTheApp.GetInputRootTask());
113+
m_pVibrationTask = ApplicationCreateTask(AVibrationManager, g_oTheApp.GetInputRootTask());
110114
}
111115

112116
void ARootTask::CreateARenderer()

0 commit comments

Comments
 (0)