diff options
author | Iru Cai <mytbk920423@gmail.com> | 2018-10-01 21:38:19 +0800 |
---|---|---|
committer | Iru Cai <mytbk920423@gmail.com> | 2018-10-01 21:38:19 +0800 |
commit | 6736d6764ba2541eeaa48b45b002acadb20b9b05 (patch) | |
tree | 61a6814db04e2550379e1fbbfd5e4a419c682af9 /csrc/mkf/mkf.c | |
parent | 63d7007905047e5f488e179a56d861dfaa17aa90 (diff) | |
download | rich4-6736d6764ba2541eeaa48b45b002acadb20b9b05.tar.xz |
mkf uses graph_st
Diffstat (limited to 'csrc/mkf/mkf.c')
-rw-r--r-- | csrc/mkf/mkf.c | 30 |
1 files changed, 12 insertions, 18 deletions
diff --git a/csrc/mkf/mkf.c b/csrc/mkf/mkf.c index 63e7e2d..9a7e5aa 100644 --- a/csrc/mkf/mkf.c +++ b/csrc/mkf/mkf.c @@ -72,28 +72,22 @@ void unload_mkf(int mkf_idx) static void update_spr_smp_ptr(void *s) { struct spr_smp *sst = (struct spr_smp*)s; - int lastsz; + size_t lastsz; if (strcmp(sst->sig, "SPR") == 0) { - lastsz = sst->chunk_tab[0].chunk_sz; - sst->chunk_tab[0].chunk_sz = (int32_t)s + sst->start_offset + 0x200; - - for (int i = 1; i < sst->nchunk; i++) { - int t = sst->chunk_tab[i].chunk_sz; - sst->chunk_tab[i].chunk_sz = lastsz + sst->chunk_tab[i-1].chunk_sz; - lastsz = t; - } + lastsz = (size_t)(sst->chunk_tab[0].gdata); + sst->chunk_tab[0].gdata = (int16_t*)(s + sst->start_offset + 0x200); + } else if (strcmp(sst->sig, "SMP") == 0) { + lastsz = (size_t)(sst->chunk_tab[0].gdata); + sst->chunk_tab[0].gdata = (int16_t*)(s + sst->start_offset); + } else { + return; } - if (strcmp(sst->sig, "SMP") == 0) { - lastsz = sst->chunk_tab[0].chunk_sz; - sst->chunk_tab[0].chunk_sz = (int32_t)s + sst->start_offset; - - for (int i = 1; i < sst->nchunk; i++) { - int t = sst->chunk_tab[i].chunk_sz; - sst->chunk_tab[i].chunk_sz = lastsz + sst->chunk_tab[i-1].chunk_sz; - lastsz = t; - } + for (int i = 1; i < sst->nchunk; i++) { + size_t t = (size_t)(sst->chunk_tab[i].gdata); + sst->chunk_tab[i].gdata = (int16_t*)((void*)(sst->chunk_tab[i-1].gdata) + lastsz); + lastsz = t; } } |