[C decompilation] [th01/op] [th01/reiiden] Random resident structure stuff

This commit is contained in:
nmlgc 2015-03-07 17:35:30 +01:00
parent 3b175c8980
commit 160d4eb69f
11 changed files with 298 additions and 495 deletions

View File

@ -28,11 +28,15 @@ th05:: $(TH05:\=bin\th05\)
bin\th01\zunsoft.com: th01\zunsoft.c
$(CC) $(CFLAGS) -mt -lt -nbin\th01\ $** masters.lib
bin\th01\op.exe: bin\th01\op.obj th01\op_11.c th01\op_12.cpp
$(CC) $(CFLAGS) -ml -3 -nbin\th01\ -eOP.EXE $**
bin\th01\op.exe: bin\th01\op.obj th01\op_10.c th01\op_11.c th01\op_12.cpp
$(CC) $(CFLAGS) -ml -3 -nbin\th01\ -eOP.EXE @&&|
$**
|
bin\th01\reiiden.exe: bin\th01\reiiden.obj th01\main_16.c
$(CC) $(CFLAGS) -ml -3 -nbin\th01\ -eREIIDEN.EXE $**
bin\th01\reiiden.exe: bin\th01\reiiden.obj th01\main_12.c th01\main_16.c
$(CC) $(CFLAGS) -ml -3 -nbin\th01\ -eREIIDEN.EXE @&&|
$**
|
bin\th01\fuuin.exe: bin\th01\fuuin.obj th01\fuuin_11.c th01\fuuin_13.c
$(CC) $(CFLAGS) -ml -3 -nbin\th01\ -eFUUIN.EXE @&&|

View File

@ -30,6 +30,11 @@
if((val) < 0) { \
(val) = ring_end; \
}
// Resident structure
#define RES_ID_LEN sizeof(RES_ID)
#define RES_ID_STRLEN (RES_ID_LEN - 1)
#define RES_PARASIZE ((sizeof(resident_t) + 0xF) >> 4)
// ------
#define RES_X 640

6
th01/main_12.c Normal file
View File

@ -0,0 +1,6 @@
/* ReC98
* -----
* Code segment #12 of TH01's REIIDEN.EXE
*/
#include "th01/resstuff.c"

6
th01/op_10.c Normal file
View File

@ -0,0 +1,6 @@
/* ReC98
* -----
* Code segment #10 of TH01's OP.EXE
*/
#include "th01/resstuff.c"

66
th01/resstuff.c Normal file
View File

@ -0,0 +1,66 @@
/* ReC98
* -----
* Random resident structure stuff
*/
#include "th01/th01.h"
#pragma option -2
extern const char res_id[] /* = RES_ID */;
extern resident_t *reiidenconfig;
void resident_stuff_set(
char rank, char bgm_mode, char bombs, char start_lives_extra, long rand
)
{
unsigned res = resdata_exist(res_id, RES_ID_STRLEN, RES_PARASIZE);
if(!res) {
res = resdata_create(res_id, RES_ID_STRLEN, RES_PARASIZE);
reiidenconfig = MK_FP(res, 0);
reiidenconfig->stage = 0;
reiidenconfig->continues_total = 0;
}
if(res) {
reiidenconfig = MK_FP(res, 0);
reiidenconfig->rank = rank;
reiidenconfig->bgm_mode = bgm_mode;
reiidenconfig->bombs = bombs;
reiidenconfig->start_lives_extra = start_lives_extra;
reiidenconfig->rand = rand;
reiidenconfig->score = 0;
}
}
int resident_stuff_get(
char *rank,
char *bgm_mode,
char *bombs,
char *start_lives_extra,
long *rand,
long *continues_total,
int *stage
)
{
unsigned res = resdata_exist(res_id, RES_ID_STRLEN, RES_PARASIZE);
if(res) {
reiidenconfig = MK_FP(res, 0);
*rank = reiidenconfig->rank;
*bgm_mode = reiidenconfig->bgm_mode;
*bombs = reiidenconfig->bombs;
*start_lives_extra = reiidenconfig->start_lives_extra;
*rand = reiidenconfig->rand;
*continues_total = reiidenconfig->continues_total;
*stage = reiidenconfig->stage;
return 0;
}
return 1;
}
void resident_free(void)
{
unsigned res = resdata_exist(res_id, RES_ID_STRLEN, RES_PARASIZE);
if(res) {
resdata_free(res);
}
}

View File

@ -7,3 +7,48 @@
// Hardware
void graph_accesspage_func(int page);
// Game
#define STAGES_PER_SCENE 4
#define SCENE_COUNT 4
// Resident structure
#define RES_ID "ReiidenConfig"
typedef enum {
ROUTE_MAKAI,
ROUTE_JIGOKU
} route_t;
typedef enum {
MODE_REGULAR = 0,
MODE_TEST = 1,
MODE_DEBUG = 3
} mode_t;
#pragma option -a1
typedef struct {
char id[RES_ID_LEN];
char rank;
char bgm_mode; // 0 = off, 1 = FM
char bombs;
char start_lives_extra; // Add 2 for the actual number of lives
char end_flag;
char unused_1;
char route;
char rem_lives;
char snd_need_init;
char unused_2;
char mode;
int bullet_speed;
long rand;
long score;
long continues_total;
int continues_per_scene[SCENE_COUNT];
long bonus_per_stage[STAGES_PER_SCENE]; // of the current scene
int stage;
long hiscore;
long score_highest; // among all continues
unsigned int p_value;
} resident_t;
#pragma option -a2

View File

@ -859,7 +859,7 @@ sub_A79D proc far
cbw
cmp ax, 1
jnz short loc_A7AE
call sub_E3C5
call _resident_free
loc_A7AE:
call key_end
@ -882,7 +882,7 @@ sub_A7B5 proc far
push word_12322
push word_12320+1
push word_12320
call sub_E27C
call _resident_stuff_set
add sp, 0Ch
call sub_A79D
call _mdrv2_bgm_fade_out_nonblock
@ -891,7 +891,7 @@ sub_A7B5 proc far
cbw
cmp ax, 2
jnz short loc_A7FC
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.mode], 1
jmp short loc_A820
; ---------------------------------------------------------------------------
@ -901,7 +901,7 @@ loc_A7FC:
cbw
cmp ax, 3
jnz short loc_A810
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.mode], 3
jmp short loc_A820
; ---------------------------------------------------------------------------
@ -909,11 +909,11 @@ loc_A7FC:
loc_A810:
cmp _mode, 0
jnz short loc_A820
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.mode], 0
loc_A820:
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.route], 0
mov es:[bx+reiidenconfig_t.stage], 0
mov al, byte ptr word_12322+1
@ -927,12 +927,12 @@ loc_A820:
loc_A842:
mov ax, si
add ax, ax
les bx, reiidenconfig
les bx, _reiidenconfig
add bx, ax
mov es:[bx+reiidenconfig_t.continues_per_scene], 0
mov ax, si
shl ax, 2
mov bx, word ptr reiidenconfig
mov bx, word ptr _reiidenconfig
add bx, ax
mov es:[bx+reiidenconfig_t.bonus_per_stage], 0
inc si
@ -940,7 +940,7 @@ loc_A842:
loc_A867:
cmp si, 4
jl short loc_A842
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.score_highest], 0
mov es:[bx+reiidenconfig_t.continues_total], 0
mov es:[bx+reiidenconfig_t.end_flag], 0
@ -973,9 +973,9 @@ sub_A8AD proc far
push word_12322
push word_12320+1
push word_12320
call sub_E27C
call _resident_stuff_set
add sp, 0Ch
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.stage], 0
jnz short loc_A8E1
mov ax, seg op_01_TEXT
@ -986,7 +986,7 @@ loc_A8E1:
call sub_A79D
call _mdrv2_bgm_fade_out_nonblock
call sub_B757
les bx, reiidenconfig
les bx, _reiidenconfig
assume es:nothing
mov es:[bx+reiidenconfig_t.mode], 0
mov es:[bx+reiidenconfig_t.snd_need_init], 1
@ -8323,166 +8323,8 @@ op_09_TEXT ends
; Segment type: Pure code
op_10_TEXT segment byte public 'CODE' use16
assume cs:op_10_TEXT
;org 0Ch
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E27C proc far
arg_0 = byte ptr 6
arg_2 = byte ptr 8
arg_4 = byte ptr 0Ah
arg_6 = byte ptr 0Ch
arg_8 = dword ptr 0Eh
push bp
mov bp, sp
push si
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov si, ax
or si, si
jnz short loc_E2C6
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_create
mov si, ax
mov word ptr reiidenconfig+2, si
mov word ptr reiidenconfig, 0
les bx, reiidenconfig
mov es:[bx+reiidenconfig_t.stage], 0
les bx, reiidenconfig
mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0
mov word ptr es:[bx+reiidenconfig_t.continues_total], 0
loc_E2C6:
or si, si
jz short loc_E322
mov word ptr reiidenconfig+2, si
mov word ptr reiidenconfig, 0
les bx, reiidenconfig
mov al, [bp+arg_0]
mov es:[bx+reiidenconfig_t.rank], al
les bx, reiidenconfig
mov al, [bp+arg_2]
mov es:[bx+reiidenconfig_t.bgm_mode], al
les bx, reiidenconfig
mov al, [bp+arg_4]
mov es:[bx+reiidenconfig_t.bombs], al
les bx, reiidenconfig
mov al, [bp+arg_6]
mov es:[bx+reiidenconfig_t.start_lives_extra], al
les bx, reiidenconfig
mov dx, word ptr [bp+arg_8+2]
mov ax, word ptr [bp+arg_8]
mov word ptr es:[bx+reiidenconfig_t.rand+2], dx
mov word ptr es:[bx+reiidenconfig_t.rand], ax
les bx, reiidenconfig
mov word ptr es:[bx+reiidenconfig_t.score+2], 0
mov word ptr es:[bx+reiidenconfig_t.score], 0
loc_E322:
pop si
pop bp
retf
sub_E27C endp
; ---------------------------------------------------------------------------
push bp
mov bp, sp
push si
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov si, ax
or si, si
jnz short loc_E33F
jmp loc_E3BF
; ---------------------------------------------------------------------------
loc_E33F:
mov word ptr reiidenconfig+2, si
mov word ptr reiidenconfig, 0
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.rank]
les bx, [bp+6]
mov es:[bx], al
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.bgm_mode]
les bx, [bp+0Ah]
mov es:[bx], al
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.bombs]
les bx, [bp+0Eh]
mov es:[bx], al
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.start_lives_extra]
les bx, [bp+12h]
mov es:[bx], al
les bx, reiidenconfig
mov dx, word ptr es:[bx+reiidenconfig_t.rand+2]
mov ax, word ptr es:[bx+reiidenconfig_t.rand]
les bx, [bp+16h]
mov es:[bx+2], dx
mov es:[bx], ax
les bx, reiidenconfig
mov dx, word ptr es:[bx+reiidenconfig_t.continues_total+2]
mov ax, word ptr es:[bx+reiidenconfig_t.continues_total]
les bx, [bp+1Ah]
mov es:[bx+2], dx
mov es:[bx], ax
les bx, reiidenconfig
mov ax, es:[bx+reiidenconfig_t.stage]
les bx, [bp+1Eh]
mov es:[bx], ax
xor ax, ax
jmp short loc_E3C2
; ---------------------------------------------------------------------------
loc_E3BF:
mov ax, 1
loc_E3C2:
pop si
pop bp
retf
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_E3C5 proc far
push bp
mov bp, sp
push si
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov si, ax
or si, si
jz short loc_E3E2
push si
call dos_free
loc_E3E2:
pop si
pop bp
retf
sub_E3C5 endp
extern _resident_stuff_set:proc
extern _resident_free:proc
op_10_TEXT ends
; ===========================================================================
@ -9017,7 +8859,8 @@ include libs/master.lib/keyback[data].asm
include libs/master.lib/dos_ropen[data].asm
include libs/master.lib/clip[data].asm
include libs/master.lib/rand[data].asm
aReiidenconfig db 'ReiidenConfig',0
public _res_id
_res_id db 'ReiidenConfig',0
public _mdrv2_have_board
_mdrv2_have_board db 0
db 0
@ -9515,6 +9358,7 @@ include libs/master.lib/keystart[bss].asm
dd ?
dd ?
dd ?
reiidenconfig dd ?
public _reiidenconfig
_reiidenconfig dd ?
end

View File

@ -2805,7 +2805,7 @@ loc_CB5D:
loc_CB66:
cmp [bp+var_1], 0
jz short loc_CB96
les bx, reiidenconfig
les bx, _reiidenconfig
inc es:[bx+reiidenconfig_t.continues_total]
inc _continues_total
mov ax, es:[bx+reiidenconfig_t.stage]
@ -2813,7 +2813,7 @@ loc_CB66:
xor dx, dx
div bx
add ax, ax
mov bx, word ptr reiidenconfig
mov bx, word ptr _reiidenconfig
add bx, ax
inc es:[bx+reiidenconfig_t.continues_per_scene]
@ -2851,7 +2851,7 @@ arg_2 = word ptr 8
push bp
mov bp, sp
mov dx, [bp+arg_0]
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.bullet_speed], dx
jle short loc_CBD4
mov es:[bx+reiidenconfig_t.bullet_speed], dx
@ -2859,12 +2859,12 @@ arg_2 = word ptr 8
; ---------------------------------------------------------------------------
loc_CBD4:
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, [bp+arg_2]
add es:[bx+reiidenconfig_t.bullet_speed], ax
loc_CBDF:
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.bullet_speed], -15
jge short loc_CBF0
mov es:[bx+reiidenconfig_t.bullet_speed], -15
@ -2885,7 +2885,7 @@ arg_0 = word ptr 6
push bp
mov bp, sp
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, [bp+arg_0]
add es:[bx+reiidenconfig_t.bullet_speed], ax
cmp es:[bx+reiidenconfig_t.bullet_speed], 20
@ -2965,7 +2965,7 @@ sub_CC0F proc far
mov byte_34A51, 0
mov byte_34A4E, 0
call sub_B87C
les bx, reiidenconfig
les bx, _reiidenconfig
inc es:[bx+reiidenconfig_t.continues_total]
inc _continues_total
mov ax, es:[bx+reiidenconfig_t.stage]
@ -2973,10 +2973,10 @@ sub_CC0F proc far
xor dx, dx
div bx
add ax, ax
mov bx, word ptr reiidenconfig
mov bx, word ptr _reiidenconfig
add bx, ax
inc es:[bx+reiidenconfig_t.continues_per_scene]
mov bx, word ptr reiidenconfig
mov bx, word ptr _reiidenconfig
mov eax, es:[bx+reiidenconfig_t.score_highest]
cmp eax, _score
jnb short loc_CD2E
@ -2984,7 +2984,7 @@ sub_CC0F proc far
mov es:[bx+reiidenconfig_t.score_highest], eax
loc_CD2E:
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.score], 0
mov al, es:[bx+reiidenconfig_t.start_lives_extra]
add al, 2
@ -3009,10 +3009,10 @@ loc_CD52:
loc_CD70:
cmp si, 1
jnz short loc_CDA2
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.snd_need_init], 0
call sub_E852
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.p_value], 0
pushd 0
push ds
@ -3310,7 +3310,7 @@ loc_D00D:
pop cx
mov al, byte_36C14
mov _bombs, al
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.bombs], 1
pop di
pop si
@ -3333,7 +3333,7 @@ sub_D02F proc far
cmp _rem_lives, 6
jge short loc_D076
inc _rem_lives
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, byte ptr _rem_lives
mov es:[bx+reiidenconfig_t.rem_lives], al
mov ax, _rem_lives
@ -4033,8 +4033,8 @@ loc_D54F:
push ds
push offset byte_34A31
push ds
push offset byte_34A30
call sub_11678
push offset _rank
call _resident_stuff_get
add sp, 1Ch
cmp ax, 1
jnz short loc_D583
@ -4047,7 +4047,7 @@ loc_D579:
loc_D583:
mov byte_36C14, 1
les bx, reiidenconfig
les bx, _reiidenconfig
mov eax, es:[bx+reiidenconfig_t.score]
mov _score, eax
mov ebx, 61A80h
@ -4062,7 +4062,7 @@ loc_D583:
push 3F003Fh
call __control87
add sp, 4
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, es:[bx+reiidenconfig_t.route]
mov _route, al
cmp es:[bx+reiidenconfig_t.mode], 0
@ -4118,7 +4118,7 @@ loc_D644:
mov _route, 0
loc_D649:
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, es:[bx+reiidenconfig_t.mode]
cbw
cmp ax, 1
@ -4130,7 +4130,7 @@ loc_D649:
mov _mode_test, 1
loc_D669:
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, es:[bx+reiidenconfig_t.mode]
cbw
cmp ax, 3
@ -4226,7 +4226,7 @@ loc_D6EE:
loc_D72E:
call sub_D487
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, es:[bx+reiidenconfig_t.rem_lives]
cbw
mov _rem_lives, ax
@ -4276,7 +4276,7 @@ loc_D795:
mov byte_35BEE, dl
mov byte_34A49, 1
mov byte_36C1E, 1
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.snd_need_init], 0
jnz short loc_D7E0
mov ax, 1
@ -4290,7 +4290,7 @@ loc_D7E2:
mov si, ax
loc_D7E4:
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, [bp+var_2]
mov es:[bx+reiidenconfig_t.stage], ax
mov al, _route
@ -4905,7 +4905,7 @@ loc_DE0F:
cmp ax, 1
jnz short loc_DE67
call sub_D487
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, _route
inc al
mov es:[bx+reiidenconfig_t.end_flag], al
@ -4942,7 +4942,7 @@ loc_DE72:
push 0
call sub_11738
pop cx
les bx, reiidenconfig
les bx, _reiidenconfig
mov eax, _rand
mov es:[bx+reiidenconfig_t.rand], eax
mov word_34A72, 0
@ -4954,7 +4954,7 @@ loc_DE72:
push 5
call _mdrv2_se_play
pop cx
les bx, reiidenconfig
les bx, _reiidenconfig
dec es:[bx+reiidenconfig_t.rem_lives]
dec _rem_lives
call sub_1AE0D
@ -4978,7 +4978,7 @@ loc_DEDA:
loc_DF03:
inc si
inc [bp+var_2]
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, [bp+var_2]
mov es:[bx+reiidenconfig_t.stage], ax
cmp byte_34ADF, 0
@ -4995,7 +4995,7 @@ loc_DF23:
loc_DF2B:
pop cx
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.bullet_speed], 0
jge short loc_DF3D
mov es:[bx+reiidenconfig_t.bullet_speed], 0
@ -5011,7 +5011,7 @@ loc_DF3D:
jz short loc_DF9A
loc_DF52:
les bx, reiidenconfig
les bx, _reiidenconfig
mov eax, _score
mov es:[bx+reiidenconfig_t.score], eax
mov al, byte ptr _rem_lives
@ -5020,7 +5020,7 @@ loc_DF52:
mov al, _route
mov es:[bx+reiidenconfig_t.route], al
call _mdrv2_bgm_fade_out_nonblock
les bx, reiidenconfig
les bx, _reiidenconfig
mov al, _bombs
mov es:[bx+reiidenconfig_t.bombs], al
call sub_E852
@ -5249,7 +5249,7 @@ loc_E244:
mov byte_34A49, 1
loc_E27B:
les bx, reiidenconfig
les bx, _reiidenconfig
mov eax, _score
mov es:[bx+reiidenconfig_t.score], eax
cmp [bp+var_2], 5
@ -5280,7 +5280,7 @@ loc_E2A8:
pushd [_score]
call sub_148B3
add sp, 0Ah
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, [bp+var_2]
mov es:[bx+reiidenconfig_t.stage], ax
call sub_CC0F
@ -12484,182 +12484,7 @@ main_11_TEXT ends
; Segment type: Pure code
main_12_TEXT segment byte public 'CODE' use16
assume cs:main_12_TEXT
;org 0Fh
assume es:nothing, ss:nothing, ds:_DATA, fs:nothing, gs:nothing
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_115CF proc far
arg_0 = byte ptr 6
arg_2 = byte ptr 8
arg_4 = byte ptr 0Ah
arg_6 = byte ptr 0Ch
arg_8 = dword ptr 0Eh
push bp
mov bp, sp
push si
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov si, ax
or si, si
jnz short loc_11619
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_create
mov si, ax
mov word ptr reiidenconfig+2, si
mov word ptr reiidenconfig, 0
les bx, reiidenconfig
mov es:[bx+reiidenconfig_t.stage], 0
les bx, reiidenconfig
mov word ptr es:[bx+reiidenconfig_t.continues_total+2], 0
mov word ptr es:[bx+reiidenconfig_t.continues_total], 0
loc_11619:
or si, si
jz short loc_11675
mov word ptr reiidenconfig+2, si
mov word ptr reiidenconfig, 0
les bx, reiidenconfig
mov al, [bp+arg_0]
mov es:[bx+reiidenconfig_t.rank], al
les bx, reiidenconfig
mov al, [bp+arg_2]
mov es:[bx+reiidenconfig_t.bgm_mode], al
les bx, reiidenconfig
mov al, [bp+arg_4]
mov es:[bx+reiidenconfig_t.bombs], al
les bx, reiidenconfig
mov al, [bp+arg_6]
mov es:[bx+reiidenconfig_t.start_lives_extra], al
les bx, reiidenconfig
mov dx, word ptr [bp+arg_8+2]
mov ax, word ptr [bp+arg_8]
mov word ptr es:[bx+reiidenconfig_t.rand+2], dx
mov word ptr es:[bx+reiidenconfig_t.rand], ax
les bx, reiidenconfig
mov word ptr es:[bx+reiidenconfig_t.score+2], 0
mov word ptr es:[bx+reiidenconfig_t.score], 0
loc_11675:
pop si
pop bp
retf
sub_115CF endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_11678 proc far
arg_0 = dword ptr 6
arg_4 = dword ptr 0Ah
arg_8 = dword ptr 0Eh
arg_C = dword ptr 12h
arg_10 = dword ptr 16h
arg_14 = dword ptr 1Ah
arg_18 = dword ptr 1Eh
push bp
mov bp, sp
push si
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov si, ax
or si, si
jnz short loc_11692
jmp loc_11712
; ---------------------------------------------------------------------------
loc_11692:
mov word ptr reiidenconfig+2, si
mov word ptr reiidenconfig, 0
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.rank]
les bx, [bp+arg_0]
mov es:[bx], al
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.bgm_mode]
les bx, [bp+arg_4]
mov es:[bx], al
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.bombs]
les bx, [bp+arg_8]
mov es:[bx], al
les bx, reiidenconfig
mov al, es:[bx+reiidenconfig_t.start_lives_extra]
les bx, [bp+arg_C]
mov es:[bx], al
les bx, reiidenconfig
mov dx, word ptr es:[bx+reiidenconfig_t.rand+2]
mov ax, word ptr es:[bx+reiidenconfig_t.rand]
les bx, [bp+arg_10]
mov es:[bx+2], dx
mov es:[bx], ax
les bx, reiidenconfig
mov dx, word ptr es:[bx+reiidenconfig_t.continues_total+2]
mov ax, word ptr es:[bx+reiidenconfig_t.continues_total]
les bx, [bp+arg_14]
mov es:[bx+2], dx
mov es:[bx], ax
les bx, reiidenconfig
mov ax, es:[bx+reiidenconfig_t.stage]
les bx, [bp+arg_18]
mov es:[bx], ax
xor ax, ax
jmp short loc_11715
; ---------------------------------------------------------------------------
loc_11712:
mov ax, 1
loc_11715:
pop si
pop bp
retf
sub_11678 endp
; =============== S U B R O U T I N E =======================================
; Attributes: bp-based frame
sub_11718 proc far
push bp
mov bp, sp
push si
push ds
push offset aReiidenconfig ; "ReiidenConfig"
push 0Dh
push 5
call resdata_exist
mov si, ax
or si, si
jz short loc_11735
push si
call dos_free
loc_11735:
pop si
pop bp
retf
sub_11718 endp
extern _resident_stuff_get:proc
main_12_TEXT ends
; ===========================================================================
@ -16016,7 +15841,7 @@ loc_13313:
cwd
idiv bx
shl dx, 2
les bx, reiidenconfig
les bx, _reiidenconfig
add bx, dx
mov eax, dword_34A5E
mov es:[bx+reiidenconfig_t.bonus_per_stage], eax
@ -16521,7 +16346,7 @@ loc_13792:
idiv bx
dec ax
add ax, ax
les bx, reiidenconfig
les bx, _reiidenconfig
add bx, ax
mov ax, word ptr _continues_total
mov es:[bx+reiidenconfig_t.continues_per_scene], ax
@ -16619,7 +16444,7 @@ var_2 = word ptr -2
mov word ptr [bp+var_E], offset aUmx_0 ; "“Œ•û<E280A2>šèˈٓ`<60>@<40>@"
mov word ptr [bp+var_12+2], ds
mov word ptr [bp+var_12], offset aHiscore ; "HISCORE"
mov al, byte_34A30
mov al, _rank
cbw
mov bx, ax
cmp bx, 3
@ -16774,7 +16599,7 @@ s1 = byte ptr -32h
enter 42h, 0
push si
mov al, byte_34A30
mov al, _rank
cbw
mov bx, ax
cmp bx, 3
@ -18369,7 +18194,7 @@ stream = dword ptr -4
push offset aHiscore_0 ; "HISCORE"
mov cx, 8
call SCOPY@
mov al, byte_34A30
mov al, _rank
cbw
mov bx, ax
cmp bx, 3
@ -18651,7 +18476,7 @@ loc_148F9:
push 0
call sub_FA43
add sp, 0Ah
mov al, byte_34A30
mov al, _rank
cbw
shl ax, 2
lea dx, [bp+var_D0]
@ -18669,7 +18494,7 @@ loc_14942:
push 0
call sub_FA43
add sp, 0Ah
mov al, byte_34A30
mov al, _rank
cbw
shl ax, 2
lea dx, [bp+var_D0]
@ -18919,7 +18744,7 @@ sub_14BD2 proc far
push dx
push ax
pop eax
les bx, reiidenconfig
les bx, _reiidenconfig
assume es:nothing
mov es:[bx+reiidenconfig_t.hiscore], eax
call sub_146BA
@ -25241,7 +25066,7 @@ loc_1833B:
mov bx, si
imul bx, 0Ah
mov [bx+539Ah], ax
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.p_value], 59999
jnb short loc_18368
cmp es:[bx+reiidenconfig_t.p_value], 10000
@ -25254,17 +25079,17 @@ loc_1835D:
mov ax, 2710h
loc_18360:
les bx, reiidenconfig
les bx, _reiidenconfig
add es:[bx+reiidenconfig_t.p_value], ax
loc_18368:
les bx, reiidenconfig
les bx, _reiidenconfig
cmp es:[bx+reiidenconfig_t.p_value], 60000
jb short loc_1837A
mov es:[bx+reiidenconfig_t.p_value], 65530
loc_1837A:
les bx, reiidenconfig
les bx, _reiidenconfig
movzx eax, es:[bx+reiidenconfig_t.p_value]
add _score, eax
call sub_1889C
@ -25408,7 +25233,7 @@ sub_1843D endp
sub_18456 proc far
push bp
mov bp, sp
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.p_value], 0
pop bp
retf
@ -25471,7 +25296,7 @@ loc_184D3:
push ss
lea ax, [bp+var_6]
push ax
les bx, reiidenconfig
les bx, _reiidenconfig
push es:[bx+reiidenconfig_t.p_value]
push 5
call sub_1FF8A
@ -25698,7 +25523,7 @@ var_4 = dword ptr -4
enter 8, 0
push si
mov [bp+var_4], 0F4240h
les bx, reiidenconfig
les bx, _reiidenconfig
mov eax, es:[bx+reiidenconfig_t.hiscore]
mov [bp+var_8], eax
cmp eax, _score
@ -25821,7 +25646,7 @@ loc_18778:
add sp, 12h
mov eax, _score
mov dword_35ABF, eax
les bx, reiidenconfig
les bx, _reiidenconfig
mov es:[bx+reiidenconfig_t.hiscore], eax
loc_187A3:
@ -26282,7 +26107,7 @@ loc_18B33:
pop cx
push 1
pushd 0
les bx, reiidenconfig
les bx, _reiidenconfig
pushd dword ptr es:[bx+reiidenconfig_t.hiscore]
push 70027h
pushd 100h
@ -27080,13 +26905,13 @@ loc_19124:
push 1
call _graph_accesspage_func
pop cx
mov al, byte_34A30
mov al, _rank
cbw
shl ax, 2
mov bx, ax
pushd dword ptr [bx+97h]
push 270030h
mov al, byte_34A30
mov al, _rank
cbw
shl ax, 2
mov bx, ax
@ -27124,13 +26949,13 @@ loc_19124:
push 0
call _graph_accesspage_func
pop cx
mov al, byte_34A30
mov al, _rank
cbw
shl ax, 2
mov bx, ax
pushd dword ptr [bx+97h]
push 270030h
mov al, byte_34A30
mov al, _rank
cbw
shl ax, 2
mov bx, ax
@ -27774,7 +27599,7 @@ loc_19670:
push ax
loc_19673:
mov al, byte_34A30
mov al, _rank
cbw
pop dx
cmp dx, ax
@ -28721,14 +28546,14 @@ arg_0 = word ptr 6
mov byte_34A59, 0
mov byte_34A57, 0
mov byte_39DB3, 40h
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_19E93
mov al, 0Fh
jmp short loc_19EBC
; ---------------------------------------------------------------------------
loc_19E93:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_19EA0
@ -28737,7 +28562,7 @@ loc_19E93:
; ---------------------------------------------------------------------------
loc_19EA0:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_19EAD
@ -28746,7 +28571,7 @@ loc_19EA0:
; ---------------------------------------------------------------------------
loc_19EAD:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_19EBA
@ -30858,7 +30683,7 @@ include th01_reiiden_2.inc
.data
byte_34A30 db 1
_rank db 1
byte_34A31 db 1
_bombs db 1
unk_34A33 db 2
@ -31359,7 +31184,8 @@ include libs/master.lib/rand[data].asm
db 8
db 3
db 20h
aReiidenconfig db 'ReiidenConfig',0
public _res_id
_res_id db 'ReiidenConfig',0
unk_355EC db 0
dd 0
db 0
@ -34828,7 +34654,8 @@ include libs/master.lib/keystart[bss].asm
dd ?
dd ?
dd ?
reiidenconfig dd ?
public _reiidenconfig
_reiidenconfig dd ?
unk_391A0 db ? ;
dd ?
dd ?

View File

@ -1218,7 +1218,7 @@ loc_1BBD3:
mov word_398B6, 1
mov word_398E8, 1
mov word_3991A, 1
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz loc_1DFFC
@ -1253,7 +1253,7 @@ loc_1BBD3:
push offset unk_37635
call sub_30368
add sp, 24h
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz loc_1DFFC
@ -1268,7 +1268,7 @@ loc_1BC8C:
mov word_398B2, 1
mov word_398E4, 1
mov word_39916, 1
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz loc_1DFFC
@ -1412,14 +1412,14 @@ loc_1BE24:
mov byte ptr word_39E14+1, 0
mov word_3984E, 4
mov word_39880, 3
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_1BE6D
mov ax, 15Eh
jmp short loc_1BE9A
; ---------------------------------------------------------------------------
loc_1BE6D:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_1BE7B
@ -1428,7 +1428,7 @@ loc_1BE6D:
; ---------------------------------------------------------------------------
loc_1BE7B:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1BE89
@ -1437,7 +1437,7 @@ loc_1BE7B:
; ---------------------------------------------------------------------------
loc_1BE89:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1BE97
@ -1645,14 +1645,14 @@ loc_1C02D:
call sub_EB10
add sp, 4
call sub_232A4
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_1C097
mov ax, 8
jmp loc_1D84C
; ---------------------------------------------------------------------------
loc_1C097:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_1C0A6
@ -1661,7 +1661,7 @@ loc_1C097:
; ---------------------------------------------------------------------------
loc_1C0A6:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1C0B5
@ -1670,7 +1670,7 @@ loc_1C0A6:
; ---------------------------------------------------------------------------
loc_1C0B5:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1C0C4
@ -2031,14 +2031,14 @@ loc_1C3EB:
mov ax, 190h
sub ax, word ptr dword_3982A+2
mov word_39E0C, ax
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_1C45B
mov ax, 0Ch
jmp short loc_1C488
; ---------------------------------------------------------------------------
loc_1C45B:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_1C469
@ -2047,7 +2047,7 @@ loc_1C45B:
; ---------------------------------------------------------------------------
loc_1C469:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1C477
@ -2056,7 +2056,7 @@ loc_1C469:
; ---------------------------------------------------------------------------
loc_1C477:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1C485
@ -2370,14 +2370,14 @@ loc_1C741:
call sub_EB10
add sp, 4
call sub_232A4
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_1C7B1
mov ax, 0Ah
jmp loc_1D84C
; ---------------------------------------------------------------------------
loc_1C7B1:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_1C7C0
@ -2386,7 +2386,7 @@ loc_1C7B1:
; ---------------------------------------------------------------------------
loc_1C7C0:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1C7CF
@ -2395,7 +2395,7 @@ loc_1C7C0:
; ---------------------------------------------------------------------------
loc_1C7CF:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1C7DE
@ -2861,7 +2861,7 @@ loc_1CBE8:
mov word_39E08, 2
mov word_3A6CA, 0
mov word_39E06, 0
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jle loc_1CF52
@ -2957,7 +2957,7 @@ loc_1CCF1:
mov word_39E08, 4
mov word_3A6CA, 0
mov word_39E06, 0
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jle loc_1CF52
@ -3077,7 +3077,7 @@ loc_1CDD6:
mov word_39E08, 6
mov word_3A6CA, 0
mov word_39E06, 0
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1CF29
@ -3094,7 +3094,7 @@ loc_1CDD6:
add sp, 0Ch
loc_1CF29:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1CF52
@ -3986,14 +3986,14 @@ loc_1D808:
jl short loc_1D7B1
mov ax, word_39DF8
mov word_39DF2, ax
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_1D81F
mov ax, 18h
jmp short loc_1D84C
; ---------------------------------------------------------------------------
loc_1D81F:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_1D82D
@ -4002,7 +4002,7 @@ loc_1D81F:
; ---------------------------------------------------------------------------
loc_1D82D:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1D83B
@ -4011,7 +4011,7 @@ loc_1D82D:
; ---------------------------------------------------------------------------
loc_1D83B:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1D849
@ -5808,14 +5808,14 @@ arg_A = word ptr 10h
push bp
mov bp, sp
mov dx, [bp+arg_6]
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_1E853
mov ax, [bp+arg_4]
jmp short loc_1E87E
; ---------------------------------------------------------------------------
loc_1E853:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_1E860
@ -5824,7 +5824,7 @@ loc_1E853:
; ---------------------------------------------------------------------------
loc_1E860:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_1E86E
@ -5833,7 +5833,7 @@ loc_1E860:
; ---------------------------------------------------------------------------
loc_1E86E:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1E87C
@ -8328,7 +8328,7 @@ loc_1FEAB:
imul word_34A84
cwde
push eax
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_1FECC
@ -8851,7 +8851,7 @@ loc_202A6:
inc word ptr es:[bx]
cmp word ptr es:[bx], 18h
jl loc_2036D
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_2031C
@ -10447,7 +10447,7 @@ loc_20F85:
; ---------------------------------------------------------------------------
loc_20F8F:
cmp byte_34A30, 0
cmp _rank, 0
jz short loc_20FA3
mov ax, si
add ax, ax
@ -10474,7 +10474,7 @@ loc_20FBF:
; ---------------------------------------------------------------------------
loc_20FC8:
cmp byte_34A30, 0
cmp _rank, 0
jz short loc_20FDC
mov ax, si
add ax, ax
@ -13402,14 +13402,14 @@ arg_A = word ptr 10h
push bp
mov bp, sp
mov dx, [bp+arg_6]
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_2282C
mov ax, [bp+arg_4]
jmp short loc_22857
; ---------------------------------------------------------------------------
loc_2282C:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_22839
@ -13418,7 +13418,7 @@ loc_2282C:
; ---------------------------------------------------------------------------
loc_22839:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_22847
@ -13427,7 +13427,7 @@ loc_22839:
; ---------------------------------------------------------------------------
loc_22847:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_22855
@ -14454,14 +14454,14 @@ loc_2302C:
call sub_232A4
mov word_39852, 0
mov word_3A381, 0
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_23087
mov ax, 46h ; 'F'
jmp short loc_230B4
; ---------------------------------------------------------------------------
loc_23087:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_23095
@ -14470,7 +14470,7 @@ loc_23087:
; ---------------------------------------------------------------------------
loc_23095:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_230A3
@ -14479,7 +14479,7 @@ loc_23095:
; ---------------------------------------------------------------------------
loc_230A3:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_230B1
@ -14781,14 +14781,14 @@ arg_A = word ptr 10h
push bp
mov bp, sp
mov dx, [bp+arg_6]
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_232F6
mov ax, [bp+arg_4]
jmp short loc_23321
; ---------------------------------------------------------------------------
loc_232F6:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_23303
@ -14797,7 +14797,7 @@ loc_232F6:
; ---------------------------------------------------------------------------
loc_23303:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_23311
@ -14806,7 +14806,7 @@ loc_23303:
; ---------------------------------------------------------------------------
loc_23311:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_2331F
@ -18461,14 +18461,14 @@ arg_A = word ptr 10h
push bp
mov bp, sp
mov dx, [bp+arg_6]
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_253B4
mov ax, [bp+arg_4]
jmp short loc_253DF
; ---------------------------------------------------------------------------
loc_253B4:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_253C1
@ -18477,7 +18477,7 @@ loc_253B4:
; ---------------------------------------------------------------------------
loc_253C1:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_253CF
@ -18486,7 +18486,7 @@ loc_253C1:
; ---------------------------------------------------------------------------
loc_253CF:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_253DD
@ -22061,7 +22061,7 @@ loc_274FF:
or dx, dx
jnz short loc_27539
push 48h ; 'H'
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_2751B
@ -23863,14 +23863,14 @@ arg_A = word ptr 10h
push bp
mov bp, sp
mov dx, [bp+arg_6]
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_2866B
mov ax, [bp+arg_4]
jmp short loc_28696
; ---------------------------------------------------------------------------
loc_2866B:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_28678
@ -23879,7 +23879,7 @@ loc_2866B:
; ---------------------------------------------------------------------------
loc_28678:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_28686
@ -23888,7 +23888,7 @@ loc_28678:
; ---------------------------------------------------------------------------
loc_28686:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_28694
@ -27885,7 +27885,7 @@ loc_2AAF6:
push offset unk_37635
call sub_304B8
add sp, 28h
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
; Hack (jl loc_2ABC0)
@ -27914,7 +27914,7 @@ loc_2AAF6:
push offset unk_37635
call sub_304B8
add sp, 28h
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_2ABC0
@ -31500,14 +31500,14 @@ arg_A = word ptr 10h
loc_2CDD3:
mov bp, sp
mov dx, [bp+arg_6]
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_2CDE4
mov ax, [bp+arg_4]
jmp short loc_2CE0F
; ---------------------------------------------------------------------------
loc_2CDE4:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_2CDF1
@ -31516,7 +31516,7 @@ loc_2CDE4:
; ---------------------------------------------------------------------------
loc_2CDF1:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_2CDFF
@ -31525,7 +31525,7 @@ loc_2CDF1:
; ---------------------------------------------------------------------------
loc_2CDFF:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 3
jnz short loc_2CE0D
@ -33101,7 +33101,7 @@ loc_2DBCA:
add sp, 0Eh
loc_2DBEC:
mov al, byte_34A30
mov al, _rank
cbw
imul ax, 28h
mov dx, 0F0h
@ -37549,14 +37549,14 @@ arg_A = word ptr 10h
jl loc_304B4
cmp [bp+arg_6], 190h
jg loc_304B4
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_303B1
xor ax, ax
jmp short loc_303D0
; ---------------------------------------------------------------------------
loc_303B1:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_303BF
@ -37565,7 +37565,7 @@ loc_303B1:
; ---------------------------------------------------------------------------
loc_303BF:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_303CD
@ -37578,7 +37578,7 @@ loc_303CD:
loc_303D0:
add si, ax
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, es:[bx+reiidenconfig_t.bullet_speed]
imul si
mov bx, 28h ; '('
@ -37699,14 +37699,14 @@ arg_12 = word ptr 18h
les bx, [bp+arg_0]
cmp word ptr es:[bx+1068h], 64h ; 'd'
jg loc_30634
cmp byte_34A30, 0
cmp _rank, 0
jnz short loc_304D9
xor ax, ax
jmp short loc_304F8
; ---------------------------------------------------------------------------
loc_304D9:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 1
jnz short loc_304E7
@ -37715,7 +37715,7 @@ loc_304D9:
; ---------------------------------------------------------------------------
loc_304E7:
mov al, byte_34A30
mov al, _rank
cbw
cmp ax, 2
jnz short loc_304F5
@ -37728,7 +37728,7 @@ loc_304F5:
loc_304F8:
add si, ax
les bx, reiidenconfig
les bx, _reiidenconfig
mov ax, es:[bx+reiidenconfig_t.bullet_speed]
imul si
mov bx, 28h ; '('

View File

@ -9,7 +9,7 @@
char rank = RANK_NORMAL;
char unused_1 = 0;
mikoconfig_t *mikoconfig;
resident_t *mikoconfig;
char unused_2;
char rem_lives;
char rem_bombs;
@ -21,16 +21,16 @@ int unused_6;
int pascal cfg_load(void)
{
int mikoconfig_sgm;
int resident_sgm;
file_ropen("huuma.cfg");
file_seek(offsetof(huuma_cfg_t, mikoconfig_sgm), 0);
file_read(&mikoconfig_sgm, sizeof(mikoconfig_sgm));
file_seek(offsetof(huuma_cfg_t, resident_sgm), 0);
file_read(&resident_sgm, sizeof(resident_sgm));
file_close();
if(!mikoconfig_sgm) {
if(!resident_sgm) {
return 0;
}
mikoconfig = MK_FP(mikoconfig_sgm, 0);
mikoconfig = MK_FP(resident_sgm, 0);
rem_lives = mikoconfig->rem_lives;
rem_bombs = mikoconfig->rem_bombs;
rank = mikoconfig->rank;

View File

@ -146,7 +146,7 @@ typedef struct {
char bombs;
char lives;
char perf;
int mikoconfig_sgm;
int resident_sgm;
char debug;
} huuma_cfg_t;
#pragma option -a2
@ -176,9 +176,9 @@ typedef struct {
int skill;
int unused_4;
long score_highest;
} mikoconfig_t;
} resident_t;
extern mikoconfig_t *mikoconfig;
extern resident_t *mikoconfig;
#define SHOTTYPE_COUNT 3