mirror of https://github.com/nmlgc/ReC98.git
[Reverse-engineering] [th01] Stage objects: Card flip scores
Case in point: This structure member, which is located after all the obstacle members. Sure, it'll look weird to see this one initialized by a class method, but it'll be much weirder to somehow group both cards and obstacles into one class. Part of P0128, funded by Yanga.
This commit is contained in:
parent
7df4e0517b
commit
27b3f29a0a
|
@ -11,6 +11,10 @@ enum card_flag_t {
|
||||||
CARD_REMOVED = 2,
|
CARD_REMOVED = 2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Stored outside the class for some reason... Only valid during the card flip
|
||||||
|
// animation, and reset to 0 afterwards.
|
||||||
|
extern unsigned long *cards_score;
|
||||||
|
|
||||||
struct CCards {
|
struct CCards {
|
||||||
screen_x_t *left;
|
screen_x_t *left;
|
||||||
vram_y_t *top;
|
vram_y_t *top;
|
||||||
|
|
|
@ -3971,12 +3971,10 @@ loc_E040:
|
||||||
jmp short $+2
|
jmp short $+2
|
||||||
|
|
||||||
loc_E060:
|
loc_E060:
|
||||||
cmp off_39EAC, 0
|
cmp _cards_score, 0
|
||||||
jz short loc_E080
|
jz short loc_E080
|
||||||
pushd [off_39EAC] ; font
|
call @$bdla$qnv c, large [_cards_score]
|
||||||
call @$bdla$qnv
|
mov _cards_score, 0
|
||||||
add sp, 4
|
|
||||||
mov off_39EAC, 0
|
|
||||||
jmp short $+2
|
jmp short $+2
|
||||||
|
|
||||||
loc_E080:
|
loc_E080:
|
||||||
|
@ -4048,12 +4046,10 @@ loc_E184:
|
||||||
jmp short $+2
|
jmp short $+2
|
||||||
|
|
||||||
loc_E1A4:
|
loc_E1A4:
|
||||||
cmp off_39EAC, 0
|
cmp _cards_score, 0
|
||||||
jz short loc_E1C4
|
jz short loc_E1C4
|
||||||
pushd [off_39EAC] ; font
|
call @$bdla$qnv c, large [_cards_score]
|
||||||
call @$bdla$qnv
|
mov _cards_score, 0
|
||||||
add sp, 4
|
|
||||||
mov off_39EAC, 0
|
|
||||||
jmp short $+2
|
jmp short $+2
|
||||||
|
|
||||||
loc_E1C4:
|
loc_E1C4:
|
||||||
|
@ -18127,8 +18123,8 @@ loc_1FECC:
|
||||||
xor ax, ax
|
xor ax, ax
|
||||||
|
|
||||||
loc_1FECE:
|
loc_1FECE:
|
||||||
imul ax, 0Fh
|
imul ax, 15
|
||||||
add ax, 14h
|
add ax, 20
|
||||||
cwde
|
cwde
|
||||||
pop edx
|
pop edx
|
||||||
imul edx, eax
|
imul edx, eax
|
||||||
|
@ -18137,14 +18133,14 @@ loc_1FECE:
|
||||||
push edx
|
push edx
|
||||||
cwd
|
cwd
|
||||||
idiv bx
|
idiv bx
|
||||||
imul ax, 64h
|
imul ax, 100
|
||||||
add ax, 64h ; 'd'
|
add ax, 100
|
||||||
cwde
|
cwde
|
||||||
pop edx
|
pop edx
|
||||||
add edx, eax
|
add edx, eax
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
mov es:[bx], edx
|
mov es:[bx], edx
|
||||||
cmp dword ptr es:[bx], 25600
|
cmp dword ptr es:[bx], 25600
|
||||||
|
@ -18154,7 +18150,7 @@ loc_1FECE:
|
||||||
loc_1FF15:
|
loc_1FF15:
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
mov eax, es:[bx]
|
mov eax, es:[bx]
|
||||||
add _score, eax
|
add _score, eax
|
||||||
|
@ -18234,7 +18230,7 @@ sub_20071 proc far
|
||||||
loc_2007C:
|
loc_2007C:
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
cmp dword ptr es:[bx], 0
|
cmp dword ptr es:[bx], 0
|
||||||
jz loc_201B1
|
jz loc_201B1
|
||||||
|
@ -18258,9 +18254,9 @@ loc_200B2:
|
||||||
loc_200B4:
|
loc_200B4:
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
cmp dword ptr es:[bx], 2710h
|
cmp dword ptr es:[bx], 10000
|
||||||
jbe short loc_200D0
|
jbe short loc_200D0
|
||||||
mov [bp+@@x], -8
|
mov [bp+@@x], -8
|
||||||
jmp short loc_20101
|
jmp short loc_20101
|
||||||
|
@ -18269,9 +18265,9 @@ loc_200B4:
|
||||||
loc_200D0:
|
loc_200D0:
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
cmp dword ptr es:[bx], 3E8h
|
cmp dword ptr es:[bx], 1000
|
||||||
jbe short loc_200EC
|
jbe short loc_200EC
|
||||||
mov [bp+@@x], 0
|
mov [bp+@@x], 0
|
||||||
jmp short loc_20101
|
jmp short loc_20101
|
||||||
|
@ -18280,9 +18276,9 @@ loc_200D0:
|
||||||
loc_200EC:
|
loc_200EC:
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
cmp dword ptr es:[bx], 64h ; 'd'
|
cmp dword ptr es:[bx], 100
|
||||||
mov [bp+@@x], 8
|
mov [bp+@@x], 8
|
||||||
|
|
||||||
loc_20101:
|
loc_20101:
|
||||||
|
@ -18326,7 +18322,7 @@ loc_20142:
|
||||||
jl short loc_20167
|
jl short loc_20167
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
mov dword ptr es:[bx], 0
|
mov dword ptr es:[bx], 0
|
||||||
jmp short loc_201B1
|
jmp short loc_201B1
|
||||||
|
@ -18338,7 +18334,7 @@ loc_20167:
|
||||||
push ax
|
push ax
|
||||||
mov ax, si
|
mov ax, si
|
||||||
shl ax, 2
|
shl ax, 2
|
||||||
les bx, off_39EAC
|
les bx, _cards_score
|
||||||
add bx, ax
|
add bx, ax
|
||||||
push word ptr es:[bx]
|
push word ptr es:[bx]
|
||||||
call str_from_positive_int16
|
call str_from_positive_int16
|
||||||
|
@ -19436,8 +19432,8 @@ loc_2099C:
|
||||||
push ax
|
push ax
|
||||||
call @$bnwa$qui
|
call @$bnwa$qui
|
||||||
pop cx
|
pop cx
|
||||||
mov word ptr off_39EAC+2, dx
|
mov word ptr _cards_score+2, dx
|
||||||
mov word ptr off_39EAC, ax
|
mov word ptr _cards_score, ax
|
||||||
jmp short $+2
|
jmp short $+2
|
||||||
|
|
||||||
loc_20A27:
|
loc_20A27:
|
||||||
|
@ -21058,7 +21054,7 @@ sub_21819 proc far
|
||||||
mov _cards_flag, 0
|
mov _cards_flag, 0
|
||||||
mov _cards_flip_frames, 0
|
mov _cards_flip_frames, 0
|
||||||
mov _cards_hp, 0
|
mov _cards_hp, 0
|
||||||
mov off_39EAC, 0
|
mov _cards_score, 0
|
||||||
mov _obstacle_count, 1
|
mov _obstacle_count, 1
|
||||||
mov _obstacles_left, 0
|
mov _obstacles_left, 0
|
||||||
mov _obstacles_top, 0
|
mov _obstacles_top, 0
|
||||||
|
@ -45581,7 +45577,7 @@ byte_39E7A db ?
|
||||||
off_39E7C dd ?
|
off_39E7C dd ?
|
||||||
dword_39E80 dd ?
|
dword_39E80 dd ?
|
||||||
|
|
||||||
public _cards, _obstacles
|
public _cards, _obstacles, _cards_score
|
||||||
_cards label
|
_cards label
|
||||||
_cards_left dd ?
|
_cards_left dd ?
|
||||||
_cards_top dd ?
|
_cards_top dd ?
|
||||||
|
@ -45596,8 +45592,7 @@ _obstacles_top dd ?
|
||||||
_obstacles_type dd ?
|
_obstacles_type dd ?
|
||||||
_obstacles_type_frames dd ?
|
_obstacles_type_frames dd ?
|
||||||
_obstacle_count dw ?
|
_obstacle_count dw ?
|
||||||
; void (*off_39EAC)(void)
|
_cards_score dd ?
|
||||||
off_39EAC dd ?
|
|
||||||
word_39EB0 dw ?
|
word_39EB0 dw ?
|
||||||
byte_39EB2 db ?
|
byte_39EB2 db ?
|
||||||
; void (*off_39EB3)(void)
|
; void (*off_39EB3)(void)
|
||||||
|
|
Loading…
Reference in New Issue