mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-25 22:07:34 +00:00
FULLPIPE: Implement sceneHandler29_shootRed()
This commit is contained in:
parent
6a984425e8
commit
c08a4fdba1
@ -1305,8 +1305,8 @@ namespace Fullpipe {
|
||||
#define MV_PTR_MOVEFAST 2102
|
||||
#define MV_SHG_HITASS 2151
|
||||
#define MV_SHG_NORM 2117
|
||||
#define MV_SHG_NORM 2117
|
||||
#define MV_SHR_HITASS 2152
|
||||
#define MV_SHR_NORM 2131
|
||||
#define MV_STR1_SHOOT 2109
|
||||
#define MV_STR2_SHOOT 2112
|
||||
#define PIC_SC29_LTRUBA 2081
|
||||
|
@ -249,7 +249,76 @@ void sceneHandler29_shootGreen() {
|
||||
}
|
||||
|
||||
void sceneHandler29_shootRed() {
|
||||
warning("STUB: sceneHandler29_shootRed()");
|
||||
if (g_vars->scene29_var05.numBalls) {
|
||||
int x = g_vars->scene29_shooter1->_ox - 101;
|
||||
int y = g_vars->scene29_shooter1->_oy - 14;
|
||||
StaticANIObject *ani = g_vars->scene29_var05.pHead->ani;
|
||||
Ball *oldhead = g_vars->scene29_var05.pHead;
|
||||
Ball *oldp0 = g_vars->scene29_var05.pHead->p0;
|
||||
|
||||
g_vars->scene29_var05.pHead = g_vars->scene29_var05.pHead->p0;
|
||||
|
||||
if (g_vars->scene29_var05.pHead)
|
||||
oldp0->p1 = 0;
|
||||
else
|
||||
g_vars->scene29_var05.field_8 = 0;
|
||||
|
||||
oldhead->p0 = g_vars->scene29_var05.pTail;
|
||||
|
||||
g_vars->scene29_var05.pTail = oldhead;
|
||||
g_vars->scene29_var05.numBalls--;
|
||||
|
||||
if (!g_vars->scene29_var05.numBalls) {
|
||||
g_vars->scene29_var05.numBalls = 0;
|
||||
g_vars->scene29_var05.pTail = 0;
|
||||
g_vars->scene29_var05.field_8 = 0;
|
||||
g_vars->scene29_var05.pHead = 0;
|
||||
|
||||
free(g_vars->scene29_var05.cPlex);
|
||||
g_vars->scene29_var05.cPlex = 0;
|
||||
}
|
||||
|
||||
ani->show1(x, y, MV_SHR_NORM, 0);
|
||||
ani->_priority = 5;
|
||||
|
||||
Ball *runPtr = g_vars->scene29_var07.pTail;
|
||||
Ball *lastP = g_vars->scene29_var07.field_8;
|
||||
|
||||
if (!g_vars->scene29_var07.pTail) {
|
||||
g_vars->scene29_var07.cPlex = (byte *)calloc(g_vars->scene29_var07.cPlexLen, sizeof(Ball));
|
||||
|
||||
byte *p1 = g_vars->scene29_var07.cPlex + (g_vars->scene29_var07.cPlexLen - 1) * sizeof(Ball);
|
||||
|
||||
if (g_vars->scene29_var07.cPlexLen - 1 < 0) {
|
||||
runPtr = g_vars->scene29_var07.pTail;
|
||||
} else {
|
||||
runPtr = g_vars->scene29_var07.pTail;
|
||||
|
||||
for (int j = 0; j < g_vars->scene29_var07.cPlexLen; j++) {
|
||||
((Ball *)p1)->p1 = runPtr;
|
||||
runPtr = (Ball *)p1;
|
||||
|
||||
p1 -= sizeof(Ball);
|
||||
}
|
||||
|
||||
g_vars->scene29_var07.pTail = runPtr;
|
||||
}
|
||||
}
|
||||
g_vars->scene29_var07.pTail = runPtr->p0;
|
||||
runPtr->p1 = lastP;
|
||||
runPtr->p0 = 0;
|
||||
runPtr->ani = ani;
|
||||
|
||||
g_vars->scene29_var07.numBalls++;
|
||||
|
||||
if (g_vars->scene29_var07.field_8) {
|
||||
g_vars->scene29_var07.field_8->p0 = runPtr;
|
||||
g_vars->scene29_var07.field_8 = runPtr;
|
||||
} else {
|
||||
g_vars->scene29_var07.pHead = runPtr;
|
||||
g_vars->scene29_var07.field_8 = runPtr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void sceneHandler29_manJump() {
|
||||
|
Loading…
x
Reference in New Issue
Block a user