mirror of
https://github.com/krystalgamer/spidey-decomp.git
synced 2024-10-06 18:23:23 +00:00
Pad_Update
This commit is contained in:
parent
dd4d1feacb
commit
79c5741edb
@ -362,11 +362,11 @@ char Font::getCharIndex(char a2)
|
||||
|
||||
if (a2 == 165)
|
||||
{
|
||||
if (gSControl.field_14C <= 512)
|
||||
if (gSControl[0].field_14C <= 512)
|
||||
{
|
||||
if (gSControl.field_14C != 512)
|
||||
if (gSControl[0].field_14C != 512)
|
||||
{
|
||||
switch (gSControl.field_14C)
|
||||
switch (gSControl[0].field_14C)
|
||||
{
|
||||
case 2:
|
||||
return 1;
|
||||
@ -379,7 +379,7 @@ char Font::getCharIndex(char a2)
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (gSControl.field_14C == 1024)
|
||||
else if (gSControl[0].field_14C == 1024)
|
||||
{
|
||||
return 23;
|
||||
}
|
||||
@ -387,11 +387,11 @@ char Font::getCharIndex(char a2)
|
||||
|
||||
if (a2 == 167)
|
||||
{
|
||||
if (gSControl.field_148 <= 512)
|
||||
if (gSControl[0].field_148 <= 512)
|
||||
{
|
||||
if (gSControl.field_148 != 512)
|
||||
if (gSControl[0].field_148 != 512)
|
||||
{
|
||||
switch (gSControl.field_148)
|
||||
switch (gSControl[0].field_148)
|
||||
{
|
||||
case 2:
|
||||
return 1;
|
||||
@ -404,7 +404,7 @@ char Font::getCharIndex(char a2)
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (gSControl.field_148 == 1024)
|
||||
else if (gSControl[0].field_148 == 1024)
|
||||
{
|
||||
return 23;
|
||||
}
|
||||
@ -412,11 +412,11 @@ char Font::getCharIndex(char a2)
|
||||
|
||||
if (a2 == 166)
|
||||
{
|
||||
if (gSControl.field_144 <= 512)
|
||||
if (gSControl[0].field_144 <= 512)
|
||||
{
|
||||
if (gSControl.field_144 != 512)
|
||||
if (gSControl[0].field_144 != 512)
|
||||
{
|
||||
switch (gSControl.field_144)
|
||||
switch (gSControl[0].field_144)
|
||||
{
|
||||
case 2:
|
||||
return 1;
|
||||
@ -429,7 +429,7 @@ char Font::getCharIndex(char a2)
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (gSControl.field_144 == 1024)
|
||||
else if (gSControl[0].field_144 == 1024)
|
||||
{
|
||||
return 23;
|
||||
}
|
||||
@ -440,11 +440,11 @@ char Font::getCharIndex(char a2)
|
||||
if (!DifficultyLevel)
|
||||
return 0;
|
||||
|
||||
if (gSControl.field_140 <= 512)
|
||||
if (gSControl[0].field_140 <= 512)
|
||||
{
|
||||
if (gSControl.field_140 != 512)
|
||||
if (gSControl[0].field_140 != 512)
|
||||
{
|
||||
switch (gSControl.field_140)
|
||||
switch (gSControl[0].field_140)
|
||||
{
|
||||
case 2:
|
||||
return 1;
|
||||
@ -457,7 +457,7 @@ char Font::getCharIndex(char a2)
|
||||
return 24;
|
||||
}
|
||||
}
|
||||
else if (gSControl.field_140 == 1024)
|
||||
else if (gSControl[0].field_140 == 1024)
|
||||
{
|
||||
return 23;
|
||||
}
|
||||
|
86
ps2pad.cpp
86
ps2pad.cpp
@ -1,14 +1,56 @@
|
||||
#include "ps2pad.h"
|
||||
#include "PCInput.h"
|
||||
#include "PCShell.h"
|
||||
|
||||
#include "validate.h"
|
||||
|
||||
SControl gSControl;
|
||||
SControl gSControl[NUM_CONTROLLERS];
|
||||
EXPORT i32 Pad_IdleTime;
|
||||
|
||||
static int gPadActuator[255];
|
||||
|
||||
// @SMALLTODO
|
||||
void Pad_Update(void)
|
||||
// @Ok
|
||||
// @Matching
|
||||
i32 Pad_Update(void)
|
||||
{
|
||||
printf("void Pad_Update(void)");
|
||||
Pad_IdleTime++;
|
||||
u32 v3;
|
||||
u32 v4;
|
||||
PCINPUT_GetMappedStates(&v3, &v4);
|
||||
|
||||
if (PCSHELL_UpdateMouse())
|
||||
Pad_IdleTime = 0;
|
||||
|
||||
for (i32 i = 0; i < NUM_CONTROLLERS; i++)
|
||||
{
|
||||
gSControl[i].field_16C = 65;
|
||||
Pad_Button(&gSControl[i].Triangle, v3 & 0x80);
|
||||
Pad_Button(&gSControl[i].Square, v3 & 0x40);
|
||||
Pad_Button(&gSControl[i].Circle, v3 & 0x20);
|
||||
Pad_Button(&gSControl[i].X, v3 & 0x10);
|
||||
Pad_Button(&gSControl[i].LeftOne, v3 & 0x100);
|
||||
Pad_Button(&gSControl[i].LeftTwo, 0);
|
||||
Pad_Button(&gSControl[i].RightOne, v3 & 0x200);
|
||||
Pad_Button(&gSControl[i].RightTwo, v3 & 0x400);
|
||||
Pad_Button(&gSControl[i].Left, v3 & 4);
|
||||
Pad_Button(&gSControl[i].Right, v3 & 8);
|
||||
Pad_Button(&gSControl[i].Up, v3 & 1);
|
||||
Pad_Button(&gSControl[i].Down, v3 & 2);
|
||||
Pad_Button(&gSControl[i].AnalogueLeft, 0);
|
||||
Pad_Button(&gSControl[i].AnalogueRight, 0);
|
||||
Pad_Button(&gSControl[i].Start, v3 & 0x1000);
|
||||
Pad_Button(&gSControl[i].Select, 0);
|
||||
if ( !i )
|
||||
{
|
||||
Pad_Button(&gSControl[0].Crouch, v3 & 0x10);
|
||||
Pad_Button(&gSControl[0].Jump, v3 & 0x80);
|
||||
Pad_Button(&gSControl[0].SmartBomb, v3 & 0x40);
|
||||
Pad_Button(&gSControl[0].SelectWeapon, v3 & 0x20);
|
||||
}
|
||||
}
|
||||
|
||||
DCPad_ExpireVibrations();
|
||||
return 0;
|
||||
}
|
||||
|
||||
// @NotOk
|
||||
@ -57,7 +99,6 @@ void DCPad_Vibrate(i32,signed char,u8,u8)
|
||||
printf("DCPad_Vibrate(i32,signed char,u8,u8)");
|
||||
}
|
||||
|
||||
EXPORT i32 Pad_IdleTime;
|
||||
|
||||
// @Ok
|
||||
// @Matching
|
||||
@ -138,10 +179,45 @@ void Pad_SetAnalogueMapping(SControl *,u8,u8,u8,u8,i32,i32,i32,i32)
|
||||
|
||||
void validate_SControl(void)
|
||||
{
|
||||
VALIDATE_SIZE(SControl, 0x18C);
|
||||
|
||||
VALIDATE(SControl, Triangle, 0x0);
|
||||
VALIDATE(SControl, Square, 0x10);
|
||||
VALIDATE(SControl, Circle, 0x20);
|
||||
VALIDATE(SControl, X, 0x30);
|
||||
|
||||
VALIDATE(SControl, LeftOne, 0x40);
|
||||
VALIDATE(SControl, LeftTwo, 0x50);
|
||||
|
||||
VALIDATE(SControl, RightOne, 0x60);
|
||||
VALIDATE(SControl, RightTwo, 0x70);
|
||||
|
||||
VALIDATE(SControl, Left, 0x80);
|
||||
VALIDATE(SControl, Right, 0x90);
|
||||
VALIDATE(SControl, Up, 0xA0);
|
||||
VALIDATE(SControl, Down, 0xB0);
|
||||
|
||||
VALIDATE(SControl, AnalogueLeft, 0xC0);
|
||||
VALIDATE(SControl, AnalogueRight, 0xD0);
|
||||
|
||||
VALIDATE(SControl, Start, 0xE0);
|
||||
VALIDATE(SControl, Select, 0xF0);
|
||||
|
||||
VALIDATE(SControl, Crouch, 0x100);
|
||||
VALIDATE(SControl, Jump, 0x110);
|
||||
VALIDATE(SControl, SmartBomb, 0x120);
|
||||
VALIDATE(SControl, SelectWeapon, 0x130);
|
||||
|
||||
VALIDATE(SControl, field_140, 0x140);
|
||||
VALIDATE(SControl, field_144, 0x144);
|
||||
VALIDATE(SControl, field_148, 0x148);
|
||||
|
||||
VALIDATE(SControl, field_140, 0x140);
|
||||
VALIDATE(SControl, field_144, 0x144);
|
||||
VALIDATE(SControl, field_148, 0x148);
|
||||
VALIDATE(SControl, field_14C, 0x14C);
|
||||
|
||||
VALIDATE(SControl, field_16C, 0x16C);
|
||||
}
|
||||
|
||||
void validate_SButton(void)
|
||||
|
53
ps2pad.h
53
ps2pad.h
@ -5,16 +5,6 @@
|
||||
|
||||
#include "export.h"
|
||||
|
||||
struct SControl
|
||||
{
|
||||
u8 pad[0x140];
|
||||
|
||||
i32 field_140;
|
||||
i32 field_144;
|
||||
i32 field_148;
|
||||
i32 field_14C;
|
||||
};
|
||||
|
||||
struct SButton
|
||||
{
|
||||
u8 Pressed;
|
||||
@ -26,6 +16,43 @@ struct SButton
|
||||
i32 TriggeredTime;
|
||||
};
|
||||
|
||||
struct SControl
|
||||
{
|
||||
SButton Triangle;
|
||||
SButton Square;
|
||||
SButton Circle;
|
||||
SButton X;
|
||||
SButton LeftOne;
|
||||
SButton LeftTwo;
|
||||
SButton RightOne;
|
||||
SButton RightTwo;
|
||||
SButton Left;
|
||||
SButton Right;
|
||||
SButton Up;
|
||||
SButton Down;
|
||||
|
||||
SButton AnalogueLeft;
|
||||
SButton AnalogueRight;
|
||||
|
||||
SButton Start;
|
||||
SButton Select;
|
||||
|
||||
SButton Crouch;
|
||||
SButton Jump;
|
||||
SButton SmartBomb;
|
||||
SButton SelectWeapon;
|
||||
|
||||
i32 field_140;
|
||||
i32 field_144;
|
||||
i32 field_148;
|
||||
i32 field_14C;
|
||||
u8 padAfter14C[0x16C-0x14C-4];
|
||||
|
||||
i32 field_16C;
|
||||
|
||||
u8 padBottom[0x18C-0x16C-4];
|
||||
};
|
||||
|
||||
EXPORT void Pad_SetDigitalMapping(SControl*, i32, i32, i32, i32);
|
||||
EXPORT void Pad_ActuatorOff(u8, u8);
|
||||
EXPORT u16 Pad_GetActuatorTime(u8, u8);
|
||||
@ -40,10 +67,12 @@ EXPORT void Pad_ClearAllOne(i32);
|
||||
EXPORT void Pad_ClearTriggers(SControl *);
|
||||
EXPORT void Pad_InitAtStart(void);
|
||||
EXPORT void Pad_SetAnalogueMapping(SControl *,u8,u8,u8,u8,i32,i32,i32,i32);
|
||||
EXPORT void Pad_Update(void);
|
||||
EXPORT i32 Pad_Update(void);
|
||||
|
||||
void validate_SControl(void);
|
||||
void validate_SButton(void);
|
||||
EXPORT extern SControl gSControl;
|
||||
|
||||
static const i32 NUM_CONTROLLERS = 1;
|
||||
EXPORT extern SControl gSControl[NUM_CONTROLLERS];
|
||||
|
||||
#endif
|
||||
|
@ -343,9 +343,9 @@ void Shell_LegalScreen(void)
|
||||
Front_ClearScreen();
|
||||
|
||||
DrawSync();
|
||||
Pad_ClearTriggers(&gSControl);
|
||||
Pad_ClearTriggers(gSControl);
|
||||
Pad_Update();
|
||||
Pad_ClearTriggers(&gSControl);
|
||||
Pad_ClearTriggers(gSControl);
|
||||
|
||||
Sprite2* v0 = new Sprite2("LegalPC.bmp", 1, 0, 0, 3);
|
||||
u32 v3 = Vblanks + 180;
|
||||
@ -375,7 +375,7 @@ void Shell_LegalScreen(void)
|
||||
Front_ClearScreen();
|
||||
|
||||
DrawSync();
|
||||
Pad_ClearTriggers(&gSControl);
|
||||
Pad_ClearTriggers(gSControl);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user