mirror of https://github.com/nmlgc/ReC98.git
[Reverse-engineering] [th05] Player shot cycle bitflags
A TH05 innovation that actually makes the game code easier to read?! Although it was quite hard to actually reverse-engineer it, with the confusing flag ordering pointing to some deeper meaning behind the flags, which really doesn't exist. Completes P0036, funded by zorg.
This commit is contained in:
parent
a84fa33beb
commit
82b0e1db24
|
@ -1,3 +1,45 @@
|
||||||
|
## Signedness
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|-|-|
|
||||||
|
| `MOV al, var`<br />`MOV ah, 0`| `var` is *unsigned char* |
|
||||||
|
|
||||||
|
## Arithmetic
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|-|-|
|
||||||
|
| `ADD [m8], imm8` | Only achievable through a C++ method operating on a member? |
|
||||||
|
| `MOV AL, [m8]`<br />`ADD AL, imm8`<br />`MOV [m8], AL` | Opposite; *not* an inlined function |
|
||||||
|
|
||||||
|
### Arithmetic on a register *after* assigning it to a variable?
|
||||||
|
|
||||||
|
Assigment is part of the C expression. If it's a comparison, that comparison
|
||||||
|
must be spelled out to silence the `Possibly incorrect assignment` warning.
|
||||||
|
|
||||||
|
| | |
|
||||||
|
|-|-|
|
||||||
|
| `CALL somefunc`<br />`MOV ??, AX`<br />`OR AX, AX`<br />`JNZ ↑` | `while(( ?? = somefunc() ) != NULL)` |
|
||||||
|
|
||||||
|
### `SUB ??, imm` vs. `ADD ??, -imm`
|
||||||
|
|
||||||
|
`SUB` means that `??` is unsigned. Might require suffixing `imm` with `u` in
|
||||||
|
case it's part of an arithmetic expression that was promoted to `int`.
|
||||||
|
|
||||||
|
## `switch` statements
|
||||||
|
|
||||||
|
* Sequence of the individual cases is identical in both C and ASM
|
||||||
|
* Multiple cases with the same offset in the table, to code that doesn't
|
||||||
|
return? Code was compiled with `-O`
|
||||||
|
|
||||||
|
## Inlining
|
||||||
|
|
||||||
|
Always worth a try to get rid of a potential macro. Some edge cases don't
|
||||||
|
inline optimally though:
|
||||||
|
|
||||||
|
* Assignments to a pointer in `SI` – that pointer is moved to `DI`,
|
||||||
|
[clobbering that register](#clobbering-di). Try a [class method](#C++)
|
||||||
|
instead.
|
||||||
|
|
||||||
## C++
|
## C++
|
||||||
|
|
||||||
* Every class method that returns `*this` inlines to the ideal representation.
|
* Every class method that returns `*this` inlines to the ideal representation.
|
||||||
|
|
|
@ -0,0 +1,56 @@
|
||||||
|
public SHOT_CYCLE_INIT
|
||||||
|
shot_cycle_init proc near
|
||||||
|
|
||||||
|
@@cycle_flag = byte ptr [bp-1]
|
||||||
|
|
||||||
|
enter 2, 0
|
||||||
|
mov @@cycle_flag, 0
|
||||||
|
mov al, _shot_time
|
||||||
|
mov ah, 0
|
||||||
|
sub ax, 3
|
||||||
|
mov bx, ax
|
||||||
|
cmp bx, 15
|
||||||
|
ja short @@cycle____
|
||||||
|
add bx, bx
|
||||||
|
jmp word ptr cs:@@time_to_cycle[bx]
|
||||||
|
|
||||||
|
@@cycle6321:
|
||||||
|
mov @@cycle_flag, SC_6X or SC_3X or SC_2X or SC_1X
|
||||||
|
jmp short @@snd
|
||||||
|
|
||||||
|
@@cycle6_2_:
|
||||||
|
mov @@cycle_flag, SC_6X or SC_2X
|
||||||
|
jmp short @@in_a_cycle
|
||||||
|
|
||||||
|
@@cycle63__:
|
||||||
|
mov @@cycle_flag, SC_6X or SC_3X
|
||||||
|
|
||||||
|
@@snd:
|
||||||
|
call snd_se_play pascal, 1
|
||||||
|
jmp short @@in_a_cycle
|
||||||
|
|
||||||
|
@@cycle6___:
|
||||||
|
mov @@cycle_flag, SC_6X
|
||||||
|
jmp short @@in_a_cycle
|
||||||
|
|
||||||
|
@@cycle____:
|
||||||
|
mov al, 0
|
||||||
|
leave
|
||||||
|
retn
|
||||||
|
|
||||||
|
@@in_a_cycle:
|
||||||
|
mov _shot_ptr, offset _shots
|
||||||
|
mov _shot_last_id, 0
|
||||||
|
mov al, @@cycle_flag
|
||||||
|
leave
|
||||||
|
retn
|
||||||
|
|
||||||
|
db 0
|
||||||
|
@@time_to_cycle label word
|
||||||
|
dw @@cycle6___, @@cycle____, @@cycle____
|
||||||
|
dw @@cycle63__, @@cycle____, @@cycle____
|
||||||
|
dw @@cycle6_2_, @@cycle____, @@cycle____
|
||||||
|
dw @@cycle63__, @@cycle____, @@cycle____
|
||||||
|
dw @@cycle6___, @@cycle____, @@cycle____
|
||||||
|
dw @@cycle6321
|
||||||
|
shot_cycle_init endp
|
|
@ -11,6 +11,22 @@
|
||||||
bb_seg_t pascal near bb_load(const char far *fn);
|
bb_seg_t pascal near bb_load(const char far *fn);
|
||||||
/// -------
|
/// -------
|
||||||
|
|
||||||
|
/// Player
|
||||||
|
/// ------
|
||||||
|
// Shots
|
||||||
|
// -----
|
||||||
|
// Shot cycle bitflags
|
||||||
|
#define SC_1X 0x8 // Triggered 1× per cycle
|
||||||
|
#define SC_2X 0x2 // Triggered 2× per cycle
|
||||||
|
#define SC_3X 0x1 // Triggered 3× per cycle
|
||||||
|
#define SC_6X 0x4 // Triggered 6× per cycle
|
||||||
|
|
||||||
|
// Returns the current shot cycle, and prepares everything for more shots
|
||||||
|
// being added.
|
||||||
|
char pascal near shot_cycle_init(void);
|
||||||
|
// -----
|
||||||
|
/// ------
|
||||||
|
|
||||||
/// Stages
|
/// Stages
|
||||||
/// ------
|
/// ------
|
||||||
void pascal near stage2_update(void);
|
void pascal near stage2_update(void);
|
||||||
|
|
|
@ -2,6 +2,11 @@ GAME = 5
|
||||||
include th04/shared.inc
|
include th04/shared.inc
|
||||||
|
|
||||||
include th05/player/shot_types.inc
|
include th05/player/shot_types.inc
|
||||||
|
; Shot cycle bitflags
|
||||||
|
SC_1X = 08h ; Triggered 1× per cycle
|
||||||
|
SC_2X = 02h ; Triggered 2× per cycle
|
||||||
|
SC_3X = 01h ; Triggered 3× per cycle
|
||||||
|
SC_6X = 04h ; Triggered 6× per cycle
|
||||||
|
|
||||||
_player_option_patnum = 26
|
_player_option_patnum = 26
|
||||||
|
|
||||||
|
|
144
th05_main.asm
144
th05_main.asm
|
@ -13640,81 +13640,7 @@ loc_128FA:
|
||||||
retf
|
retf
|
||||||
sub_12842 endp
|
sub_12842 endp
|
||||||
|
|
||||||
|
include th05/player/shot_cycle_init.asm
|
||||||
; =============== S U B R O U T I N E =======================================
|
|
||||||
|
|
||||||
; Attributes: bp-based frame
|
|
||||||
|
|
||||||
sub_12914 proc near
|
|
||||||
|
|
||||||
var_1 = byte ptr -1
|
|
||||||
|
|
||||||
enter 2, 0
|
|
||||||
mov [bp+var_1], 0
|
|
||||||
mov al, _shot_time
|
|
||||||
mov ah, 0
|
|
||||||
sub ax, 3
|
|
||||||
mov bx, ax
|
|
||||||
cmp bx, 0Fh
|
|
||||||
ja short loc_12951
|
|
||||||
add bx, bx
|
|
||||||
jmp word ptr cs:table_12966[bx]
|
|
||||||
|
|
||||||
loc_12932:
|
|
||||||
mov [bp+var_1], 0Fh
|
|
||||||
jmp short loc_12942
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
loc_12938:
|
|
||||||
mov [bp+var_1], 6
|
|
||||||
jmp short loc_12955
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
loc_1293E:
|
|
||||||
mov [bp+var_1], 5
|
|
||||||
|
|
||||||
loc_12942:
|
|
||||||
call snd_se_play pascal, 1
|
|
||||||
jmp short loc_12955
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
loc_1294B:
|
|
||||||
mov [bp+var_1], 4
|
|
||||||
jmp short loc_12955
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
loc_12951:
|
|
||||||
mov al, 0
|
|
||||||
leave
|
|
||||||
retn
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
loc_12955:
|
|
||||||
mov _shot_ptr, offset _shots
|
|
||||||
mov _shot_last_id, 0
|
|
||||||
mov al, [bp+var_1]
|
|
||||||
leave
|
|
||||||
retn
|
|
||||||
sub_12914 endp
|
|
||||||
|
|
||||||
; ---------------------------------------------------------------------------
|
|
||||||
db 0
|
|
||||||
table_12966 dw loc_1294B
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_1293E
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12938
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_1293E
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_1294B
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12951
|
|
||||||
dw loc_12932
|
|
||||||
|
|
||||||
; =============== S U B R O U T I N E =======================================
|
; =============== S U B R O U T I N E =======================================
|
||||||
|
|
||||||
|
@ -13724,7 +13650,7 @@ shot_l0 proc near
|
||||||
push bp
|
push bp
|
||||||
mov bp, sp
|
mov bp, sp
|
||||||
push si
|
push si
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 1
|
test al, 1
|
||||||
jz short loc_1299E
|
jz short loc_1299E
|
||||||
call shots_add
|
call shots_add
|
||||||
|
@ -13748,7 +13674,7 @@ shot_l1 proc near
|
||||||
push bp
|
push bp
|
||||||
mov bp, sp
|
mov bp, sp
|
||||||
push si
|
push si
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 1
|
test al, 1
|
||||||
jz short loc_129C8
|
jz short loc_129C8
|
||||||
call shots_add
|
call shots_add
|
||||||
|
@ -13779,7 +13705,7 @@ shot_reimu_l2 proc near
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 1
|
mov byte ptr [bp-1], 1
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz short loc_12A49
|
jz short loc_12A49
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -13853,7 +13779,7 @@ shot_reimu_l3 proc near
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 2
|
mov byte ptr [bp-1], 2
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz short loc_12ACD
|
jz short loc_12ACD
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -13930,7 +13856,7 @@ shot_reimu_l4 proc near
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 3
|
mov byte ptr [bp-1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz short loc_12B51
|
jz short loc_12B51
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -14005,7 +13931,7 @@ shot_reimu_l5 proc near
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 3
|
mov byte ptr [bp-1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_12BEE
|
jz loc_12BEE
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -14091,7 +14017,7 @@ shot_reimu_l6 proc near
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 3
|
mov byte ptr [bp-1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_12C8B
|
jz loc_12C8B
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -14177,7 +14103,7 @@ shot_reimu_l7 proc near
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 5
|
mov byte ptr [bp-1], 5
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_12D28
|
jz loc_12D28
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -14263,7 +14189,7 @@ shot_reimu_l8 proc near
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 7
|
mov byte ptr [bp-1], 7
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 1
|
test al, 1
|
||||||
jnz short loc_12DA0
|
jnz short loc_12DA0
|
||||||
jmp short loc_12DA9
|
jmp short loc_12DA9
|
||||||
|
@ -14338,7 +14264,7 @@ shot_reimu_l9 proc near
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp-1], 7
|
mov byte ptr [bp-1], 7
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_12E5F
|
jz loc_12E5F
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -14437,7 +14363,7 @@ var_1 = byte ptr -1
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov [bp+var_1], 1
|
mov [bp+var_1], 1
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz short loc_12EE1
|
jz short loc_12EE1
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -14512,7 +14438,7 @@ var_1 = byte ptr -1
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov [bp+var_1], 2
|
mov [bp+var_1], 2
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_12F94
|
jz loc_12F94
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -14619,7 +14545,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 3
|
mov byte ptr [bp+var_2+1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_1308E
|
jz loc_1308E
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -14746,7 +14672,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 3
|
mov byte ptr [bp+var_2+1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_13195
|
jz loc_13195
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -14877,7 +14803,7 @@ var_1 = byte ptr -1
|
||||||
push si
|
push si
|
||||||
push di
|
push di
|
||||||
mov [bp+var_1], 4
|
mov [bp+var_1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_1329E
|
jz loc_1329E
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -15017,7 +14943,7 @@ var_1 = byte ptr -1
|
||||||
push si
|
push si
|
||||||
push di
|
push di
|
||||||
mov [bp+var_1], 4
|
mov [bp+var_1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_133D8
|
jz loc_133D8
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -15175,7 +15101,7 @@ var_1 = byte ptr -1
|
||||||
push si
|
push si
|
||||||
push di
|
push di
|
||||||
mov [bp+var_1], 4
|
mov [bp+var_1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_13516
|
jz loc_13516
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -15333,7 +15259,7 @@ var_1 = byte ptr -1
|
||||||
push si
|
push si
|
||||||
push di
|
push di
|
||||||
mov [bp+var_1], 6
|
mov [bp+var_1], 6
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz loc_13697
|
jz loc_13697
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -15522,7 +15448,7 @@ var_1 = byte ptr -1
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov [bp+var_1], 2
|
mov [bp+var_1], 2
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz short loc_13720
|
jz short loc_13720
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -15591,7 +15517,7 @@ var_1 = byte ptr -1
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov [bp+var_1], 2
|
mov [bp+var_1], 2
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz short loc_13798
|
jz short loc_13798
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -15666,7 +15592,7 @@ var_1 = byte ptr -1
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov [bp+var_1], 4
|
mov [bp+var_1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz short loc_13828
|
jz short loc_13828
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -15761,7 +15687,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 4
|
mov byte ptr [bp+var_2+1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz short loc_138C0
|
jz short loc_138C0
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -15854,7 +15780,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 4
|
mov byte ptr [bp+var_2+1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz loc_1396C
|
jz loc_1396C
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -15956,7 +15882,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 6
|
mov byte ptr [bp+var_2+1], 6
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz loc_13A1F
|
jz loc_13A1F
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -16064,7 +15990,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 6
|
mov byte ptr [bp+var_2+1], 6
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz loc_13AE7
|
jz loc_13AE7
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -16174,7 +16100,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 6
|
mov byte ptr [bp+var_2+1], 6
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 5
|
test al, 5
|
||||||
jz loc_13BE8
|
jz loc_13BE8
|
||||||
test al, 1
|
test al, 1
|
||||||
|
@ -16320,7 +16246,7 @@ var_2 = word ptr -2
|
||||||
enter 2, 0
|
enter 2, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 1
|
mov byte ptr [bp+var_2+1], 1
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 9
|
test al, 9
|
||||||
jz short loc_13C74
|
jz short loc_13C74
|
||||||
test al, 8
|
test al, 8
|
||||||
|
@ -16394,7 +16320,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 2
|
mov byte ptr [bp+var_2+1], 2
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz short loc_13CFF
|
jz short loc_13CFF
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -16479,7 +16405,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 3
|
mov byte ptr [bp+var_2+1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_13D9D
|
jz loc_13D9D
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -16569,7 +16495,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 3
|
mov byte ptr [bp+var_2+1], 3
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_13E53
|
jz loc_13E53
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -16680,7 +16606,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 4
|
mov byte ptr [bp+var_2+1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_13F34
|
jz loc_13F34
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -16815,7 +16741,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 4
|
mov byte ptr [bp+var_2+1], 4
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_14033
|
jz loc_14033
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -16963,7 +16889,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 5
|
mov byte ptr [bp+var_2+1], 5
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_14131
|
jz loc_14131
|
||||||
test al, 2
|
test al, 2
|
||||||
|
@ -17116,7 +17042,7 @@ var_2 = word ptr -2
|
||||||
enter 4, 0
|
enter 4, 0
|
||||||
push si
|
push si
|
||||||
mov byte ptr [bp+var_2+1], 5
|
mov byte ptr [bp+var_2+1], 5
|
||||||
call sub_12914
|
call shot_cycle_init
|
||||||
test al, 3
|
test al, 3
|
||||||
jz loc_14248
|
jz loc_14248
|
||||||
test al, 2
|
test al, 2
|
||||||
|
|
Loading…
Reference in New Issue