summaryrefslogtreecommitdiff
path: root/csrc/loadsave.c
diff options
context:
space:
mode:
authorIru Cai <mytbk920423@gmail.com>2018-09-25 09:42:33 +0800
committerIru Cai <mytbk920423@gmail.com>2018-09-25 09:42:33 +0800
commit82dc6f263f267775f3df18345129815b271a7611 (patch)
tree710135061676eabc511766ac7ec11d81f7d78f56 /csrc/loadsave.c
parentc590b935077438ed85ca97477038dbe97fc2fff2 (diff)
downloadrich4-82dc6f263f267775f3df18345129815b271a7611.tar.xz
rewrite entryCallback, game stage
Diffstat (limited to 'csrc/loadsave.c')
-rw-r--r--csrc/loadsave.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/csrc/loadsave.c b/csrc/loadsave.c
index e46e037..392813d 100644
--- a/csrc/loadsave.c
+++ b/csrc/loadsave.c
@@ -93,11 +93,11 @@ void fcn_00407ad2()
{
fcn_004080f5();
ebx = edi = load_mkf("MAP.MKF");
- eax = (w_4991b6*4+w_4991b8)*2;
+ eax = (game_stage*4+w_4991b8)*2;
dw_474945 = read_mkf(ebx, eax, NULL, NULL);
- eax = (w_4991b6*4+w_4991b8)+16;
+ eax = (game_stage*4+w_4991b8)+16;
dw_48badc = read_mkf(ebx, eax, NULL, NULL);
- eax = w_4991b6*4+w_4991b8+16;
+ eax = game_stage*4+w_4991b8+16;
dw_48bad0 = read_mkf(ebx, eax, NULL, NULL);
memcpy(0x48b6b4, dw_474945 + 0x10, 512);
dw_48bac4 = *(int*)dw_474945 + 0x210;
@@ -108,11 +108,11 @@ void fcn_00407ad2()
if (dw_47493c == 0) {
esi = eax = load_mkf("MAPDAT.MKF");
if (eax != -1) {
- eax = w_4991b6*4+w_4991b8;
+ eax = game_stage*4+w_4991b8;
dw_47493c = read_mkf(esi, eax, NULL, NULL);
unload_mkf(esi);
} else {
- eax = (w_4991b6*4+w_4991b8)*2+1;
+ eax = (game_stage*4+w_4991b8)*2+1;
dw_47493c = read_mkf(ebx, eax, NULL, NULL);
}
/* 0x407c3f */
@@ -175,7 +175,7 @@ void fcn_00407ad2()
}
/* 0x407e0b */
for (ebx = 0; ebx < 5; ebx++) {
- eax = *(int16_t*)0x4991b6; /* sign ext */
+ eax = game_stage; /* sign ext */
eax *= 4;
edx = *(int16_t*)0x4991b8; /* sign ext */
esi = edx + eax;
@@ -183,11 +183,11 @@ void fcn_00407ad2()
*(int*)(0x48ae4c + ebx*4) = read_mkf(edi, eax, NULL, NULL);
}
edx = *(int16_t*)0x4991b8; /* sign ext */
- eax = *(int16_t*)0x4991b6; /* sign ext */
+ eax = game_stage; /* sign ext */
edx += 0x4f;
eax = eax * 4 + edx;
dw_48ae60 = read_mkf(edi, eax, NULL, NULL);
- if (*(int16_t*)0x4991b6 == 0) {
+ if (game_stage == 0) {
for (ebx = 0; ebx < 17; ebx++) {
dw_48ae64[ebx] = read_mkf(edi, ebx+0x57, NULL, NULL);
}
@@ -301,7 +301,7 @@ int load_checkpoint(int n)
fseek(fp, 4, SEEK_SET);
fread(&global_rich4_cfg.day, 4, 1, fp); // read day,month,year
fread(0x4991b8, 2, 1, fp);
- fread(0x4991b6, 2, 1, fp);
+ fread(&game_stage, 2, 1, fp);
fread(&nplayers, 4, 1, fp);
fread(players, sizeof(player_info), 4, fp);
fread(0x499104, 4, 1, fp);
@@ -323,7 +323,7 @@ int load_checkpoint(int n)
fread(0x496980, 0x24, 0xc, fp);
for (int i = 0; i < 12; i++) {
- int32_t edx = (*(int16_t*)0x4991b6) << 2;
+ int32_t edx = game_stage << 2;
edx += (*(int16_t*))0x4991b8;
eax = edx << 2;
eax -= edx; /* eax = edx * 3 */