This commit is contained in:
KholdFuzion committed 2023-09-28 11:49:33 -04:00
1 parent 3c9651a097
commit 5aac04b64c
216 files changed
+33182 -80339

No files matched your search

+1 -1
View File
@@ -18,7 +18,7 @@ on:
jobs:
buildeu:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
+4 -3
View File
@@ -18,7 +18,7 @@ on:
jobs:
buildjp:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
@@ -64,7 +64,7 @@ jobs:
- name: Upload output files
uses: dmnemec/copy_file_to_another_repo_action@main
uses: dmnemec/copy_file_to_another_repo_action@v1.0.4
env:
API_TOKEN_GITHUB: ${{ secrets.API_TOKEN_GITHUB }}
@@ -75,6 +75,7 @@ jobs:
destination_repo: 'kholdfuzion/goldeneyestatus'
user_email: $API_TOKEN_EMAIL
user_name: $API_TOKEN_USER
source_file: 'tools/report/JPN.htm'
source_file: |
tools/report/JPN.htm
#need way of telling report that JP passed/failed
+1 -1
View File
@@ -34,7 +34,7 @@ jobs:
buildus:
runs-on: ubuntu-18.04
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
+15 -1
View File
@@ -28,7 +28,7 @@ assets/jfont_dl.bin
assets/font_chardataj.bin
assets/font_chardatae.bin
assets/ge007.u.29D160.Globalimagetable.bin
assets/Globalimagetable_commandblock.bin
assets/rarewarelogo.bin
assets/ge007.u.2A4D50.usedby7F008DE4.bin
assets/ge007.u.117880.jfont_dl.bin
assets/ge007.u.117940.jfont_chardata.bin
@@ -93,3 +93,17 @@ uld_c.c
umerge_c.c
uopt_c.c
usplit_c.c
#exclude local user scripts in root folder
/my_*.sh
assets/obseg/em/data/alien8.seg
assets/obseg/em/data/atic.seg
assets/obseg/em/data/cookie.seg
assets/obseg/em/data/gunfright.seg
assets/obseg/em/data/jetman.seg
assets/obseg/em/data/jetpac.seg
assets/obseg/em/data/knightlore.seg
assets/obseg/em/data/pssst.seg
assets/obseg/em/data/sabre.seg
assets/obseg/em/data/spec_rom.seg
assets/obseg/em/data/under.seg
+12 -18
View File
@@ -8,7 +8,7 @@ default: colour
FINAL := YES
VERSION := US
IDO_RECOMP := YES
VERBOSE := 0
VERBOSE := 2
# If COMPARE is 1, check the output sha1sum when building 'all', and if fail to match
# then compare ELF sections to known md5 checksums.
# If compare is 2, it will just compare the sha1sum.
@@ -298,7 +298,7 @@ GAMEOBJECTS := $(foreach file,$(GAMEFILES_S),$(BUILD_DIR)/$(file:.s=.o)) \
$(foreach file,$(GAMEFILES_C),$(BUILD_DIR)/$(file:.c=.o))
ASSET_DATAFILES := assets/GlobalImageTable.c assets/animationtable_data.c assets/animationtable_entries.c assets/font_dl.c assets/font_chardataj.c assets/font_chardatae.c assets/Globalimagetable_commandblock.c
ASSET_DATAFILES := assets/GlobalImageTable.c assets/animationtable_data.c assets/animationtable_entries.c assets/font_dl.c assets/font_chardataj.c assets/font_chardatae.c assets/rarewarelogo.c
ASSET_DATAOBJECTS := $(foreach file,$(ASSET_DATAFILES),$(BUILD_DIR)/$(file:.c=.o))
ROMFILES2 := assets/romfiles2.s
@@ -447,21 +447,16 @@ $(BUILD_DIR)/assets/images/split/%.o: assets/images/split/%.bin pb5
$(BUILD_DIR)/$(OBSEGMENT): $(OBSEG_RZ) $(IMAGE_OBJS) pb6
$(call PRINT_STATUS,Compressing6:,$<,$@)
#Build C files in root/
$(BUILD_DIR)/%.o: src/%.c pb7
$(call PRINT_STATUS,Compiling7:,$<,$@)
$(ASM_PREPROC) $(OPTIMIZATION) $< | $(CC) -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ $(OPTIMIZATION)
$(ASM_PREPROC) $(OPTIMIZATION) $< --post-process $@ --assembler "$(AS) $(ASFLAGS)" --asm-prelude tools/asmpreproc/prelude.s
#Build C files in src/
$(BUILD_DIR)/src/%.o: src/%.c pb8
$(BUILD_DIR)/src/%.o: src/%.c
$(call PRINT_STATUS,Compiling8:,$<,$@)
# convert AI_PRINT commands from readable to byte-array
# echo $<
# echo filter = $(filter-out %chraidata.c,$<)
# for some reason, normal ifeq doesnt work, so has to be single line...
$(if $(filter %chraidata.c,$<), $(ConvertAIPRINT) $< | $(CC) -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ $(OPTIMIZATION), $(ASM_PREPROC) $(OPTIMIZATION) $< | $(CC) -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ $(OPTIMIZATION); $(ASM_PREPROC) $(OPTIMIZATION) $< --post-process $@ --assembler "$(AS) $(ASFLAGS)" --asm-prelude tools/asmpreproc/prelude.s)
@if grep -q 'GLOBAL_ASM(' $<; then \
$(ASM_PREPROC) $(OPTIMIZATION) $< | $(CC) -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ $(OPTIMIZATION); \
$(ASM_PREPROC) $(OPTIMIZATION) $< --post-process $@ --assembler "$(AS) $(ASFLAGS)" --asm-prelude tools/asmpreproc/prelude.s; \
else \
$(CC) -c $(CFLAGS) -o $@ $(OPTIMIZATION) $<; \
fi
#Build RamRom
@@ -490,8 +485,7 @@ $(BUILD_DIR)/assets/%.o: assets/%.c pb4
ifeq ($(filter-out %setup%,$<),)
$(ConvertAIPRINT) $< | $(CC) -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ $(OPTIMIZATION)
else
$(ASM_PREPROC) $(OPTIMIZATION) $< | $(CC) -c $(CFLAGS) tools/asmpreproc/include-stdin.c -o $@ $(OPTIMIZATION)
$(ASM_PREPROC) $(OPTIMIZATION) $< --post-process $@ --assembler "$(AS) $(ASFLAGS)" --asm-prelude tools/asmpreproc/prelude.s
$(CC) -c $(CFLAGS) -o $@ $(OPTIMIZATION) $<
endif
#$(BUILD_DIR)/src/random.o: OPTIMIZATION := -O3
@@ -744,8 +738,8 @@ testPB:
$(call IncrementProgressBarFromAtRate,0,0.125)
textures:
for file in assets/images/split/*.bin; do ../../tools/mktex/build/tex2png $file .assets/images/out; done
$(foreach x,$(IMAGE_BINS),tools/mktex/build/tex2png $(x) assets/images/out ${\n})
colour:
@echo "\033[3A"
ifeq ($(VERBOSE),0)
+225 -213
View File
@@ -458,44 +458,44 @@ sImageTableEntry s_genericimage[] = {
{IMAGE_FLAREWHITEROUND, 0x36, 0x36, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}
};
sImageTableEntry s_impactimages[] = {
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT2, 0x40, 0x20, 7, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTLOTS, 0x40, 0x20, 7, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT4, 0x20, 0x20, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTMULTI, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTREDBRICK1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTREDBRICK2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTREDBRICK3, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTBRICK2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTBRICK3, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTBROWNBRICK1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACTBROWNBRICK2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_impactimages[] = { // bg/debris?
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/windowhit
{IMAGE_IMPACT2, 0x40, 0x20, 7, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/bullethit
{IMAGE_IMPACT3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhit
{IMAGE_IMPACTLOTS, 0x40, 0x20, 7, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/bulletholesplaster
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/windowhit
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/windowhit
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/windowhit
{IMAGE_IMPACT4, 0x20, 0x20, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/bullethole
{IMAGE_IMPACTMULTI, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/bulletholesplasterrgb
{IMAGE_IMPACTREDBRICK1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole1
{IMAGE_IMPACTREDBRICK2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole2
{IMAGE_IMPACTREDBRICK3, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole3
{IMAGE_IMPACTBRICK2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole6
{IMAGE_IMPACTBRICK3, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole7
{IMAGE_IMPACTBROWNBRICK1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole8
{IMAGE_IMPACTBROWNBRICK2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhole9
{IMAGE_IMPACT3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/wallhit
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/windowhit
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // bg/windowhit
{IMAGE_IMPACT1, 0x30, 0x30, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/windowhit
};
sImageTableEntry s_explosion_smokeimages[] = {
{IMAGE_SMOKE1, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKE2, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKE3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKE4, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKE5, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKE6, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}
sImageTableEntry s_explosion_smokeimages[] = { // sfx/smoke?
{IMAGE_SMOKE1, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/hit5
{IMAGE_SMOKE2, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/hit10
{IMAGE_SMOKE3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/hit15
{IMAGE_SMOKE4, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/hit20
{IMAGE_SMOKE5, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/hit25
{IMAGE_SMOKE6, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0} // sfx/hit30
};
sImageTableEntry s_scattered_explosions[] = {
{IMAGE_SMOKEBALLS1, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKEBALLS2, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKEBALLS3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKEBALLS4, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_SMOKEBALLS5, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}
sImageTableEntry s_scattered_explosions[] = { // sfx/firebomb?
{IMAGE_SMOKEBALLS1, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/backhit6
{IMAGE_SMOKEBALLS2, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/backhit12
{IMAGE_SMOKEBALLS3, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/backhit18
{IMAGE_SMOKEBALLS4, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/backhit24
{IMAGE_SMOKEBALLS5, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0} // sfx/backhit30
};
sImageTableEntry s_flareimage1[] = {
@@ -503,246 +503,258 @@ sImageTableEntry s_flareimage1[] = {
};
sImageTableEntry s_flareimage2[] = {
{IMAGE_WHITEBOX, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_WHITEBOX, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0} // sfx/white
};
sImageTableEntry s_flareimage3[] = {
{IMAGE_FLAREORANGELINE, 0x10, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_FLAREORANGELINE, 0x10, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0} // sfx/laser
};
sImageTableEntry s_flareimage4[] = {
{IMAGE_FLAREBLUELINE, 0x10, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_FLAREBLUELINE, 0x10, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0} // sfx/beam
};
sImageTableEntry s_flareimage5[] = {
{IMAGE_FLAREBLUEROUND, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_FLAREBLUEROUND, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0} // sfx/beamhead
};
sImageTableEntry s_ammo9mmimage[] = {
{IMAGE_9MMAMMO, 5, 0xC, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
{IMAGE_9MMAMMO, 5, 0xC, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoicon9mm
};
sImageTableEntry s_rifleammoimage[] = {
{IMAGE_RIFLEAMMO, 5, 0x1C, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_rifleammoimage[] = {
{IMAGE_RIFLEAMMO, 5, 0x1C, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconrifle
};
sImageTableEntry s_shotgunammoimage[] = {
{IMAGE_SHOTAMMO, 6, 0x14, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_shotgunammoimage[] = {
{IMAGE_SHOTAMMO, 6, 0x14, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconshell
};
sImageTableEntry s_knifeammoimage[] = {
{IMAGE_KNIFEAMMO, 6, 0x18, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_knifeammoimage[] = {
{IMAGE_KNIFEAMMO, 6, 0x18, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconknife
};
sImageTableEntry s_glammoimage[] = {
{IMAGE_GLAMMO, 8, 0x15, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP, 0}
sImageTableEntry s_glammoimage[] = {
{IMAGE_GLAMMO, 8, 0x15, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP, 0} // bg/ammoicongrenade
};
sImageTableEntry s_rocketammoimage[] = {
{IMAGE_ROCKETAMMO, 7, 0x16, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_rocketammoimage[] = {
{IMAGE_ROCKETAMMO, 7, 0x16, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconrocket
};
sImageTableEntry s_genericmineammoimage[] = {
{IMAGE_PLAINMINEAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_genericmineammoimage[] = {
{IMAGE_PLAINMINEAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconmine
};
sImageTableEntry s_grenadeammoimage[] = {
{IMAGE_GRENADEAMMO, 0xE, 0x12, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_grenadeammoimage[] = {
{IMAGE_GRENADEAMMO, 0xE, 0x12, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammogrenadehand
};
sImageTableEntry s_magnumammoimage[] = {
{IMAGE_MAGAMMO, 5, 0xF, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_magnumammoimage[] = {
{IMAGE_MAGAMMO, 5, 0xF, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconmagnum
};
sImageTableEntry s_goldengunammoimage[] = {
{IMAGE_GGAMMO, 5, 0xC, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_goldengunammoimage[] = {
{IMAGE_GGAMMO, 5, 0xC, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoicongold
};
sImageTableEntry s_remotemineammoimage[] = {
{IMAGE_MINEAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_remotemineammoimage[] = {
{IMAGE_MINEAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconminered
};
sImageTableEntry s_timedmineammoimage[] = {
{IMAGE_TIMEAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_timedmineammoimage[] = {
{IMAGE_TIMEAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconmineyellow
};
sImageTableEntry s_proxmineammoimage[] = {
{IMAGE_PROXAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_proxmineammoimage[] = {
{IMAGE_PROXAMMO, 0xE, 0xE, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoiconminegreen
};
sImageTableEntry s_tankammoimage[] = {
{IMAGE_TANKAMMO, 7, 0x16, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_tankammoimage[] = {
{IMAGE_TANKAMMO, 7, 0x16, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/ammoicontankshell
};
sImageTableEntry s_crosshairimage[] = {
{IMAGE_CROSSHAIR1, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0}
sImageTableEntry s_crosshairimage[] = {
{IMAGE_CROSSHAIR1, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0} // bg/sight
};
sImageTableEntry s_betacrosshairimage[] = {
{IMAGE_CROSSHAIR2, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0}
sImageTableEntry s_betacrosshairimage[] = {
{IMAGE_CROSSHAIR2, 0x20, 0x20, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_WRAP, 0} //
};
sImageTableEntry s_glassoverlayimage[] = {
{IMAGE_GLASS7, 0x20, 1, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_GLASS3, 0x36, 0x36, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}
sImageTableEntry s_glassoverlayimage[] = {
{IMAGE_GLASS7, 0x20, 1, 6, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // sfx/glass?
{IMAGE_GLASS3, 0x36, 0x36, 3, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0} // sfx/glass?
};
sImageTableEntry s_monitorimages[] = {
{IMAGE_MONITOR_BOND, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_LOCATION, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_BEGINARMING, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TARGET, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SEVERNAYA, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_BREAKTARGET, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_AIMER, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_EARTH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_DESKTOPBANG, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_HEATMAP, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_3DMATH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_DESKTOPBARS, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_2DMATH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SATELLITE, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_DESKTOP, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_DESKTOPSTAGGERED, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_CUBE1, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SHUTTLE1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SHUTTLE2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_EARTHFULL1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_EARTHFULL2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_BLUESTARS, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_GALAXY1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_GALAXY2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_EARTHTEXT, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TARGETEARTH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_GALAXY3, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_STATIC, 0x40, 0x40, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SINE, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TEXT, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_BARS, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SQUARES, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_FIST1, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_FIST2, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_FIST3, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_FIST4, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SKATEBOARD4, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SKATEBOARD1, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SKATEBOARD2, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_SKATEBOARD3, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TALK1, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TALK2, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TALK3, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TALK4, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_WORLDMAP, 0x80, 0x30, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_CLAMP, 0},
{IMAGE_MONITOR_CUBE2, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_CUBE3, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_CUBE4, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_MONITOR_TRIANGLE, 0x36, 0x36, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MONITOR_KEYBOARDKEY, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_MONITOR_BOND, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/bondlogo
{IMAGE_MONITOR_LOCATION, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/cyrlocation
{IMAGE_MONITOR_BEGINARMING, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/cyrweaponarmed
{IMAGE_MONITOR_TARGET, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/cyrtarget
{IMAGE_MONITOR_SEVERNAYA, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/cyrsevernaya
{IMAGE_MONITOR_BREAKTARGET, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/cyrtimetotarget
{IMAGE_MONITOR_AIMER, 0x80, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/cyrxhairspanel
{IMAGE_MONITOR_EARTH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen1
{IMAGE_MONITOR_DESKTOPBANG, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen2
{IMAGE_MONITOR_HEATMAP, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen3
{IMAGE_MONITOR_3DMATH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen4
{IMAGE_MONITOR_DESKTOPBARS, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen5
{IMAGE_MONITOR_2DMATH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen6
{IMAGE_MONITOR_SATELLITE, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen7
{IMAGE_MONITOR_DESKTOP, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen8
{IMAGE_MONITOR_DESKTOPSTAGGERED, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screen9
{IMAGE_MONITOR_CUBE1, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim2.0
{IMAGE_MONITOR_SHUTTLE1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax1
{IMAGE_MONITOR_SHUTTLE2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax2
{IMAGE_MONITOR_EARTHFULL1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax3
{IMAGE_MONITOR_EARTHFULL2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax4
{IMAGE_MONITOR_BLUESTARS, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax5
{IMAGE_MONITOR_GALAXY1, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax6
{IMAGE_MONITOR_GALAXY2, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax7
{IMAGE_MONITOR_EARTHTEXT, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax10
{IMAGE_MONITOR_TARGETEARTH, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax11
{IMAGE_MONITOR_GALAXY3, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/drax12
{IMAGE_MONITOR_STATIC, 0x40, 0x40, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screenstatic
{IMAGE_MONITOR_SINE, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screennew1
{IMAGE_MONITOR_TEXT, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screennew2
{IMAGE_MONITOR_BARS, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screennew3
{IMAGE_MONITOR_SQUARES, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/screennew4
{IMAGE_MONITOR_FIST1, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim4.1
{IMAGE_MONITOR_FIST2, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim4.2
{IMAGE_MONITOR_FIST3, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim4.3
{IMAGE_MONITOR_FIST4, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim4.4
{IMAGE_MONITOR_SKATEBOARD4, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim5.1
{IMAGE_MONITOR_SKATEBOARD1, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim5.2
{IMAGE_MONITOR_SKATEBOARD2, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim5.3
{IMAGE_MONITOR_SKATEBOARD3, 0x20, 0x20, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim5.4
{IMAGE_MONITOR_TALK1, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim3.1
{IMAGE_MONITOR_TALK2, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim3.2
{IMAGE_MONITOR_TALK3, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim3.3
{IMAGE_MONITOR_TALK4, 0x20, 0x20, 6, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim3.4
{IMAGE_MONITOR_WORLDMAP, 0x80, 0x30, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_CLAMP, 0}, // monitors/earthmap
{IMAGE_MONITOR_CUBE2, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim2.1
{IMAGE_MONITOR_CUBE3, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim2.2
{IMAGE_MONITOR_CUBE4, 0x10, 0x10, 5, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // monitors/anim2.3
{IMAGE_MONITOR_TRIANGLE, 0x36, 0x36, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // monitors/animradar
{IMAGE_MONITOR_KEYBOARDKEY, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0} // monitors/keyboardkey
};
sImageTableEntry s_skywaterimages[] = {
{IMAGE_CLOUDS_GRAYSCALE, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_WATER_GRAYSCALE, 0x40, 0x40, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0},
{IMAGE_WATER_BLUE, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_CLOUDS_GRAYSCALE, 0x40, 0x40, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // bg/clouds
{IMAGE_WATER_GRAYSCALE, 0x40, 0x40, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}, // bg/water1
{IMAGE_WATER_BLUE, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0} // bg/water2
};
sImageTableEntry s_mainfolderimages[] = {
{IMAGE_COPYICON, 0x20, 0x1C, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP, 0},
{IMAGE_DELICON, 0x20, 0x1C, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP, 0},
{IMAGE_SELECTFILE, 0x7A, 0x12, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_X, 0xF, 0xF, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_CHECK, 0x14, 0x14, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_DOT, 0x10, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_COPYICON, 0x20, 0x1C, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP, 0}, //
{IMAGE_DELICON, 0x20, 0x1C, 0, G_IM_FMT_RGBA, G_IM_SIZ_32b, G_TX_WRAP, G_TX_CLAMP, 0}, //
{IMAGE_SELECTFILE, 0x7A, 0x12, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, //
{IMAGE_X, 0xF, 0xF, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // cross
{IMAGE_CHECK, 0x14, 0x14, 0, G_IM_FMT_IA, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // tick
{IMAGE_DOT, 0x10, 0x10, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_WRAP, G_TX_WRAP, 0} //
};
sImageTableEntry s_mpradarimages[] = {
{IMAGE_RUSTYDRUM_END, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0}
{IMAGE_RUSTYDRUM_END, 0x20, 0x20, 6, G_IM_FMT_RGBA, G_IM_SIZ_16b, G_TX_WRAP, G_TX_WRAP, 0} //circle
};
sImageTableEntry s_mpcharselimages[] = {
{IMAGE_BROSNAN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BROSNAN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BROSNAN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BROSNAN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MOORE_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MOORE_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MOORE_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MOORE_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_DALTON_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_DALTON_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_DALTON_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_DALTON_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_CONNERY_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_CONNERY_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_CONNERY_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_CONNERY_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BORIS_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BORIS_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BORIS_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BORIS_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_OURUMOV_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_OURUMOV_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_OURUMOV_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_OURUMOV_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_TREVELYAN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_TREVELYAN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_TREVELYAN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_TREVELYAN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_VALENTIN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_VALENTIN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_VALENTIN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_VALENTIN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_XENIA_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_XENIA_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_XENIA_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_XENIA_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_NATALYA_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_NATALYA_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_NATALYA_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_NATALYA_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BARON_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BARON_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BARON_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_BARON_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_JAWS_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_JAWS_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_JAWS_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_JAWS_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MAYDAY_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MAYDAY_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MAYDAY_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MAYDAY_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_ODDJOB_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_ODDJOB_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_ODDJOB_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_ODDJOB_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_RANDOM_UL, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_RANDOM_UR, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_RANDOM_LL, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_RANDOM_LR, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MISHKIN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MISHKIN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MISHKIN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MISHKIN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}
{IMAGE_BROSNAN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/brosnan
{IMAGE_BROSNAN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/brosnan
{IMAGE_BROSNAN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/brosnan
{IMAGE_BROSNAN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/brosnan
{IMAGE_MOORE_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/moore
{IMAGE_MOORE_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/moore
{IMAGE_MOORE_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/moore
{IMAGE_MOORE_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/moore
{IMAGE_DALTON_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/dalton
{IMAGE_DALTON_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/dalton
{IMAGE_DALTON_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/dalton
{IMAGE_DALTON_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/dalton
{IMAGE_CONNERY_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/connery
{IMAGE_CONNERY_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/connery
{IMAGE_CONNERY_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/connery
{IMAGE_CONNERY_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/connery
{IMAGE_BORIS_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/boris
{IMAGE_BORIS_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/boris
{IMAGE_BORIS_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/boris
{IMAGE_BORIS_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/boris
{IMAGE_OURUMOV_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/ourumov/oumorov
{IMAGE_OURUMOV_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/ourumov/oumorov
{IMAGE_OURUMOV_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/ourumov/oumorov
{IMAGE_OURUMOV_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/ourumov/oumorov
{IMAGE_TREVELYAN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0 }, // characters/trevelyan
{IMAGE_TREVELYAN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0 }, // characters/trevelyan
{IMAGE_TREVELYAN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0 }, // characters/trevelyan
{IMAGE_TREVELYAN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0 }, // characters/trevelyan
{IMAGE_VALENTIN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/valentin
{IMAGE_VALENTIN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/valentin
{IMAGE_VALENTIN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/valentin
{IMAGE_VALENTIN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/valentin
{IMAGE_XENIA_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/xenia
{IMAGE_XENIA_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/xenia
{IMAGE_XENIA_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/xenia
{IMAGE_XENIA_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/xenia
{IMAGE_NATALYA_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/natalya
{IMAGE_NATALYA_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/natalya
{IMAGE_NATALYA_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/natalya
{IMAGE_NATALYA_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/natalya
{IMAGE_BARON_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/baron
{IMAGE_BARON_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/baron
{IMAGE_BARON_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/baron
{IMAGE_BARON_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/baron
{IMAGE_JAWS_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/jaws
{IMAGE_JAWS_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/jaws
{IMAGE_JAWS_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/jaws
{IMAGE_JAWS_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/jaws
{IMAGE_MAYDAY_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mayday
{IMAGE_MAYDAY_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mayday
{IMAGE_MAYDAY_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mayday
{IMAGE_MAYDAY_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mayday
{IMAGE_ODDJOB_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/oddjob
{IMAGE_ODDJOB_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/oddjob
{IMAGE_ODDJOB_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/oddjob
{IMAGE_ODDJOB_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/oddjob
{IMAGE_RANDOM_UL, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/who
{IMAGE_RANDOM_UR, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/who
{IMAGE_RANDOM_LL, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/who
{IMAGE_RANDOM_LR, 0x41, 0x43, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/who
{IMAGE_MISHKIN_UL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mishkin
{IMAGE_MISHKIN_UR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mishkin
{IMAGE_MISHKIN_LL, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0}, // characters/mishkin
{IMAGE_MISHKIN_LR, 0x41, 0x41, 7, G_IM_FMT_I, G_IM_SIZ_4b, G_TX_CLAMP, G_TX_CLAMP, 0} // characters/mishkin
};
sImageTableEntry s_mpstageselimages[] = {
{IMAGE_MP_BUNKER2, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_CAVERNS, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_ARCHIVES, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_DAM, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_FACILITY, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_RUNWAY, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_FRIGATE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_STATUE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_CRADLE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_AZTEC, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_EGYPT, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_DEPOT, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_TEMPLE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_BASEMENT, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_COMPLEX, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_CAVES, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0},
{IMAGE_MP_RANDOM, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}
//{IMAGE_MP_BUNKER, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/sevicon
//{IMAGE_MP_SILO, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/siloicon
//{IMAGE_MP_CONTROL, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/arecicon
//{IMAGE_MP_TRAIN, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/traicon
//{IMAGE_MP_STREETS, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/peteicon
//{IMAGE_MP_SURFACE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/sevxicon
//{IMAGE_MP_JUNGLE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/junicon
//{IMAGE_MP_SURFACE2, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/sevxbicon
{IMAGE_MP_BUNKER2, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/sevbicon
{IMAGE_MP_CAVERNS, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/caveicon
{IMAGE_MP_ARCHIVES, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/archicon
{IMAGE_MP_DAM, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/damicon
{IMAGE_MP_FACILITY, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/arkicon
{IMAGE_MP_RUNWAY, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/runicon
{IMAGE_MP_FRIGATE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/desticon
{IMAGE_MP_STATUE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/staticon
{IMAGE_MP_CRADLE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/cradicon
{IMAGE_MP_AZTEC, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/azticon
{IMAGE_MP_EGYPT, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/crypicon
{IMAGE_MP_DEPOT, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/depoicon
{IMAGE_MP_TEMPLE, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/smptempleicon
{IMAGE_MP_BASEMENT, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/smplibicon
{IMAGE_MP_COMPLEX, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/smpcomplexicon
{IMAGE_MP_CAVES, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0}, // level/smpcaveicon
{IMAGE_MP_RANDOM, 0x44, 0x2C, 0, G_IM_FMT_I, G_IM_SIZ_8b, G_TX_CLAMP, G_TX_CLAMP, 0} // bg/where
};
+46
View File
@@ -56,7 +56,53 @@ enum MONIMGIDS {
IMGKEYBOARDKEY
};
enum MAINFOLDERIMGIDS {
IMG_COPY,
IMG_DEL,
IMG_SEL,
IMG_X,
IMG_CHECK,
IMG_DOT
};
enum MPSELECTIMGIDS {
IMG_MP_BUNKER2,
IMG_MP_CAVERNS,
IMG_MP_ARCHIVES,
IMG_MP_DAM,
IMG_MP_FACILITY,
IMG_MP_RUNWAY,
IMG_MP_FRIGATE,
IMG_MP_STATUE,
IMG_MP_CRADLE,
IMG_MP_AZTEC,
IMG_MP_EGYPT,
IMG_MP_DEPOT,
IMG_MP_TEMPLE,
IMG_MP_BASEMENT,
IMG_MP_COMPLEX,
IMG_MP_CAVES,
IMG_MP_RANDOM
};
enum MPCHRSELIMAGES {
IMG_MPC_BROSNAN,
IMG_MPC_MOORE,
IMG_MPC_DALTON,
IMG_MPC_CONNERY,
IMG_MPC_BORIS,
IMG_MPC_OURUMOV,
IMG_MPC_TREVELYAN,
IMG_MPC_VALENTIN,
IMG_MPC_XENIA,
IMG_MPC_NATALYA,
IMG_MPC_BARON,
IMG_MPC_JAWS,
IMG_MPC_MAYDAY,
IMG_MPC_ODDJOB,
IMG_MPC_RANDOM,
IMG_MPC_MISHKIN
};
extern Gfx globalDL_0x000;
extern Gfx globalDL_0x078;
@@ -1,6 +1,6 @@
#include <ultra64.h>
u32 font_first_font_table_controller_small[] =
//bank gothic
u32 fontBankGothic_kerning[] =
{
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF,
@@ -18,7 +18,7 @@ u32 font_first_font_table_controller_small[] =
};
u32 font_second_font_table_controller_small1[] =
u32 fontBankGothic_fontchartable[] =
{
0x00000000, 0x00000002, 0x00000008, 0x00000002, 0x00000000, 0x00000B80,
0x00000001, 0x00000000, 0x00000005, 0x00000001, 0x00000000, 0x00000BC8,
@@ -116,7 +116,7 @@ u32 font_second_font_table_controller_small1[] =
0x0000005D, 0x00000004, 0x00000003, 0x00000008, 0x00000000, 0x00002490
};
u32 font_second_font_table_controller_small2[] =
u32 fontBankGothic_fontbytes[] =
{
0x00000000, 0xB8000000, 0x00000000, 0x272B2B2B, 0x2B2B2B2B, 0xBDCBCBCB,
0xCBCBCBCB, 0xBFCECECE, 0xCECECECE, 0xA4B4B4B4, 0xB4B4B4B4, 0x4B545454,
@@ -1,181 +1,25 @@
#include <ultra64.h>
u32 font_first_font_table_controller_large[] =
//zurich bold
u32 fontZurichBold_kerning[13*13] =
{
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0xFFFFFFFF,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000001,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0xFFFFFFFF,
0x00000000,
0xFFFFFFFF,
0x00000000,
0x00000000,
0xFFFFFFFF,
0x00000001,
0xFFFFFFFF,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000001,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000001,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000001,
0x00000000,
0x00000001,
0x00000000,
0x00000000,
0x00000001,
0x00000001,
0x00000000,
0x00000000
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000001,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0xFFFFFFFF, 0x00000000, 0xFFFFFFFF, 0x00000000, 0x00000000, 0xFFFFFFFF, 0x00000001, 0xFFFFFFFF, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000001,
0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000001,
0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000
};
u32 font_second_font_table_controller_large1[] =
u32 fontZurichBold_fontchartable[] =
{
0x00000000, 0x00000000, 0x0000000C, 0x00000002, 0x00000000, 0x00000B80,
0x00000001, 0x00000000, 0x00000006, 0x00000002, 0x00000000, 0x00000BE8,
@@ -273,7 +117,7 @@ u32 font_second_font_table_controller_large1[] =
0x0000005D, 0x00000005, 0x00000003, 0x0000000A, 0x00000000, 0x00003508
};
u32 font_second_font_table_controller_large2[] =
u32 fontZurichBold_fontbytes[] =
{
0x00000000, 0xB8000000, 0x00000000, 0x09212121, 0x21212121, 0x31BBBBBB,
0xBBBBBBBB, 0x37D9D9D9, 0xD9D9D9D9, 0x34D2D2D2, 0xD2D2D2D2, 0x33CECECE,
+3 -3
View File
@@ -51,12 +51,12 @@ BG_SEG_FILES = \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_ash_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_sho_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_ame_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_oat_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_rit_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_len_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_oat_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_lip_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_lee_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_ear_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_lip_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_len_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_pam_all_p.seg \
$(BUILD_DIR)/$(OBSEG_DIR)/bg/bg_wax_all_p.seg
@@ -1,5 +1,5 @@
#include "bg_all_p.h"
#include "bg_lip_all_p.h"
#include "bg_len_all_p.h"
struct bg_header header = {0, &room_data_table, &portal_data_table, &global_visibility_commands, 0};
File renamed without changes.
File renamed without changes.
+1 -1
View File
@@ -1,2 +1,2 @@
/*NAME, NOMODEL, STATS, UPPERTEXTID, LOWERTEXTID, POSX, POSY, POSZ, XROT, YROT, WOCTEXT, EQUIPTEXT, EQUIPX, EQUIPY, EQUIPZ*/
GUNFILERECORD( fist, 0, GUNSTATS(fist), TEXT(LGUN, 0x83), TEXT(LGUN, 0x76), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x76), TEXT(LGUN, 0xCD), 10.0, 10.0, 1000.0)
GUNFILERECORD( fist, 0, GUNSTATS(fist), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_76), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_76), TEXT(LGUN, GUN_STR_CD), 10.0, 10.0, 1000.0)
+6 -2
View File
@@ -2,7 +2,7 @@ WeaponStats fist_stats = {
1.0, //MuzzleFlashExtension
11.0, -50.0, -33.0, //PosXYZ
3.0, 3.0, 8.5, //PlayXYZ
0, 0, //ammotype magsize
AMMO_NONE, 0, //ammotype magsize
0xFF, 0x06, //AutomaticFiringRate SingleFiringRate
1, //ObjectsShootThrough
0, 0, //SoundTriggerRate Sound
@@ -23,5 +23,9 @@ WeaponStats fist_stats = {
2.0, //field_60
4.0, //field_64
0.0, //ForceOfImpact
0x64D91//BitFlags
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_MENU |
WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO//BitFlags
};
+86 -86
View File
@@ -2,90 +2,90 @@ GunModelFileRecord gitem_structs[] = {
{ NULL, NULL, TRUE, NULL, 0x9883, 0x9811, 0.0, 0.0, 1000.0, 0.0, 0.0, 0x9811, 0x9811, 10.0, 10.0, 1000.0},
#include <assets/obseg/gun/fist/gunFileRecord.inc.c>
#include <assets/obseg/gun/knife/gunFileRecord.inc.c>
GUNFILERECORD( throwknife, 0, GUNSTATS(throwknife), TEXT(LGUN, 0x71), TEXT(LGUN, 0x06), 200.0, 51.0, 1327.0, 0.0, 0.0, TEXT(LGUN, 0x70), TEXT(LGUN, 0xCA), 38.0, 118.0, 800.0)
GUNFILERECORD( wppk, 0, GUNSTATS(wppk), TEXT(LGUN, 0x57), TEXT(LGUN, 0x01), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, 0x56), TEXT(LGUN, 0xBA), 94.0, 2.0, 356.0)
GUNFILERECORD( wppksil, 0, GUNSTATS(wppksil), TEXT(LGUN, 0x03), TEXT(LGUN, 0x10), 26.0, 162.0, 668.0, 0.0, 0.0, TEXT(LGUN, 0x55), TEXT(LGUN, 0xB9), 169.0, 5.0, 535.0)
GUNFILERECORD( tt33, 0, GUNSTATS(tt33), TEXT(LGUN, 0x04), TEXT(LGUN, 0x32), 22.0, 128.0, 709.0, 0.0, 0.0, TEXT(LGUN, 0x2A), TEXT(LGUN, 0x9A), 124.0, 14.0, 455.0)
GUNFILERECORD( skorpion, 0, GUNSTATS(skorpion), TEXT(LGUN, 0x83), TEXT(LGUN, 0x6B), 46.0, 124.0, 785.0, 0.0, 0.0, TEXT(LGUN, 0x6B), TEXT(LGUN, 0xC6), 124.0, 32.0, 545.0)
GUNFILERECORD( ak47, 0, GUNSTATS(ak47), TEXT(LGUN, 0x08), TEXT(LGUN, 0x68), -29.0, 307.0, 1410.0, 0.0, 0.0, TEXT(LGUN, 0x42), TEXT(LGUN, 0xAB), 304.0, -31.0, 1020.0)
GUNFILERECORD( uzi, 0, GUNSTATS(uzi), TEXT(LGUN, 0x83), TEXT(LGUN, 0x82), -18.0, 57.0, 1198.0, 0.0, 0.0, TEXT(LGUN, 0x82), TEXT(LGUN, 0xD7), 68.0, -49.0, 667.0)
GUNFILERECORD( mp5k, 0, GUNSTATS(mp5k), TEXT(LGUN, 0x00), TEXT(LGUN, 0x2F), 12.0, 112.0, 1300.0, 0.0, 0.0, TEXT(LGUN, 0x29), TEXT(LGUN, 0x96), 123.0, -2.0, 628.0)
GUNFILERECORD( mp5ksil, 0, GUNSTATS(mp5ksil), TEXT(LGUN, 0x00), TEXT(LGUN, 0x10), 14.0, 227.0, 1300.0, 0.0, 0.0, TEXT(LGUN, 0x28), TEXT(LGUN, 0x95), 226.0, -10.0, 834.0)
GUNFILERECORD( spectre, 0, GUNSTATS(spectre), TEXT(LGUN, 0x83), TEXT(LGUN, 0x58), -4.0, 144.0, 1128.0, 0.0, 0.0, TEXT(LGUN, 0x58), TEXT(LGUN, 0xB4), 146.0, -18.0, 801.0)
GUNFILERECORD( m16, 0, GUNSTATS(m16), TEXT(LGUN, 0x75), TEXT(LGUN, 0x12), 25.0, 251.0, 1796.0, 0.0, 0.0, TEXT(LGUN, 0x74), TEXT(LGUN, 0x84), 246.0, -45.0, 1497.0)
GUNFILERECORD( fnp90, 0, GUNSTATS(fnp90), TEXT(LGUN, 0x83), TEXT(LGUN, 0x5E), 88.0, -44.0, 1107.0, 0.0, 0.0, TEXT(LGUN, 0x5E), TEXT(LGUN, 0xBC), -44.0, 31.0, 867.0)
GUNFILERECORD( shotgun, 0, GUNSTATS(shotgun), TEXT(LGUN, 0x83), TEXT(LGUN, 0x64), 39.0, 283.0, 1224.0, 0.0, 0.0, TEXT(LGUN, 0x64), TEXT(LGUN, 0xC1), 284.0, -22.0, 999.0)
GUNFILERECORD( autoshot, 0, GUNSTATS(autoshot), TEXT(LGUN, 0x16), TEXT(LGUN, 0x0C), 73.0, 285.0, 1224.0, 0.0, 0.0, TEXT(LGUN, 0x15), TEXT(LGUN, 0x86), 284.0, 4.0, 980.0)
GUNFILERECORD( sniperrifle, 0, GUNSTATS(sniperrifle), TEXT(LGUN, 0x67), TEXT(LGUN, 0x0A), 49.0, 265.0, 1760.0, 0.0, 0.0, TEXT(LGUN, 0x66), TEXT(LGUN, 0xC3), 268.0, 14.0, 1497.0)
GUNFILERECORD( ruger, 0, GUNSTATS(ruger), TEXT(LGUN, 0x26), TEXT(LGUN, 0x4C), 47.0, 184.0, 769.0, 0.0, 0.0, TEXT(LGUN, 0x25), TEXT(LGUN, 0x93), 182.0, 36.0, 604.0)
GUNFILERECORD( goldengun, 0, GUNSTATS(goldengun), TEXT(LGUN, 0x3B), TEXT(LGUN, 0x05), 29.0, 146.0, 629.0, 0.0, 0.0, TEXT(LGUN, 0x39), TEXT(LGUN, 0xA3), 144.0, 18.0, 464.0)
GUNFILERECORD( silverwppk, 0, GUNSTATS(silverwppk), TEXT(LGUN, 0x83), TEXT(LGUN, 0x65), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, 0x65), TEXT(LGUN, 0xC2), 94.0, 2.0, 356.0)
GUNFILERECORD( goldwppk, 0, GUNSTATS(goldwppk), TEXT(LGUN, 0x83), TEXT(LGUN, 0x38), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, 0x38), TEXT(LGUN, 0xA2), 94.0, 2.0, 356.0)
GUNFILERECORD( laser, 0, GUNSTATS(laser), TEXT(LGUN, 0x52), TEXT(LGUN, 0x47), 67.0, 106.0, 738.0, 0.0, 0.0, TEXT(LGUN, 0x51), TEXT(LGUN, 0xAC), 103.0, 21.0, 545.0)
GUNFILERECORD( watchlaser, 0, GUNSTATS(watchlaser), TEXT(LGUN, 0x7F), TEXT(LGUN, 0x47), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, 0x7B), TEXT(LGUN, 0xD2), 0.0, -40.0, 1383.0)
GUNFILERECORD( grenadelaunch, 0, GUNSTATS(grenadelaunch), TEXT(LGUN, 0x3D), TEXT(LGUN, 0x48), 27.0, 279.0, 1152.0, 0.0, 0.0, TEXT(LGUN, 0x3C), TEXT(LGUN, 0xA5), 284.0, -22.0, 960.0)
GUNFILERECORD( rocketlaunch, 0, GUNSTATS(rocketlaunch), TEXT(LGUN, 0x0B), TEXT(LGUN, 0x48), 111.0, -50.0, 1624.0, 0.0, 0.0, TEXT(LGUN, 0x61), TEXT(LGUN, 0xBF), -42.0, 16.0, 1381.0)
GUNFILERECORD( grenade, 0, GUNSTATS(grenade), TEXT(LGUN, 0x83), TEXT(LGUN, 0x3D), 180.0, 0.0, 2745.0, 0.0, 90.0, TEXT(LGUN, 0x3E), TEXT(LGUN, 0xA6), 0.0, 48.0, 1468.0)
GUNFILERECORD( timedmine, 0, GUNSTATS(timedmine), TEXT(LGUN, 0x09), TEXT(LGUN, 0x0F), 8.0, 0.0, 364.0, 90.0, 0.0, TEXT(LGUN, 0x72), TEXT(LGUN, 0xCB), 0.0, -3.0, 179.0)
GUNFILERECORD( proximitymine, 0, GUNSTATS(proximitymine), TEXT(LGUN, 0x02), TEXT(LGUN, 0x0D), 8.0, 0.0, 364.0, 90.0, 0.0, TEXT(LGUN, 0x5D), TEXT(LGUN, 0xBB), 0.0, -3.0, 179.0)
GUNFILERECORD( remotemine, 0, GUNSTATS(remotemine), TEXT(LGUN, 0x07), TEXT(LGUN, 0x0E), 8.0, 0.0, 364.0, 90.0, 0.0, TEXT(LGUN, 0x60), TEXT(LGUN, 0xBE), 0.0, -3.0, 179.0)
GUNFILERECORD( trigger, 0, GUNSTATS(trigger), TEXT(LGUN, 0x83), TEXT(LGUN, 0x2E), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, 0x2E), TEXT(LGUN, 0x9B), 0.0, -40.0, 1383.0)
GUNFILERECORD( taser, 0, GUNSTATS(taser), TEXT(LGUN, 0x83), TEXT(LGUN, 0x6F), 107.0, 49.0, 568.0, 0.0, 0.0, TEXT(LGUN, 0x6F), TEXT(LGUN, 0xC9), 64.0, 80.0, 333.0)
{ NULL, NULL, 0, GUNSTATS(tank), TEXT(LGUN, 0x83), TEXT(LGUN, 0x6E), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, 0x6E), TEXT(LGUN, 0xC8), 94.0, 2.0, 356.0},
GUNFILERECORD( bombcase, 0, GUNSTATS(bombcase), TEXT(LGUN, 0x83), TEXT(LGUN, 0x1A), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, 0x1A), TEXT(LGUN, 0x8A), 0.0, -8.0, 323.0)
GUNFILERECORD( plastique, 0, GUNSTATS(plastique), TEXT(LGUN, 0x83), TEXT(LGUN, 0x5B), 28.0, 0.0, 1062.0, 80.0, 90.0, TEXT(LGUN, 0x5B), TEXT(LGUN, 0xB7), 0.0, -16.0, 739.0)
GUNFILERECORD( flarepistol, 0, GUNSTATS(flarepistol), TEXT(LGUN, 0x83), TEXT(LGUN, 0x34), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x34), TEXT(LGUN, 0x9F), 0.0, 0.0, 1000.0)
GUNFILERECORD( pitongun, 0, GUNSTATS(pitongun), TEXT(LGUN, 0x83), TEXT(LGUN, 0x59), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x59), TEXT(LGUN, 0xB5), 0.0, 0.0, 1000.0)
GUNFILERECORD( bungee, TRUE, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x1F), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x1F), TEXT(LGUN, 0x8F), 0.0, 0.0, 1000.0)
GUNFILERECORD( doordecoder, TRUE, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x30), 12.0, 0.0, 364.0, 90.0, 90.0, TEXT(LGUN, 0x30), TEXT(LGUN, 0x9C), 0.0, -6.0, 199.0)
GUNFILERECORD( bombdefuser, TRUE, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x1B), 14.0, 0.0, 379.0, 90.0, 90.0, TEXT(LGUN, 0x1B), TEXT(LGUN, 0x8B), 0.0, 0.0, 279.0)
GUNFILERECORD( camera, 0, GUNSTATS(camera), TEXT(LGUN, 0x83), TEXT(LGUN, 0x20), 4.0, 0.0, 195.0, 20.0, 90.0, TEXT(LGUN, 0x20), TEXT(LGUN, 0x90), 0.0, -2.0, 144.0)
GUNFILERECORD( lockexploder, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x4A), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x4A), TEXT(LGUN, 0xAE), 0.0, 0.0, 1000.0)
GUNFILERECORD( doorexploder, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x31), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x31), TEXT(LGUN, 0x9D), 0.0, 0.0, 1000.0)
GUNFILERECORD( briefcase, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x1C), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, 0x1C), TEXT(LGUN, 0x8C), 0.0, -8.0, 323.0)
GUNFILERECORD( weaponcase, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x80), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, 0x80), TEXT(LGUN, 0xD5), 0.0, -8.0, 323.0)
GUNFILERECORD( safecrackercase, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x63), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, 0x62), TEXT(LGUN, 0xC0), 0.0, -8.0, 323.0)
GUNFILERECORD( keyanalysercase, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x44), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, 0x43), TEXT(LGUN, 0xA9), 0.0, -8.0, 323.0)
GUNFILERECORD( bug, 0, GUNSTATS(bug), TEXT(LGUN, 0x83), TEXT(LGUN, 0x1E), 16.0, 0.0, 513.0, 0.0, 90.0, TEXT(LGUN, 0x1E), TEXT(LGUN, 0x8E), 0.0, -6.0, 387.0)
GUNFILERECORD( microcamera, 0, GUNSTATS(microcamera), TEXT(LGUN, 0x83), TEXT(LGUN, 0x4E), 8.0, 0.0, 310.0, 0.0, 270.0, TEXT(LGUN, 0x4E), TEXT(LGUN, 0xB0), 0.0, -8.0, 229.0)
GUNFILERECORD( bugdetector, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x1D), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x1D), TEXT(LGUN, 0x8D), 0.0, 0.0, 1000.0)
GUNFILERECORD( explosivefloppy, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x33), 12.0, 0.0, 336.0, 0.0, 90.0, TEXT(LGUN, 0x33), TEXT(LGUN, 0x9E), 0.0, -4.0, 176.0)
GUNFILERECORD( polarizedglasses, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x5C), 2.0, 0.0, 183.0, 15.0, 90.0, TEXT(LGUN, 0x5C), TEXT(LGUN, 0xB8), 0.0, 0.0, 147.0)
GUNFILERECORD( darkglasses, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x2B), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x2B), TEXT(LGUN, 0x97), 0.0, 0.0, 1000.0)
GUNFILERECORD( creditcard, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x27), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x27), TEXT(LGUN, 0x94), 0.0, 0.0, 1000.0)
GUNFILERECORD( gaskeyring, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x35), 26.0, 0.0, 769.0, 90.0, 90.0, TEXT(LGUN, 0x35), TEXT(LGUN, 0xA0), 0.0, -8.0, 387.0)
GUNFILERECORD( datathief, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x2D), 16.0, 0.0, 474.0, 80.0, 0.0, TEXT(LGUN, 0x2D), TEXT(LGUN, 0x99), 0.0, -6.0, 350.0)
GUNFILERECORD( watchidentifier, 1, NULL, TEXT(LGUN, 0x7F), TEXT(LGUN, 0x41), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, 0x7A), TEXT(LGUN, 0xD1), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchcommunicator, 1, NULL, TEXT(LGUN, 0x7F), TEXT(LGUN, 0x23), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, 0x78), TEXT(LGUN, 0xCF), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchgeigercounter, 1, NULL, TEXT(LGUN, 0x7F), TEXT(LGUN, 0x36), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, 0x79), TEXT(LGUN, 0xD0), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchmagnetrepel, 1, NULL, TEXT(LGUN, 0x7F), TEXT(LGUN, 0x4B), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, 0x7D), TEXT(LGUN, 0xD4), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchmagnetattract, 0,GUNSTATS(watchmagnetattract), TEXT(LGUN, 0x7E), TEXT(LGUN, 0x13), 80.0, 0.0, 3036.0, 0.0, 90.0, TEXT(LGUN, 0x7C), TEXT(LGUN, 0xD3), 0.0, -40.0, 1383.0)
GUNFILERECORD( goldeneyekey, 0, GUNSTATS(goldeneyekey), TEXT(LGUN, 0x83), TEXT(LGUN, 0x3A), 18.0, 0.0, 560.0, 80.0, 0.0, TEXT(LGUN, 0x3A), TEXT(LGUN, 0xA4), 0.0, -4.0, 310.0)
GUNFILERECORD( blackbox, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x17), 18.0, 0.0, 545.0, 0.0, 90.0, TEXT(LGUN, 0x17), TEXT(LGUN, 0x87), 0.0, -8.0, 380.0)
GUNFILERECORD( circuitboard, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x21), 20.0, 0.0, 568.0, 80.0, 0.0, TEXT(LGUN, 0x21), TEXT(LGUN, 0x91), 0.0, 0.0, 394.0)
GUNFILERECORD( clipboard, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x22), 40.0, 0.0, 1151.0, 80.0, 90.0, TEXT(LGUN, 0x22), TEXT(LGUN, 0x92), 0.0, -20.0, 580.0)
GUNFILERECORD( stafflist, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x6C), 44.0, 0.0, 1274.0, 80.0, 90.0, TEXT(LGUN, 0x6C), TEXT(LGUN, 0xC7), 0.0, -16.0, 681.0)
GUNFILERECORD( dossierred, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x5F), 38.0, 0.0, 1084.0, 350.0, 90.0, TEXT(LGUN, 0x5F), TEXT(LGUN, 0xBD), 0.0, -12.0, 580.0)
GUNFILERECORD( plans, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x5A), 18.0, 0.0, 464.0, 350.0, 90.0, TEXT(LGUN, 0x5A), TEXT(LGUN, 0xB6), 0.0, -2.0, 253.0)
GUNFILERECORD( spyfile, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x6A), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x6A), TEXT(LGUN, 0xC5), 0.0, 0.0, 1000.0)
GUNFILERECORD( blueprints, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x18), 18.0, 0.0, 579.0, 350.0, 90.0, TEXT(LGUN, 0x18), TEXT(LGUN, 0x88), 0.0, -8.0, 364.0)
GUNFILERECORD( map, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x4D), 18.0, 0.0, 579.0, 350.0, 90.0, TEXT(LGUN, 0x4D), TEXT(LGUN, 0xAF), 0.0, -6.0, 364.0)
GUNFILERECORD( audiotape, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x14), 16.0, 0.0, 428.0, 90.0, 90.0, TEXT(LGUN, 0x14), TEXT(LGUN, 0x85), 0.0, -2.0, 292.0)
GUNFILERECORD( videotape, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x77), 26.0, 0.0, 753.0, 90.0, 0.0, TEXT(LGUN, 0x77), TEXT(LGUN, 0xCE), 0.0, -8.0, 395.0)
GUNFILERECORD( dattape, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x2C), 14.0, 0.0, 387.0, 90.0, 90.0, TEXT(LGUN, 0x2C), TEXT(LGUN, 0x98), 0.0, 0.0, 238.0)
GUNFILERECORD( spooltape, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x69), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x69), TEXT(LGUN, 0xC4), 0.0, 0.0, 1000.0)
GUNFILERECORD( microfilm, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x50), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x50), TEXT(LGUN, 0xB2), 0.0, 0.0, 1000.0)
GUNFILERECORD( microcode, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x4F), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x4F), TEXT(LGUN, 0xB1), 0.0, 0.0, 1000.0)
GUNFILERECORD( lectre, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x49), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x49), TEXT(LGUN, 0xAD), 0.0, 0.0, 1000.0)
GUNFILERECORD( money, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x53), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x53), TEXT(LGUN, 0xB3), 0.0, 0.0, 1000.0)
GUNFILERECORD( goldbar, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x37), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x37), TEXT(LGUN, 0xA1), 0.0, 0.0, 1000.0)
GUNFILERECORD( heroin, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x3F), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x3F), TEXT(LGUN, 0xA7), 0.0, 0.0, 1000.0)
GUNFILERECORD( keycard, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x45), 24.0, 0.0, 556.0, 80.0, 90.0, TEXT(LGUN, 0x45), TEXT(LGUN, 0xAA), 0.0, -6.0, 411.0)
GUNFILERECORD( keyyale, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x81), 64.0, 0.0, 1912.0, 260.0, 90.0, TEXT(LGUN, 0x81), TEXT(LGUN, 0xD6), 0.0, -18.0, 1568.0)
GUNFILERECORD( keybolt, 1, NULL, TEXT(LGUN, 0x83), TEXT(LGUN, 0x19), 78.0, 0.0, 3518.0, 80.0, 90.0, TEXT(LGUN, 0x19), TEXT(LGUN, 0x89), 0.0, -12.0, 2582.0)
SUIT_LFRECORD(suit_lf_hand, 0, GUNSTATS(Csuit_lf_handz), TEXT(LGUN, 0x83), TEXT(LGUN, 0x6D), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x83), TEXT(LGUN, 0x83), 10.0, 10.0, 1000.0)
GUNFILERECORD( joypad, 0, GUNSTATS(joypad), TEXT(LGUN, 0x83), TEXT(LGUN, 0x24), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x83), TEXT(LGUN, 0x83), 10.0, 10.0, 1000.0)
{ NULL , NULL, 0, GUNSTATS(null1), TEXT(LGUN, 0x83), TEXT(LGUN, 0x54), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x83), TEXT(LGUN, 0x83), 10.0, 10.0, 1000.0},
{ NULL , NULL, 0, GUNSTATS(null2), TEXT(LGUN, 0x83), TEXT(LGUN, 0x54), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, 0x83), TEXT(LGUN, 0x83), 10.0, 10.0, 1000.0},
{ NULL , NULL, 0, GUNSTATS(token), TEXT(LGUN, 0x83), TEXT(LGUN, 0x73), 12.0, 0.0, 528.0, 80.0, 0.0, TEXT(LGUN, 0x73), TEXT(LGUN, 0xCC), 0.0, -4.0, 310.0}
GUNFILERECORD( throwknife, 0, GUNSTATS(throwknife), TEXT(LGUN, GUN_STR_71), TEXT(LGUN, GUN_STR_06), 200.0, 51.0, 1327.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_70), TEXT(LGUN, GUN_STR_CA), 38.0, 118.0, 800.0)
GUNFILERECORD( wppk, 0, GUNSTATS(wppk), TEXT(LGUN, GUN_STR_57), TEXT(LGUN, GUN_STR_01), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_56), TEXT(LGUN, GUN_STR_BA), 94.0, 2.0, 356.0)
GUNFILERECORD( wppksil, 0, GUNSTATS(wppksil), TEXT(LGUN, GUN_STR_03), TEXT(LGUN, GUN_STR_10), 26.0, 162.0, 668.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_55), TEXT(LGUN, GUN_STR_B9), 169.0, 5.0, 535.0)
GUNFILERECORD( tt33, 0, GUNSTATS(tt33), TEXT(LGUN, GUN_STR_04), TEXT(LGUN, GUN_STR_32), 22.0, 128.0, 709.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_2A), TEXT(LGUN, GUN_STR_9A), 124.0, 14.0, 455.0)
GUNFILERECORD( skorpion, 0, GUNSTATS(skorpion), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_6B), 46.0, 124.0, 785.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_6B), TEXT(LGUN, GUN_STR_C6), 124.0, 32.0, 545.0)
GUNFILERECORD( ak47, 0, GUNSTATS(ak47), TEXT(LGUN, GUN_STR_08), TEXT(LGUN, GUN_STR_68), -29.0, 307.0, 1410.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_42), TEXT(LGUN, GUN_STR_AB), 304.0, -31.0, 1020.0)
GUNFILERECORD( uzi, 0, GUNSTATS(uzi), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_82), -18.0, 57.0, 1198.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_82), TEXT(LGUN, GUN_STR_D7), 68.0, -49.0, 667.0)
GUNFILERECORD( mp5k, 0, GUNSTATS(mp5k), TEXT(LGUN, GUN_STR_00), TEXT(LGUN, GUN_STR_2F), 12.0, 112.0, 1300.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_29), TEXT(LGUN, GUN_STR_96), 123.0, -2.0, 628.0)
GUNFILERECORD( mp5ksil, 0, GUNSTATS(mp5ksil), TEXT(LGUN, GUN_STR_00), TEXT(LGUN, GUN_STR_10), 14.0, 227.0, 1300.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_28), TEXT(LGUN, GUN_STR_95), 226.0, -10.0, 834.0)
GUNFILERECORD( spectre, 0, GUNSTATS(spectre), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_58), -4.0, 144.0, 1128.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_58), TEXT(LGUN, GUN_STR_B4), 146.0, -18.0, 801.0)
GUNFILERECORD( m16, 0, GUNSTATS(m16), TEXT(LGUN, GUN_STR_75), TEXT(LGUN, GUN_STR_12), 25.0, 251.0, 1796.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_74), TEXT(LGUN, GUN_STR_84), 246.0, -45.0, 1497.0)
GUNFILERECORD( fnp90, 0, GUNSTATS(fnp90), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_5E), 88.0, -44.0, 1107.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_5E), TEXT(LGUN, GUN_STR_BC), -44.0, 31.0, 867.0)
GUNFILERECORD( shotgun, 0, GUNSTATS(shotgun), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_64), 39.0, 283.0, 1224.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_64), TEXT(LGUN, GUN_STR_C1), 284.0, -22.0, 999.0)
GUNFILERECORD( autoshot, 0, GUNSTATS(autoshot), TEXT(LGUN, GUN_STR_16), TEXT(LGUN, GUN_STR_0C), 73.0, 285.0, 1224.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_15), TEXT(LGUN, GUN_STR_86), 284.0, 4.0, 980.0)
GUNFILERECORD( sniperrifle, 0, GUNSTATS(sniperrifle), TEXT(LGUN, GUN_STR_67), TEXT(LGUN, GUN_STR_0A), 49.0, 265.0, 1760.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_66), TEXT(LGUN, GUN_STR_C3), 268.0, 14.0, 1497.0)
GUNFILERECORD( ruger, 0, GUNSTATS(ruger), TEXT(LGUN, GUN_STR_26), TEXT(LGUN, GUN_STR_4C), 47.0, 184.0, 769.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_25), TEXT(LGUN, GUN_STR_93), 182.0, 36.0, 604.0)
GUNFILERECORD( goldengun, 0, GUNSTATS(goldengun), TEXT(LGUN, GUN_STR_3B), TEXT(LGUN, GUN_STR_05), 29.0, 146.0, 629.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_39), TEXT(LGUN, GUN_STR_A3), 144.0, 18.0, 464.0)
GUNFILERECORD( silverwppk, 0, GUNSTATS(silverwppk), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_65), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_65), TEXT(LGUN, GUN_STR_C2), 94.0, 2.0, 356.0)
GUNFILERECORD( goldwppk, 0, GUNSTATS(goldwppk), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_38), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_38), TEXT(LGUN, GUN_STR_A2), 94.0, 2.0, 356.0)
GUNFILERECORD( laser, 0, GUNSTATS(laser), TEXT(LGUN, GUN_STR_52), TEXT(LGUN, GUN_STR_47), 67.0, 106.0, 738.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_51), TEXT(LGUN, GUN_STR_AC), 103.0, 21.0, 545.0)
GUNFILERECORD( watchlaser, 0, GUNSTATS(watchlaser), TEXT(LGUN, GUN_STR_7F), TEXT(LGUN, GUN_STR_47), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_7B), TEXT(LGUN, GUN_STR_D2), 0.0, -40.0, 1383.0)
GUNFILERECORD( grenadelaunch, 0, GUNSTATS(grenadelaunch), TEXT(LGUN, GUN_STR_3D), TEXT(LGUN, GUN_STR_48), 27.0, 279.0, 1152.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_3C), TEXT(LGUN, GUN_STR_A5), 284.0, -22.0, 960.0)
GUNFILERECORD( rocketlaunch, 0, GUNSTATS(rocketlaunch), TEXT(LGUN, GUN_STR_0B), TEXT(LGUN, GUN_STR_48), 111.0, -50.0, 1624.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_61), TEXT(LGUN, GUN_STR_BF), -42.0, 16.0, 1381.0)
GUNFILERECORD( grenade, 0, GUNSTATS(grenade), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_3D), 180.0, 0.0, 2745.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_3E), TEXT(LGUN, GUN_STR_A6), 0.0, 48.0, 1468.0)
GUNFILERECORD( timedmine, 0, GUNSTATS(timedmine), TEXT(LGUN, GUN_STR_09), TEXT(LGUN, GUN_STR_0F), 8.0, 0.0, 364.0, 90.0, 0.0, TEXT(LGUN, GUN_STR_72), TEXT(LGUN, GUN_STR_CB), 0.0, -3.0, 179.0)
GUNFILERECORD( proximitymine, 0, GUNSTATS(proximitymine), TEXT(LGUN, GUN_STR_02), TEXT(LGUN, GUN_STR_0D), 8.0, 0.0, 364.0, 90.0, 0.0, TEXT(LGUN, GUN_STR_5D), TEXT(LGUN, GUN_STR_BB), 0.0, -3.0, 179.0)
GUNFILERECORD( remotemine, 0, GUNSTATS(remotemine), TEXT(LGUN, GUN_STR_07), TEXT(LGUN, GUN_STR_0E), 8.0, 0.0, 364.0, 90.0, 0.0, TEXT(LGUN, GUN_STR_60), TEXT(LGUN, GUN_STR_BE), 0.0, -3.0, 179.0)
GUNFILERECORD( trigger, 0, GUNSTATS(trigger), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_2E), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_2E), TEXT(LGUN, GUN_STR_9B), 0.0, -40.0, 1383.0)
GUNFILERECORD( taser, 0, GUNSTATS(taser), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_6F), 107.0, 49.0, 568.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_6F), TEXT(LGUN, GUN_STR_C9), 64.0, 80.0, 333.0)
{ NULL, NULL, 0, GUNSTATS(tank), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_6E), 20.0, 97.0, 579.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_6E), TEXT(LGUN, GUN_STR_C8), 94.0, 2.0, 356.0},
GUNFILERECORD( bombcase, 0, GUNSTATS(bombcase), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_1A), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_1A), TEXT(LGUN, GUN_STR_8A), 0.0, -8.0, 323.0)
GUNFILERECORD( plastique, 0, GUNSTATS(plastique), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_5B), 28.0, 0.0, 1062.0, 80.0, 90.0, TEXT(LGUN, GUN_STR_5B), TEXT(LGUN, GUN_STR_B7), 0.0, -16.0, 739.0)
GUNFILERECORD( flarepistol, 0, GUNSTATS(flarepistol), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_34), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_34), TEXT(LGUN, GUN_STR_9F), 0.0, 0.0, 1000.0)
GUNFILERECORD( pitongun, 0, GUNSTATS(pitongun), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_59), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_59), TEXT(LGUN, GUN_STR_B5), 0.0, 0.0, 1000.0)
GUNFILERECORD( bungee, TRUE, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_1F), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_1F), TEXT(LGUN, GUN_STR_8F), 0.0, 0.0, 1000.0)
GUNFILERECORD( doordecoder, TRUE, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_30), 12.0, 0.0, 364.0, 90.0, 90.0, TEXT(LGUN, GUN_STR_30), TEXT(LGUN, GUN_STR_9C), 0.0, -6.0, 199.0)
GUNFILERECORD( bombdefuser, TRUE, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_1B), 14.0, 0.0, 379.0, 90.0, 90.0, TEXT(LGUN, GUN_STR_1B), TEXT(LGUN, GUN_STR_8B), 0.0, 0.0, 279.0)
GUNFILERECORD( camera, 0, GUNSTATS(camera), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_20), 4.0, 0.0, 195.0, 20.0, 90.0, TEXT(LGUN, GUN_STR_20), TEXT(LGUN, GUN_STR_90), 0.0, -2.0, 144.0)
GUNFILERECORD( lockexploder, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_4A), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_4A), TEXT(LGUN, GUN_STR_AE), 0.0, 0.0, 1000.0)
GUNFILERECORD( doorexploder, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_31), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_31), TEXT(LGUN, GUN_STR_9D), 0.0, 0.0, 1000.0)
GUNFILERECORD( briefcase, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_1C), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_1C), TEXT(LGUN, GUN_STR_8C), 0.0, -8.0, 323.0)
GUNFILERECORD( weaponcase, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_80), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_80), TEXT(LGUN, GUN_STR_D5), 0.0, -8.0, 323.0)
GUNFILERECORD( safecrackercase, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_63), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_62), TEXT(LGUN, GUN_STR_C0), 0.0, -8.0, 323.0)
GUNFILERECORD( keyanalysercase, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_44), 16.0, 0.0, 568.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_43), TEXT(LGUN, GUN_STR_A9), 0.0, -8.0, 323.0)
GUNFILERECORD( bug, 0, GUNSTATS(bug), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_1E), 16.0, 0.0, 513.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_1E), TEXT(LGUN, GUN_STR_8E), 0.0, -6.0, 387.0)
GUNFILERECORD( microcamera, 0, GUNSTATS(microcamera), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_4E), 8.0, 0.0, 310.0, 0.0, 270.0, TEXT(LGUN, GUN_STR_4E), TEXT(LGUN, GUN_STR_B0), 0.0, -8.0, 229.0)
GUNFILERECORD( bugdetector, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_1D), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_1D), TEXT(LGUN, GUN_STR_8D), 0.0, 0.0, 1000.0)
GUNFILERECORD( explosivefloppy, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_33), 12.0, 0.0, 336.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_33), TEXT(LGUN, GUN_STR_9E), 0.0, -4.0, 176.0)
GUNFILERECORD( polarizedglasses, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_5C), 2.0, 0.0, 183.0, 15.0, 90.0, TEXT(LGUN, GUN_STR_5C), TEXT(LGUN, GUN_STR_B8), 0.0, 0.0, 147.0)
GUNFILERECORD( darkglasses, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_2B), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_2B), TEXT(LGUN, GUN_STR_97), 0.0, 0.0, 1000.0)
GUNFILERECORD( creditcard, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_27), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_27), TEXT(LGUN, GUN_STR_94), 0.0, 0.0, 1000.0)
GUNFILERECORD( gaskeyring, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_35), 26.0, 0.0, 769.0, 90.0, 90.0, TEXT(LGUN, GUN_STR_35), TEXT(LGUN, GUN_STR_A0), 0.0, -8.0, 387.0)
GUNFILERECORD( datathief, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_2D), 16.0, 0.0, 474.0, 80.0, 0.0, TEXT(LGUN, GUN_STR_2D), TEXT(LGUN, GUN_STR_99), 0.0, -6.0, 350.0)
GUNFILERECORD( watchidentifier, 1, NULL, TEXT(LGUN, GUN_STR_7F), TEXT(LGUN, GUN_STR_41), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_7A), TEXT(LGUN, GUN_STR_D1), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchcommunicator, 1, NULL, TEXT(LGUN, GUN_STR_7F), TEXT(LGUN, GUN_STR_23), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_78), TEXT(LGUN, GUN_STR_CF), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchgeigercounter, 1, NULL, TEXT(LGUN, GUN_STR_7F), TEXT(LGUN, GUN_STR_36), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_79), TEXT(LGUN, GUN_STR_D0), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchmagnetrepel, 1, NULL, TEXT(LGUN, GUN_STR_7F), TEXT(LGUN, GUN_STR_4B), 82.0, 0.0, 2857.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_7D), TEXT(LGUN, GUN_STR_D4), 0.0, -40.0, 1383.0)
GUNFILERECORD( watchmagnetattract, 0,GUNSTATS(watchmagnetattract), TEXT(LGUN, GUN_STR_7E), TEXT(LGUN, GUN_STR_13), 80.0, 0.0, 3036.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_7C), TEXT(LGUN, GUN_STR_D3), 0.0, -40.0, 1383.0)
GUNFILERECORD( goldeneyekey, 0, GUNSTATS(goldeneyekey), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_3A), 18.0, 0.0, 560.0, 80.0, 0.0, TEXT(LGUN, GUN_STR_3A), TEXT(LGUN, GUN_STR_A4), 0.0, -4.0, 310.0)
GUNFILERECORD( blackbox, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_17), 18.0, 0.0, 545.0, 0.0, 90.0, TEXT(LGUN, GUN_STR_17), TEXT(LGUN, GUN_STR_87), 0.0, -8.0, 380.0)
GUNFILERECORD( circuitboard, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_21), 20.0, 0.0, 568.0, 80.0, 0.0, TEXT(LGUN, GUN_STR_21), TEXT(LGUN, GUN_STR_91), 0.0, 0.0, 394.0)
GUNFILERECORD( clipboard, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_22), 40.0, 0.0, 1151.0, 80.0, 90.0, TEXT(LGUN, GUN_STR_22), TEXT(LGUN, GUN_STR_92), 0.0, -20.0, 580.0)
GUNFILERECORD( stafflist, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_6C), 44.0, 0.0, 1274.0, 80.0, 90.0, TEXT(LGUN, GUN_STR_6C), TEXT(LGUN, GUN_STR_C7), 0.0, -16.0, 681.0)
GUNFILERECORD( dossierred, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_5F), 38.0, 0.0, 1084.0, 350.0, 90.0, TEXT(LGUN, GUN_STR_5F), TEXT(LGUN, GUN_STR_BD), 0.0, -12.0, 580.0)
GUNFILERECORD( plans, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_5A), 18.0, 0.0, 464.0, 350.0, 90.0, TEXT(LGUN, GUN_STR_5A), TEXT(LGUN, GUN_STR_B6), 0.0, -2.0, 253.0)
GUNFILERECORD( spyfile, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_6A), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_6A), TEXT(LGUN, GUN_STR_C5), 0.0, 0.0, 1000.0)
GUNFILERECORD( blueprints, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_18), 18.0, 0.0, 579.0, 350.0, 90.0, TEXT(LGUN, GUN_STR_18), TEXT(LGUN, GUN_STR_88), 0.0, -8.0, 364.0)
GUNFILERECORD( map, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_4D), 18.0, 0.0, 579.0, 350.0, 90.0, TEXT(LGUN, GUN_STR_4D), TEXT(LGUN, GUN_STR_AF), 0.0, -6.0, 364.0)
GUNFILERECORD( audiotape, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_14), 16.0, 0.0, 428.0, 90.0, 90.0, TEXT(LGUN, GUN_STR_14), TEXT(LGUN, GUN_STR_85), 0.0, -2.0, 292.0)
GUNFILERECORD( videotape, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_77), 26.0, 0.0, 753.0, 90.0, 0.0, TEXT(LGUN, GUN_STR_77), TEXT(LGUN, GUN_STR_CE), 0.0, -8.0, 395.0)
GUNFILERECORD( dattape, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_2C), 14.0, 0.0, 387.0, 90.0, 90.0, TEXT(LGUN, GUN_STR_2C), TEXT(LGUN, GUN_STR_98), 0.0, 0.0, 238.0)
GUNFILERECORD( spooltape, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_69), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_69), TEXT(LGUN, GUN_STR_C4), 0.0, 0.0, 1000.0)
GUNFILERECORD( microfilm, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_50), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_50), TEXT(LGUN, GUN_STR_B2), 0.0, 0.0, 1000.0)
GUNFILERECORD( microcode, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_4F), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_4F), TEXT(LGUN, GUN_STR_B1), 0.0, 0.0, 1000.0)
GUNFILERECORD( lectre, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_49), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_49), TEXT(LGUN, GUN_STR_AD), 0.0, 0.0, 1000.0)
GUNFILERECORD( money, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_53), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_53), TEXT(LGUN, GUN_STR_B3), 0.0, 0.0, 1000.0)
GUNFILERECORD( goldbar, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_37), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_37), TEXT(LGUN, GUN_STR_A1), 0.0, 0.0, 1000.0)
GUNFILERECORD( heroin, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_3F), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_3F), TEXT(LGUN, GUN_STR_A7), 0.0, 0.0, 1000.0)
GUNFILERECORD( keycard, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_45), 24.0, 0.0, 556.0, 80.0, 90.0, TEXT(LGUN, GUN_STR_45), TEXT(LGUN, GUN_STR_AA), 0.0, -6.0, 411.0)
GUNFILERECORD( keyyale, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_81), 64.0, 0.0, 1912.0, 260.0, 90.0, TEXT(LGUN, GUN_STR_81), TEXT(LGUN, GUN_STR_D6), 0.0, -18.0, 1568.0)
GUNFILERECORD( keybolt, 1, NULL, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_19), 78.0, 0.0, 3518.0, 80.0, 90.0, TEXT(LGUN, GUN_STR_19), TEXT(LGUN, GUN_STR_89), 0.0, -12.0, 2582.0)
SUIT_LFRECORD(suit_lf_hand, 0, GUNSTATS(Csuit_lf_handz), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_6D), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_83), 10.0, 10.0, 1000.0)
GUNFILERECORD( joypad, 0, GUNSTATS(joypad), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_24), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_83), 10.0, 10.0, 1000.0)
{ NULL , NULL, 0, GUNSTATS(null1), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_54), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_83), 10.0, 10.0, 1000.0},
{ NULL , NULL, 0, GUNSTATS(null2), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_54), 0.0, 0.0, 1000.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_83), 10.0, 10.0, 1000.0},
{ NULL , NULL, 0, GUNSTATS(token), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_73), 12.0, 0.0, 528.0, 80.0, 0.0, TEXT(LGUN, GUN_STR_73), TEXT(LGUN, GUN_STR_CC), 0.0, -4.0, 310.0}
};
+335 -87
View File
@@ -3,8 +3,14 @@
#define SCALEVAL1 0.80000001
#define SCALEVAL_KNIFE 0.80000001
#define SCALEVAL_SKORPION 0.80000001
#define RATE_SKORPION 0xB
#define SCALEVAL_AK47 0.80000001
#define RATE_AK47 0x4
#define SCALEVAL_UZI 0.80000001
#define RATE_UZI 0x4
#define RATE_MP5k 0x4
#define RATE_SPECTRE 0x4
#define RATE_M16 0x5
#define SCALEVAL_P90 0.80000001
#define SCALEVAL_RUGER 0.80000001
#define SCALEVAL_LAUNCHER 0.80000001
@@ -14,8 +20,14 @@
#define SCALEVAL1 0.881200015545f
#define SCALEVAL_KNIFE 0.82279998064f
#define SCALEVAL_SKORPION 0.869499981403f
#define RATE_SKORPION 9
#define SCALEVAL_AK47 0.893000006676f
#define RATE_AK47 0x3
#define SCALEVAL_UZI 0.857800006866f
#define RATE_UZI 0x3
#define RATE_MP5k 0x3
#define RATE_SPECTRE 0x3
#define RATE_M16 0x4
#define SCALEVAL_P90 0.846099972725
#define SCALEVAL_RUGER 0.834399998188
#define SCALEVAL_LAUNCHER 0.904799997807
@@ -25,8 +37,14 @@
#define SCALEVAL1 0.8812
#define SCALEVAL_KNIFE 0.8228
#define SCALEVAL_SKORPION 0.8695
#define RATE_SKORPION 0xB
#define SCALEVAL_AK47 0.893
#define RATE_AK47 0x4
#define SCALEVAL_UZI 0.8578
#define RATE_UZI 0x4
#define RATE_MP5k 0x4
#define RATE_SPECTRE 0x4
#define RATE_M16 0x5
#define SCALEVAL_P90 0.8461
#define SCALEVAL_RUGER 0.8344
#define SCALEVAL_LAUNCHER 0.9048
@@ -35,7 +53,13 @@
#endif
//D:80032494
WeaponStats default_weaponstats = {
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 0.0, 0x110
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY |
WEAPONSTATBITFLAG_ONLY_1_HANDED
};
//D:80032504
#include <assets/obseg/gun/fist/gunWeaponStat.inc.c>
@@ -45,233 +69,457 @@ WeaponStats default_weaponstats = {
//D:800325E4
WeaponStats throwknife_stats = {
1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, 0xA, 1, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0,2.0, 4.0, 1.0, 0x560D83
1.0, 14.0, -24.799999, -34.0, 3.0, 3.0, 8.5, AMMO_KNIFE, 1, 0xFF, 0x06, 1, 0, 0, NULL, 3.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0,2.0, 4.0, 1.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD | WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80032654
WeaponStats wppk_stats = {
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &cartridge_header, 1.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_9MM, 7, 0xFF, 0x10, 1, 0, 0x6B, &cartridge_header, 1.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:800326C4
WeaponStats wppksil_stats = {
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x2E, &cartridge_header, 1.0, 3.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 1.5, 5.0, 29.999998, 0.0, 5.0, 1.0, 2.0, 4.0, 0.0, 0x170FB9
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_9MM, 7, 0xFF, 0x10, 1, 0, 0x2E, &cartridge_header, 1.0, 3.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 1.5, 5.0, 29.999998, 0.0, 5.0, 1.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032734
WeaponStats tt33_stats = {
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 8, 0xFF, 0x10, 1, 0, 0x70, &cartridge_header, 1.0, 6.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 5.0, 10.0, 59.999996, 2.0, 16.0, 3.0, 2.0, 4.0, 0.0, 0x170FB9
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_9MM, 8, 0xFF, 0x10, 1, 0, 0x70, &cartridge_header, 1.0, 6.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 5.0, 10.0, 59.999996, 2.0, 16.0, 3.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#if defined(VERSION_EU)
WeaponStats skorpion_stats = {
2.0, 11.5, -25.0, -27.5, 3.0, 5.0, 10.0, 1, 0x14, 0x03, 0x00, 1, 0x9, 0x6A, &cartridge_header, 0.60000002, 15.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 6, 0.0, 0.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x170B79
};
#else
//D:800327A4
WeaponStats skorpion_stats = {
2.0, 11.5, -25.0, -27.5, 3.0, 5.0, 10.0, 1, 0x14, 0x03, 0x00, 1, 0xB, 0x6A, &cartridge_header, 0.60000002, 15.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 6, 0.0, 0.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x170B79
};
#endif
2.0, 11.5, -25.0, -27.5, 3.0, 5.0, 10.0, AMMO_9MM, 0x14, 0x03, 0x00, 1, RATE_SKORPION, 0x6A, &cartridge_header, 0.60000002, 15.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 6, 0.0, 0.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
#if defined(VERSION_EU)
WeaponStats ak47_stats = {
2.0, 11.0, -19.0, -16.0, 3.0, 3.0, 8.5, 3, 0x1E, 0x03, 0x00, 1, 3, 0x6D, &cartrifle_header, 1.0, 10.0, 30.0, SCALEVAL_AK47, 0.91000003, 1.0, 0x40C0006,4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 3.0, 0x171A7C
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#else
//D:80032814
WeaponStats ak47_stats = {
2.0, 11.0, -19.0, -16.0, 3.0, 3.0, 8.5, 3, 0x1E, 0x03, 0x00, 1, 4, 0x6D, &cartrifle_header, 1.0, 10.0, 30.0, SCALEVAL_AK47, 0.91000003, 1.0, 0x40C0006,4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 3.0, 0x171A7C
2.0, 11.0, -19.0, -16.0, 3.0, 3.0, 8.5, AMMO_RIFLE, 0x1E, 0x03, 0x00, 1, RATE_AK47, 0x6D, &cartrifle_header, 1.0, 10.0, 30.0, SCALEVAL_AK47, 0.91000003, 1.0, 0x40C0006,4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 3.0,
WEAPONSTATBITFLAG_BURST_FIRE | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#endif
#if defined(VERSION_EU)
WeaponStats uzi_stats = {
3.0, 11.0, -24.5, -37.0, 3.0, 8.0, 15.0, 1, 0x20, 0x02, 0x00, 1, 3, 0x6E, &cartridge_header, 1.0, 9.0, 0.0, SCALEVAL_UZI, 0.88, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171B79
};
#else
//D:80032884
WeaponStats uzi_stats = {
3.0, 11.0, -24.5, -37.0, 3.0, 8.0, 15.0, 1, 0x20, 0x02, 0x00, 1, 4, 0x6E, &cartridge_header, 1.0, 9.0, 0.0, SCALEVAL_UZI, 0.88, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171B79
3.0, 11.0, -24.5, -37.0, 3.0, 8.0, 15.0, AMMO_9MM, 0x20, 0x02, 0x00, 1, RATE_UZI, 0x6E, &cartridge_header, 1.0, 9.0, 0.0, SCALEVAL_UZI, 0.88, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#endif
#if defined(VERSION_EU)
WeaponStats mp5k_stats = {
2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 3, 0x75, &cartridge_header, 1.0, 7.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79
};
#else
//D:800328F4
WeaponStats mp5k_stats = {
2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x75, &cartridge_header, 1.0, 7.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79
2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, AMMO_9MM, 0x1E, 0x03, 0x00, 1, RATE_MP5k, 0x75, &cartridge_header, 1.0, 7.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6120006, 4.0, 3.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#endif
#if defined(VERSION_EU)
WeaponStats mp5ksil_stats = {
2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 3, 0x2E, &cartridge_header, 1.0, 9.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6120006, 3.5, 2.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x171A79
};
#else
//D:80032964
WeaponStats mp5ksil_stats = {
2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, 1, 0x1E, 0x03, 0x00, 1, 4, 0x2E, &cartridge_header, 1.0, 9.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6120006, 3.5, 2.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x171A79
2.0, 11.0, -26.4, -35.0, 3.0, 8.0, 15.0, AMMO_9MM, 0x1E, 0x03, 0x00, 1, RATE_MP5k, 0x2E, &cartridge_header, 1.0, 9.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6120006, 3.5, 2.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#endif
#if defined(VERSION_EU)
WeaponStats spectre_stats = {
2.0, 11.0, -21.9, -35.0, 3.0, 8.0, 15.0, 1, 0x32, 0x03, 0x00, 1, 3, 0x6D, &cartridge_header, 1.4, 12.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x40C0006, 4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79
};
#else
//D:800329D4
WeaponStats spectre_stats = {
2.0, 11.0, -21.9, -35.0, 3.0, 8.0, 15.0, 1, 0x32, 0x03, 0x00, 1, 4, 0x6D, &cartridge_header, 1.4, 12.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x40C0006, 4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x171A79
2.0, 11.0, -21.9, -35.0, 3.0, 8.0, 15.0, AMMO_9MM, 0x32, 0x03, 0x00, 1, RATE_SPECTRE, 0x6D, &cartridge_header, 1.4, 12.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x40C0006, 4.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#endif
#if defined(VERSION_EU)
WeaponStats m16_stats = {
6.0, 11.0, -19.200001, -21.5, 3.0, 3.0, 8.5, 3, 0x1E, 0x02, 0x00, 2, 4, 0x71, &cartblue_header, 1.4, 6.0, 20.0, SCALEVAL_AK47, 0.91000003, 0.5, 0x6120208, 5.0, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A7C
};
#else
//D:80032A44
WeaponStats m16_stats = {
6.0, 11.0, -19.200001, -21.5, 3.0, 3.0, 8.5, 3, 0x1E, 0x02, 0x00, 2, 5, 0x71, &cartblue_header, 1.4, 6.0, 20.0, SCALEVAL_AK47, 0.91000003, 0.5, 0x6120208, 5.0, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A7C
6.0, 11.0, -19.200001, -21.5, 3.0, 3.0, 8.5, AMMO_RIFLE, 0x1E, 0x02, 0x00, 2, RATE_M16, 0x71, &cartblue_header, 1.4, 6.0, 20.0, SCALEVAL_AK47, 0.91000003, 0.5, 0x6120208, 5.0, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0,
WEAPONSTATBITFLAG_BURST_FIRE | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
#endif
//D:80032AB4
WeaponStats fnp90_stats = {
4.0, 12.5, -25.299999, -32.5, 3.0, 8.0, 15.0, 1, 0x50, 0x02, 0x00, 3, 2, 0xFD, &cartridge_header, 1.8, 6.0, 0.0, SCALEVAL_P90, 0.87, 1.0, 0x4080003, 3.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0, 0x171A78
4.0, 12.5, -25.299999, -32.5, 3.0, 8.0, 15.0, AMMO_9MM, 0x50, 0x02, 0x00, 3, 2, 0xFD, &cartridge_header, 1.8, 6.0, 0.0, SCALEVAL_P90, 0.87, 1.0, 0x4080003, 3.5, 2.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 4.0,
WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_FIRST_SHOT_ACCURACY |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032B24
WeaponStats shotgun_stats = {
4.0, 11.0, -20.6, -19.5, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x79, &cartshell_header, 0.40000001, 20.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 9.0, 10.0, 0.0, 2.0, 25.0, 4.0, 2.0, 4.0, 5.0, 0x170AF9
4.0, 11.0, -20.6, -19.5, 3.0, 3.0, 8.5, AMMO_SHOTGUN, 5, 0xFF, 0x0A, 1, 0, 0x79, &cartshell_header, 0.40000001, 20.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 9.0, 10.0, 0.0, 2.0, 25.0, 4.0, 2.0, 4.0, 5.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032B94
WeaponStats autoshot_stats = {
4.0, 12.0, -24.1, -19.0, 3.0, 3.0, 8.5, 4, 5, 0xFF, 0x0A, 1, 0, 0x74, NULL, 0.60000002, 16.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 4.5, 3.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 5.0, 0x170AF9
4.0, 12.0, -24.1, -19.0, 3.0, 3.0, 8.5, AMMO_SHOTGUN, 5, 0xFF, 0x0A, 1, 0, 0x74, NULL, 0.60000002, 16.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0x812080C, 4.5, 3.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 5.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032C04
WeaponStats sniperrifle_stats = {
6.0, 11.0, -20.700001, -31.5, 3.0, 3.0, 8.5, 3, 8, 0xFF, 0x10, 1, 0, 0x2E, &cartblue_header, 1.0, 0.0, 15.0, SCALEVAL_AK47, 0.91000003, 0.25, 0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0, 0x178A70
6.0, 11.0, -20.700001, -31.5, 3.0, 3.0, 8.5, AMMO_RIFLE, 8, 0xFF, 0x10, 1, 0, 0x2E, &cartblue_header, 1.0, 0.0, 15.0, SCALEVAL_AK47, 0.91000003, 0.25, 0, 0.0, 0.0, 0.0, 0.0, 7.0, 1.2, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_DISABLE_CROUCH |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032C74
WeaponStats ruger_stats = {
2.0, 12.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xC, 6, 0xFF, 0x14, 0xA, 0, 0x6F, NULL, 2.0, 0.0, 0.0, SCALEVAL_RUGER, 0.86000001, 1.0, 0x81000FF, 12.0, 35.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 6.0, 0x170FB9
2.0, 12.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_MAGNUM, 6, 0xFF, 0x14, 0xA, 0, 0x6F, NULL, 2.0, 0.0, 0.0, SCALEVAL_RUGER, 0.86000001, 1.0, 0x81000FF, 12.0, 35.0, 0.0, 2.0, 20.0, 3.0, 2.0, 4.0, 6.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032CE4
WeaponStats goldengun_stats = {
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 0xD, 1, 0xFF, 0x00, 1, 0, 0x75, NULL, 100.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x40800FF, 5.0, 10.0, 0.0, 1.0, 9.0, 1.5, 2.0, 4.0, 0.0, 0x170F99
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_GGUN, 1, 0xFF, 0x00, 1, 0, 0x75, NULL, 100.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x40800FF, 5.0, 10.0, 0.0, 1.0, 9.0, 1.5, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032D54
WeaponStats silverwppk_stats = {
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 0xA, 0, 0x6B, &cartridge_header, 2.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_9MM, 7, 0xFF, 0x10, 0xA, 0, 0x6B, &cartridge_header, 2.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300, 3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032DC4
WeaponStats goldwppk_stats = {
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, 1, 7, 0xFF, 0x10, 1, 0, 0x6B, &cartridge_header, 100.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300,3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0, 0x170FB9
1.0, 11.0, -20.799999, -33.5, 3.0, 3.0, 8.5, AMMO_9MM, 7, 0xFF, 0x10, 1, 0, 0x6B, &cartridge_header, 100.0, 1.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0x4080300,3.0, 10.0, 29.999998, 1.0, 12.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032E34
WeaponStats laser_stats = {
1.0, 11.0, -19.5, -28.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x06, 2, 0, 0xE4, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6000606, 0.0, 0.0, 0.0, 2.0, 16.0, 2.0, 2.0, 4.0, 2.0, 0x170B99
1.0, 11.0, -19.5, -28.0, 3.0, 3.0, 8.5, AMMO_NONE, 0, 0xFF, 0x06, 2, 0, 0xE4, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0x6000606, 0.0, 0.0, 0.0, 2.0, 16.0, 2.0, 2.0, 4.0, 2.0,
WEAPONSTATBITFLAG_00000001 | WEAPONSTATBITFLAG_HAS_AUTO_AIM |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032EA4
WeaponStats watchlaser_stats = {
1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0x18, 0x3E8, 0xFF, 0x00, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0xFF, 0.0, 0.0, 0.0, 1.0, 4.0, 0.2, 1.0, 4.0, 0.0, 0x600F91
1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, AMMO_WATCH_LASER, 0x3E8, 0xFF, 0x00, 1, 0, 0, NULL, 2.0, 0.0, 0.0, SCALEVAL_SKORPION, 0.88999999, 1.0, 0xFF, 0.0, 0.0, 0.0, 1.0, 4.0, 0.2, 1.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_AMMO_CLIP_LIMIT | WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80032F14
WeaponStats grenadelaunch_stats = {
1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0xB, 6, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0x120AF1
1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, AMMO_GRENADEROUND, 6, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032F84
WeaponStats rocketlaunch_stats = {
1.0, 10.5, -22.200001, -14.5, 3.0, 3.0, 8.5, 6, 1, 0xFF, 0x14, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 0.5, 0xFF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0,2.0, 4.0, 0.0, 0x120FF1
1.0, 10.5, -22.200001, -14.5, 3.0, 3.0, 8.5, AMMO_ROCKETS, 1, 0xFF, 0x14, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 0.5, 0xFF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0,2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_CAN_DUAL_WIELD
};
//D:80032FF4
WeaponStats grenade_stats = {
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 5, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0, 0.0, 0x422982
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, AMMO_GRENADE, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033064
WeaponStats timedmine_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 9, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_TIMEDMINE, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:800330D4
WeaponStats proximitymine_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 8, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_PROXMINE, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033144
WeaponStats remotemine_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 7, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0, 0x422D82
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_REMOTEMINE, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0, 4.0,0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:800331B4
WeaponStats trigger_stats = {
1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0,0.0, 0x890
1.0, -2.0, -21.5, -19.0, 3.0, 3.0, 8.5, AMMO_NONE, 0, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0,0.0,
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_SHOW_FIRST_PERSON
};
//D:80033224
WeaponStats taser_stats = {
1.0, 16.0, -16.700001, -22.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0x64, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 2.0, 10.0, 2.0, 2.0, 4.0, 0.0, 0x620F70
1.0, 16.0, -16.700001, -22.0, 3.0, 3.0, 8.5, AMMO_NONE, 0, 0xFF, 0x00, 1, 0, 0x64, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 2.0, 10.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_AMMO_CLIP_LIMIT | WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033294
WeaponStats tank_stats = {
1.0, 8.0, -19.200001, -11.5, 3.0, 3.0, 8.5, 0x1C, 1, 0xFF, 0x14, 1, 0, 0xB, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x780078FF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0, 2.0, 4.0, 0.0, 0x76781
1.0, 8.0, -19.200001, -11.5, 3.0, 3.0, 8.5, AMMO_TANK, 1, 0xFF, 0x14, 1, 0, 0xB, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x780078FF, 0.0, 0.0, 0.0, 2.0, 25.0, 10.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_MIRROR_DUAL |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND | WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_MENU |
WEAPONSTATBITFLAG_PLAYER_STAT_HIT | WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO
};
//D:80033304
WeaponStats bombcase_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x10, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x402D82
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_BOMBCASE, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033374
WeaponStats plastique_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x17, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0, 0x422D82
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_PLASTIQUE, 1, 0xFF, 0x06, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 2.0,4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_USE_HOLD_TIME |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:800333E4
WeaponStats flarepistol_stats = {
1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x11, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1
1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, AMMO_FLARE, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON
};
//D:80033454
WeaponStats pitongun_stats = {
1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, 0x12, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0, 0xAF1
1.0, 9.5, -18.0, -18.5, 3.0, 3.0, 8.5, AMMO_PITON, 1, 0xFF, 0x14, 1, 0, 0xC, NULL, 1.0, 0.0, 0.0, SCALEVAL_LAUNCHER, 0.92000002, 1.0, 0x81000FF, 10.5, 15.0, 0.0, 2.0, 20.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000020 | WEAPONSTATBITFLAG_00000040 | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_HOLD_AS_GUN | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON
};
//D:800334C4
WeaponStats bug_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x14, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_BUG, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033534
WeaponStats microcamera_stats = {
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, 0x15, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x402982
1.0, 11.0, -21.0, -37.0, 3.0, 3.0, 8.5, AMMO_MICRO_CAMERA, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:800335A4
WeaponStats watchmagnetattract_stats = {
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x19, 0xA, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 0.0, 0x602980
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, AMMO_WATCH_MAGNET, 0xA, 0xFF, 0xFF, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 4.0, 0.0,
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_AMMO_CLIP_LIMIT | WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033614
WeaponStats goldeneyekey_stats = {
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x16, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x482982
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, AMMO_GEKEY, 1, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_HIDE_AMMO_DISPLAY |
WEAPONSTATBITFLAG_NO_CLIP_RELOADS
};
//D:80033684
WeaponStats camera_stats = {
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0xFF, 1, 0, 0xF4, NULL, 1.0, 0.0, 20.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0xA990
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, AMMO_NONE, 0, 0xFF, 0xFF, 1, 0, 0xF4, NULL, 1.0, 0.0, 20.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0,
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND | WEAPONSTATBITFLAG_DISABLE_CROUCH
};
//D:800336F4
WeaponStats Csuit_lf_handz_stats = {
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, AMMO_NONE, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY |
WEAPONSTATBITFLAG_ONLY_1_HANDED
};
//D:80033764
WeaponStats joypad_stats = {
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, AMMO_NONE, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY |
WEAPONSTATBITFLAG_ONLY_1_HANDED
};
//ITEM_NULL86?
//D:800337D4
WeaponStats null1_stats = {
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 6, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, AMMO_ROCKETS, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY |
WEAPONSTATBITFLAG_ONLY_1_HANDED
};
//ITEM_NULL87?
//D:80033844
WeaponStats null2_stats = {
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, 0xB, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x110
1.0, 0.0, 0.0, 0.0, 3.0, 3.0, 8.5, AMMO_GRENADEROUND, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL1, 0.89999998, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_CLICKY |
WEAPONSTATBITFLAG_ONLY_1_HANDED
};
//D:800338B4
WeaponStats token_stats = {
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, 0x1D, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0, 0x82182
1.0, 11.0, -41.799999, -33.0, 3.0, 3.0, 8.5, AMMO_TOKEN, 0, 0xFF, 0x00, 1, 0, 0, NULL, 1.0, 0.0, 0.0, SCALEVAL_KNIFE, 0.85000002, 1.0, 0xFF, 0.0, 0.0, 0.0, 0.0, 0.0, 2.0, 2.0, 4.0, 0.0,
WEAPONSTATBITFLAG_SINGLE_USE_RELOAD |
WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED |
WEAPONSTATBITFLAG_HIDE_FIRST_PERSON_HAND |
WEAPONSTATBITFLAG_HIDE_AMMO_DISPLAY
};
+1 -1
View File
@@ -1,2 +1,2 @@
/*NAME, NOMODEL, STATS, UPPERTEXTID, LOWERTEXTID, POSX, POSY, POSZ, XROT, YROT, WOCTEXT, EQUIPTEXT, EQUIPX, EQUIPY, EQUIPZ*/
GUNFILERECORD(knife, 0, GUNSTATS(knife), TEXT(LGUN, 0x83), TEXT(LGUN, 0x46), 200.0, 39.0, 1327.0, 0.0, 0.0, TEXT(LGUN, 0x40), TEXT(LGUN, 0xA8), 38.0, 118.0, 800.0)
GUNFILERECORD(knife, 0, GUNSTATS(knife), TEXT(LGUN, GUN_STR_83), TEXT(LGUN, GUN_STR_46), 200.0, 39.0, 1327.0, 0.0, 0.0, TEXT(LGUN, GUN_STR_40), TEXT(LGUN, GUN_STR_A8), 38.0, 118.0, 800.0)
+5 -2
View File
@@ -2,7 +2,7 @@ WeaponStats knife_stats = {
1.0, //MuzzleFlashExtension
14.0, -24.799999, -34.0, //PosXYZ
3.0, 3.0, 8.5, //PlayXYZ
0, 0, //ammotype magsize
AMMO_NONE, 0, //ammotype magsize
0xFF, 0x06, //AutomaticFiringRate SingleFiringRate
1, //ObjectsShootThrough
0, 0, //SoundTriggerRate Sound
@@ -23,5 +23,8 @@ WeaponStats knife_stats = {
2.0, //field_60
4.0, //field_64
0.0, //ForceOfImpact
0x160D91 //BitFlags
WEAPONSTATBITFLAG_00000001 |
WEAPONSTATBITFLAG_CLICKY | WEAPONSTATBITFLAG_00000080 |
WEAPONSTATBITFLAG_ONLY_1_HANDED | WEAPONSTATBITFLAG_MIRROR_DUAL | WEAPONSTATBITFLAG_SHOW_FIRST_PERSON |
WEAPONSTATBITFLAG_USE_HOLD_TIME | WEAPONSTATBITFLAG_HAS_AMMO | WEAPONSTATBITFLAG_CAN_DUAL_WIELD //BitFlags
};
+3 -3
View File
@@ -93,12 +93,12 @@ bg_file_seg bg_imp_all_p_seg, bg_imp_all_p
bg_file_seg bg_ash_all_p_seg, bg_ash_all_p
bg_file_seg bg_sho_all_p_seg, bg_sho_all_p
bg_file_seg bg_ame_all_p_seg, bg_ame_all_p
bg_file_seg bg_oat_all_p_seg, bg_oat_all_p
bg_file_seg bg_rit_all_p_seg, bg_rit_all_p
bg_file_seg bg_len_all_p_seg, bg_len_all_p
bg_file_seg bg_oat_all_p_seg, bg_oat_all_p
bg_file_seg bg_lip_all_p_seg, bg_lip_all_p
bg_file_seg bg_lee_all_p_seg, bg_lee_all_p
bg_file_seg bg_ear_all_p_seg, bg_ear_all_p
bg_file_seg bg_lip_all_p_seg, bg_lip_all_p
bg_file_seg bg_len_all_p_seg, bg_len_all_p
bg_file_seg bg_pam_all_p_seg, bg_pam_all_p
bg_file_seg bg_wax_all_p_seg, bg_wax_all_p
+60 -107
View File
@@ -1,132 +1,85 @@
#include <bondtypes.h>
#define VERTEXGROUPCOUNT0 = 12
#define COLLISIONVERTEXCOUNT0 = 12
ModelFileTextures proptextures[2] =
#define TEXTURECOUNT 2
#define VERTEXGROUPCOUNT0 12
#define COLLISIONVERTEXCOUNT0 12
//base address is 0x05000000
ModelFileTextures proptextures[TEXTURECOUNT] =
{
{0x1D, 32, 32, 0x06, 0x0, 0x02, 0x0, 0x0},
{0x1F, 32, 32, 0x06, 0x0, 0x02, 0x0, 0x0}
{_image29_ID, 32, 32, 0x06, 0x0, 0x02, 0x0, 0x0},
{_image31_ID, 32, 32, 0x06, 0x0, 0x02, 0x0, 0x0}
};
// {opcode, data, parent, next, prev, child}
ModelNode ModelNode_0x018 = { MODELNODE_OPCODE_GROUP, GroupRecord_0x060, 0x0, 0x0, 0x0, ModelNode_0x030};
ModelNode ModelNode_0x030 = { MODELNODE_OPCODE_BBOX, BoundingBoxRecord_0x07c, ModelNode_0x018, 0x0, 0x0, ModelNode_0x048};
ModelNode ModelNode_0x048 = { MODELNODE_OPCODE_DLCOLLISION, DLCollisionRecord_0x230, ModelNode_0x030, 0x0, 0x0, 0x0};
ModelRoData_GroupRecord GroupRecord_0x060 =
{
{962.5, 2015.0167, -36.117146}, //origin {x,y,z}
0x0, //JointID
0x0, //MatrixID0
0xFFFF, //MatrixID1
0xFFFF, //MatrixID2
0x0, //ChildGroup
304.6402 //BoundingVolumeRadius
};
ModelNode ModelNode_05000018 = {0x2, ModelNode_GroupRecord_05000060, 0x0, 0x0, 0x0, ModelNode_05000030};
ModelNode ModelNode_05000030 = {0xA, ModelNode_BoundingBoxRecord_0500007c, ModelNode_05000018, 0x0, 0x0, ModelNode_05000048};
ModelNode ModelNode_05000048 = {0x18, ModelNode_DisplayList_CollisionRecord_05000230, ModelNode_05000030, 0x0, 0x0, 0x0};
ModelRoData_GroupRecord ModelNode_GroupRecord_05000060 =
{
{962.5, 2015.0167, -36.117146},
0x0,
0x0,
0xFFFF,
0xFFFF,
0x0,
304.6402
};
ModelRoData_BoundingBoxRecord ModelNode_BoundingBoxRecord_0500007c =
ModelRoData_BoundingBoxRecord BoundingBoxRecord_0x07c =
{
0x1,
{-146.0, 146.0, -265.0, 265.0, -36.0, 36.0}
};
Vertex Vertex_ARRAY_05000098[VERTEXGROUPCOUNT0] =
{
{
{-87, -207, 36}, 0x0, 0xCC, 0x9B, {0xFE, 0xFE, 0xFE, 0xFF}
},
{
{88, -207, 36}, 0x0, 0x346, 0x9B, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{88, 55, 36}, 0x0, 0x346, 0x37E, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{-87, 55, 36}, 0x0, 0xCC, 0x37E, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{146, -265, -36}, 0x0, 0x419, 0x8, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{146, 143, -36}, 0x0, 0x419, 0x412, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{-146, -265, -36}, 0x0, -7, 0x8, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{-146, 143, -36}, 0x0, -7, 0x412, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{146, 113, 2}, 0x0, 0x800, 0x0, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{146, 265, 2}, 0x0, 0x800, 0x400, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{-146, 265, 2}, 0x0, 0x0, 0x400, {0xFE, 0xFE, 0xFE, 0xFF)
},
{
{-146, 113, 2}, 0x0, 0x0, 0x0, {0xFE, 0xFE, 0xFE, 0xFF)
},
Vertex Vertex_ARRAY_0x098[VERTEXGROUPCOUNT0] =
{ //{ { x, y, z}, index, s, t, { r, g, b, a} }
{ { -87, -207, 36}, 0x0, 0xCC, 0x9B, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { 88, -207, 36}, 0x0, 0x346, 0x9B, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { 88, 55, 36}, 0x0, 0x346, 0x37E, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { -87, 55, 36}, 0x0, 0xCC, 0x37E, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { 146, -265, -36}, 0x0, 0x419, 0x8, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { 146, 143, -36}, 0x0, 0x419, 0x412, {0xFE, 0xFE, 0xFE, 0xFF} },
{ {-146, -265, -36}, 0x0, -7, 0x8, {0xFE, 0xFE, 0xFE, 0xFF} },
{ {-146, 143, -36}, 0x0, -7, 0x412, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { 146, 113, 2}, 0x0, 0x800, 0x0, {0xFE, 0xFE, 0xFE, 0xFF} },
{ { 146, 265, 2}, 0x0, 0x800, 0x400, {0xFE, 0xFE, 0xFE, 0xFF} },
{ {-146, 265, 2}, 0x0, 0x0, 0x400, {0xFE, 0xFE, 0xFE, 0xFF} },
{ {-146, 113, 2}, 0x0, 0x0, 0x0, {0xFE, 0xFE, 0xFE, 0xFF} },
};
Vertex Collision_Vertex_ARRAY_05000158[COLLISIONVERTEXCOUNT0] =
{
{
{-87, -207, 36}, 0x0, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{88, -207, 36}, 0x1, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{88, 85, 36}, 0x2, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{-87, 85, 36}, 0x3, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{146, -265, -36}, 0x4, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{146, 143, -36}, 0x5, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{-146, -265, -36}, 0x6, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{-146, 143, -36}, 0x7, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{146, 113, 2}, 0x8, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{146, 265, 2}, 0x9, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{-146, 265, 2}, 0xA, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
{
{-146, 113, 2}, 0xB, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0)
},
Vertex Collision_Vertex_ARRAY_0x158[COLLISIONVERTEXCOUNT0] =
{ //{ { x, y, z}, index, s, t, { r, g, b, a} }
{ { -87, -207, 36}, 0x0, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { 88, -207, 36}, 0x1, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { 88, 85, 36}, 0x2, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { -87, 85, 36}, 0x3, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { 146, -265, -36}, 0x4, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { 146, 143, -36}, 0x5, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ {-146, -265, -36}, 0x6, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ {-146, 143, -36}, 0x7, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { 146, 113, 2}, 0x8, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ { 146, 265, 2}, 0x9, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ {-146, 265, 2}, 0xA, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
{ {-146, 113, 2}, 0xB, 0x0, 0x0, {0xFF, 0xFF, 0x0, 0x0} },
};
s16 POINT_USAGE_ARRAY_05000218[VERTEXGROUPCOUNT0] =
s16 POINT_USAGE_ARRAY_0x218[VERTEXGROUPCOUNT0] =
{
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
};
ModelRoData_DisplayList_CollisionRecord ModelNode_DisplayList_CollisionRecord_05000230 =
ModelRoData_DisplayList_CollisionRecord DLCollisionRecord_0x230 =
{
GFX_ARRAY_PRIMARY_05000250,
GFX_ARRAY_SECONDARY_050002B0,
Vertex_ARRAY_05000098, VERTEXGROUPCOUNT0,
COLLISIONVERTEXCOUNT0, Collision_Vertex_ARRAY_05000158,
POINT_USAGE_ARRAY_05000218,
GFX_ARRAY_PRIMARY_0x250,
GFX_ARRAY_SECONDARY_0x2B0,
Vertex_ARRAY_0x098, VERTEXGROUPCOUNT0,
COLLISIONVERTEXCOUNT0, Collision_Vertex_ARRAY_0x158,
POINT_USAGE_ARRAY_0x218,
0x4, 0x0, 0x0, 0x0
};
Gfx GFX_ARRAY_PRIMARY_05000250 =
Gfx GFX_ARRAY_PRIMARY_0x250 =
{
gsDPSetTextureLOD(G_TL_LOD),
gsSPTexture(0xFFFF, 0xFFFF, 6, 0, true),
@@ -138,7 +91,7 @@ Gfx GFX_ARRAY_PRIMARY_05000250 =
gsSPEndDisplayList(),
};
Gfx GFX_ARRAY_SECONDARY_050002B0 =
Gfx GFX_ARRAY_SECONDARY_0x2B0 =
{
gsDPLoadSync(),
gsDPSetTextureLOD(G_TL_LOD),
+312
View File
@@ -0,0 +1,312 @@
#include <bondtypes.h>
#define TEXTURECOUNT 6
#define VERTEXGROUPCOUNT0 16
#define COLLISIONVERTEXCOUNT0 13
#define VERTEXGROUPCOUNT1 4
#define COLLISIONVERTEXCOUNT1 4
#define VERTEXGROUPCOUNT2 24
#define COLLISIONVERTEXCOUNT2 12
ModelNode* ModelNode1 = ModelNodeGroup_1;
ModelNode* ModelNode2 = ModelNodeDL_Lens;
ModelNode* ModelNode3 = ModelNodeBB_Lens;
ModelNode* ModelNode4 = ModelNodeSwitch_0;
ModelFileTextures proptextures[TEXTURECOUNT] =
{
{_image247_ID, 0x20, 0x40, 0x07, 0x00, 0x01, 0x00, 0x0000},
{_image265_ID, 0x40, 0x20, 0x07, 0x00, 0x01, 0x00, 0x0000},
{_image511_ID, 0x80, 0x20, 0x07, 0x00, 0x00, 0x00, 0x0000},
{_image856_ID, 0x40, 0x40, 0x07, 0x00, 0x00, 0x00, 0x0000},
{IMAGE_GLASS3, 0x36, 0x36, 0x03, 0x00, 0x01, 0x02, 0x0200},
{_image1514_ID, 0x01, 0x01, 0x01, 0x00, 0x02, 0x00, 0x0000},
};
// { opcode, data, parent, next, prev, child}
ModelNode ModelNodeGroup_0 = { MODELNODE_OPCODE_GROUP, GroupRecord_0x118, 0x0, 0x0, 0x0, ModelNodeBB_0};
ModelNode ModelNodeBB_0 = { MODELNODE_OPCODE_BBOX, BBoxRecord_0x134, ModelNodeGroup_0, 0x0, 0x0, ModelNodeDL_Mount};
ModelNode ModelNodeDL_Mount = { MODELNODE_OPCODE_DLCOLLISION, DL_Mount, ModelNodeBB_0, ModelNodeGroup_1, 0x0, 0x0};
ModelNode ModelNodeGroup_1 = { MODELNODE_OPCODE_GROUP, GroupRecord_0x360, ModelNodeBB_0, 0x0, ModelNodeDL_Mount, ModelNodeSwitch_0};
ModelNode ModelNodeSwitch_0 = { MODELNODE_OPCODE_SWITCH, Switch_0x37c, ModelNodeGroup_1, ModelNodeDL_Housing, 0x0, ModelNodeBB_Lens};
ModelNode ModelNodeBB_Lens = { MODELNODE_OPCODE_BBOX, BBox_Lens, ModelNodeSwitch_0, 0x0, 0x0, ModelNodeDL_Lens};
ModelNode ModelNodeDL_Lens = { MODELNODE_OPCODE_DLCOLLISION, DL_Lens, ModelNodeBB_Lens, 0x0, 0x0, 0x0};
ModelNode ModelNodeDL_Housing = { MODELNODE_OPCODE_DLCOLLISION, DL_Housing, ModelNodeGroup_1, 0x0, ModelNodeSwitch_0, 0x0};
ModelRoData_GroupRecord GroupRecord_0x118 =
{
{0.005449, -773.8468, -200.64182},
0x0,
0x0,
0xFFFF,
0xFFFF,
ModelNodeGroup_1,
291.0673
};
ModelRoData_BoundingBoxRecord BBoxRecord_0x134 =
{
0x1,
{-482.0, 482.0, -119.0, 552.0, -247.0, 514.0}
};
Vertex Vertex_ARRAY_0x150[VERTEXGROUPCOUNT0] =
{
{{ 98, -119, -247}, 0x0000, 0x0002, 0x01f2, {0xc6, 0xc6, 0xc6, 0xff} },
{{ 0, 16, 84}, 0x0000, 0x03f6, 0x038b, {0x72, 0x72, 0x72, 0xff} },
{{ -98, -119, -247}, 0x0000, 0x0006, 0x07e3, {0x72, 0x72, 0x72, 0xff} },
{{ 0, 16, 84}, 0x0000, 0x1000, 0x0000, {0xff, 0xff, 0xff, 0xff} },
{{ -98, 16, -247}, 0x0000, 0x0000, 0x0000, {0xc3, 0xc3, 0xc3, 0xff} },
{{ -98, -119, -247}, 0x0000, 0x0000, 0xf9c0, {0xc0, 0xc0, 0xc0, 0xff} },
{{ 98, -119, -247}, 0x0000, 0x0000, 0x0640, {0xc6, 0xc6, 0xc6, 0xff} },
{{ 98, 16, -247}, 0x0000, 0x0000, 0x0000, {0xff, 0xff, 0xff, 0xff} },
{{ 0, 16, 59}, 0x0000, 0x0000, 0x0000, {0xff, 0xff, 0xff, 0xff} },
{{ 0, 16, 10}, 0x0000, 0x0800, 0x0000, {0xfe, 0xfe, 0xfe, 0xff} },
{{ 0, 77, 10}, 0x0000, 0x0800, 0x0a00, {0xff, 0xff, 0xff, 0xff} },
{{ 0, 77, 59}, 0x0000, 0x0000, 0x0a00, {0xff, 0xff, 0xff, 0xff} },
{{ -25, 16, 35}, 0x0000, 0x0000, 0x0000, {0xff, 0xff, 0xff, 0xff} },
{{ 24, 16, 35}, 0x0000, 0x0800, 0x0000, {0xff, 0xff, 0xff, 0xff} },
{{ 24, 77, 35}, 0x0000, 0x0800, 0x0a00, {0xff, 0xff, 0xff, 0xff} },
{{ -25, 77, 35}, 0x0000, 0x0000, 0x0a00, {0xff, 0xff, 0xff, 0xff} }
};
Vertex Collision_Vertex_ARRAY_0x250[COLLISIONVERTEXCOUNT0] =
{
{{ 98, -119, -247}, 0x0000, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 0, 16, 84}, 0x0001, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -98, -119, -247}, 0x0002, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -98, 16, -247}, 0x0004, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 98, 16, -247}, 0x0007, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 0, 16, 59}, 0x0008, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 0, 16, 10}, 0x0009, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 0, 77, 10}, 0x000a, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 0, 77, 59}, 0x000b, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -25, 16, 35}, 0x000c, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 24, 16, 35}, 0x000d, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 24, 77, 35}, 0x000e, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -25, 77, 35}, 0x000f, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} }
};
s16 POINT_USAGE_ARRAY_0x320[] =
{
0x6, 0x3, 0x5, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
};
ModelRoData_DisplayList_CollisionRecord DL_Mount =
{
GFX_ARRAY_PRIMARY_0x6d8,
GFX_ARRAY_SECONDARY_0x738,
Vertex_ARRAY_0x150,
VERTEXGROUPCOUNT0,
COLLISIONVERTEXCOUNT0,
Collision_Vertex_ARRAY,
POINT_USAGE_ARRAY_0x320,
4, 0, 0, 0
};
ModelRoData_GroupRecord GroupRecord_0x360 =
{
{0.0, 70.36643, 31.983679},
1,
1,
0xFFFF,
0xFFFF,
NULL,
481.60675
};
ModelRoData_SwitchRecord Switch_0x37c =
{
ModelNodeBB_Lens,
0
};
ModelRoData_BoundingBoxRecord BBox_Lens =
{
0x2,
{-123.0, 122.0, 6.0, 202.0, 199.0, 285.0}
};
Vertex Vertex_ARRAY_0x3a0[VERTEXGROUPCOUNT1] =
{
{{ 122, 202, 285}, 0x0000, 0x0000, 0x0000, {0x47, 0x40, 0x53, 0xff} },
{{ -123, 202, 285}, 0x0000, 0x0000, 0x0000, {0xb9, 0x40, 0x53, 0xff} },
{{ -123, 6, 199}, 0x0000, 0x0000, 0x0000, {0xb9, 0xc0, 0x53, 0xff} },
{{ 122, 6, 199}, 0x0000, 0x0000, 0x0000, {0x47, 0xc0, 0x53, 0xff} },
};
Vertex Collision_Vertex_ARRAY_0x3e0[COLLISIONVERTEXCOUNT1] =
{
{{ 122, 202, 285}, 0x0000, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 202, 285}, 0x0001, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 6, 199}, 0x0002, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 122, 6, 199}, 0x0003, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
};
s16 POINT_USAGE_ARRAY_0x420[VERTEXGROUPCOUNT1] =
{
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
};
ModelRoData_DisplayList_CollisionRecord DL_Lens =
{
GFX_ARRAY_PRIMARY_0x790,
GFX_ARRAY_SECONDARY_0x7a8,
Vertex_ARRAY_0x3a0,
VERTEXGROUPCOUNT1,
COLLISIONVERTEXCOUNT1,
Collision_Vertex_ARRAY,
POINT_USAGE_ARRAY_0x420,
4, 0, 0, 0
};
Vertex Vertex_ARRAY_0x448[VERTEXGROUPCOUNT2] =
{
{{ 122, 6, -205}, 0x0000, 0x1000, 0x07fa, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 6, -205}, 0x0000, 0x1000, 0x0000, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 202, -205}, 0x0000, 0x081c, 0x0000, {0x72, 0x72, 0x72, 0xff} },
{{ 122, 202, -205}, 0x0000, 0x081c, 0x07fa, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 6, 187}, 0x0000, 0xffa6, 0x0099, {0xe8, 0xe8, 0xe8, 0xff} },
{{ 122, 6, 187}, 0x0000, 0x0895, 0x0081, {0xff, 0xff, 0xff, 0xff} },
{{ 122, 202, 187}, 0x0000, 0x0895, 0x0780, {0xff, 0xff, 0xff, 0xff} },
{{ -123, 202, 187}, 0x0000, 0xffa6, 0x0799, {0xf0, 0xf0, 0xf0, 0xff} },
{{ 122, 6, 236}, 0x0000, 0x0000, 0x06c4, {0xff, 0xff, 0xff, 0xff} },
{{ 122, 6, -205}, 0x0000, 0x0000, 0x0000, {0xe2, 0xe2, 0xe2, 0xff} },
{{ 122, 202, -205}, 0x0000, 0x0400, 0x0000, {0xe6, 0xe6, 0xe6, 0xff} },
{{ 122, 202, 419}, 0x0000, 0x0400, 0x0996, {0xff, 0xff, 0xff, 0xff} },
{{ -123, 202, 419}, 0x0000, 0x0400, 0x0990, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 202, -205}, 0x0000, 0x0400, 0x0000, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 6, -205}, 0x0000, 0x0000, 0x0000, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 6, 236}, 0x0000, 0x0000, 0x06c0, {0x72, 0x72, 0x72, 0xff} },
{{ 122, 6, -205}, 0x0000, 0x1000, 0x07fa, {0x72, 0x72, 0x72, 0xff} },
{{ 122, 6, 236}, 0x0000, 0x0000, 0x07fa, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 6, 236}, 0x0000, 0x0000, 0x0000, {0x72, 0x72, 0x72, 0xff} },
{{ -123, 6, -205}, 0x0000, 0x1000, 0x0000, {0x72, 0x72, 0x72, 0xff} },
{{ 122, 202, 419}, 0x0000, 0x0000, 0x0000, {0x36, 0x36, 0x36, 0xff} },
{{ -123, 202, 419}, 0x0000, 0x0000, 0x0000, {0x36, 0x36, 0x36, 0xff} },
{{ -123, 202, -205}, 0x0000, 0x0000, 0x0000, {0x36, 0x36, 0x36, 0xff} },
{{ 122, 202, -205}, 0x0000, 0x0000, 0x0000, {0x36, 0x36, 0x36, 0xff} }
};
Vertex Collision_Vertex_ARRAY_0x5c8[COLLISIONVERTEXCOUNT2] =
{
{{ 122, 6, -205}, 0x0000, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 6, -205}, 0x0001, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 202, -205}, 0x0002, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 122, 202, -205}, 0x0003, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 6, 187}, 0x0004, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 122, 6, 187}, 0x0005, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 122, 202, 187}, 0x0006, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 202, 187}, 0x0007, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 122, 6, 236}, 0x0008, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ 122, 202, 419}, 0x000b, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 202, 419}, 0x000c, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} },
{{ -123, 6, 236}, 0x000f, 0x0000, 0x0000, {0xff, 0xff, 0x00, 0x00} }
};
s16 POINT_USAGE_ARRAY_0x688[VERTEXGROUPCOUNT2] =
{
0x9, 0xE, 0xD, 0xA,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0x11, 0x10, 0x17, 0x14,
0x15, 0x16, 0x13, 0x12,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF,
0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF
};
ModelRoData_DisplayList_CollisionRecord DL_Housing =
{
GFX_ARRAY_PRIMARY_0x810,
NULL,
Vertex_ARRAY_0x448,
VERTEXGROUPCOUNT2,
COLLISIONVERTEXCOUNT2,
Collision_Vertex_ARRAY,
POINT_USAGE_ARRAY_0x688,
4, 0, 0, 0
};
Gfx GFX_ARRAY_PRIMARY_0x6d8[] =
{
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_LOD),
gsSPTexture(0xFFFF, 0xFFFF, 6, G_TX_RENDERTILE, G_ON),
gsDPNoOpTag(0x000000F7),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTextureFilter(G_TF_BILERP),
gsSPMatrix(0x03000000, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW),
gsSPVertex(0x04000000, 8, 0),
gsSP1Triangle(0, 1, 2, 0),
gsDPNoOpTag(0x000001FF),
0xB1000035, 0x00007643,
gsSPEndDisplayList(),
};
Gfx GFX_ARRAY_SECONDARY_0x738[] =
{
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_LOD),
gsSPTexture(0xFFFF, 0xFFFF, 6, G_TX_RENDERTILE, G_ON),
gsDPNoOpTag(0x00000109),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTextureFilter(G_TF_BILERP),
gsSPClearGeometryMode(G_CULL_BOTH),
gsSPMatrix(0x03000000, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW),
gsSPVertex(0x04000080, 8, 0),
0xB1007632, 0x64542010,
gsSPEndDisplayList(),
};
Gfx GFX_ARRAY_PRIMARY_0x790[] =
{
gsDPPipeSync(),
gsDPSetTextureFilter(G_TF_BILERP),
gsSPEndDisplayList(),
};
Gfx GFX_ARRAY_SECONDARY_0x7a8[] =
{
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_LOD),
gsSPTexture(3456, 3456, 2, G_TX_RENDERTILE, G_ON),
gsDPNoOpTag(0x0000028E),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTextureFilter(G_TF_BILERP),
gsSPSetGeometryMode(G_LIGHTING | G_TEXTURE_GEN),
gsSPClearGeometryMode(G_CULL_BOTH),
gsSPMatrix(0x03000040, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW),
gsSPVertex(0x04000000, 4, 0),
0xB1000032, 0x00002010,
gsSPClearGeometryMode(G_LIGHTING | G_TEXTURE_GEN),
gsSPEndDisplayList(),
};
Gfx GFX_ARRAY_PRIMARY_0x810[] =
{
gsDPPipeSync(),
gsDPSetTextureLOD(G_TL_LOD),
gsSPTexture(0xFFFF, 0xFFFF, 6, G_TX_RENDERTILE, G_ON),
gsDPNoOpTag(0x000001FF),
gsDPSetTextureDetail(G_TD_CLAMP),
gsDPSetTextureFilter(G_TF_BILERP),
gsSPMatrix(0x03000040, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW),
gsSPVertex(0x04000000, 16, 0),
0xB1000032, 0x00002010,
gsDPNoOpTag(0x00000358),
0xB1000076, 0x00006454,
gsDPNoOpTag(0x000000F7),
gsSPClearGeometryMode(G_CULL_BOTH),
0xB100FEBA, 0xECDCA898,
gsDPNoOpTag(0x000001FF),
gsSPVertex(0x04000100, 8, 0),
0xB1000032, 0x00002010,
gsSPTexture(0xFFFF, 0xFFFF, 1, G_TX_RENDERTILE, G_ON),
gsDPNoOpTag(0x000005EA),
0xB1000076, 0x00006454,
gsSPEndDisplayList(),
};
@@ -0,0 +1 @@
PROPFILERECORD(cctv, 0.1)
@@ -23,7 +23,7 @@ ItemModelFileRecord PitemZ_entries[] = {
PROPFILERECORD(card_box4_lg, 0.1)
PROPFILERECORD(card_box5_lg, 0.1)
PROPFILERECORD(card_box6_lg, 0.1)
PROPFILERECORD(cctv, 0.1)
#include <assets/obseg/prop/cctv/propFileRecord.inc.c>
PROPFILERECORD(console1, 0.1)
PROPFILERECORD(console2, 0.1)
PROPFILERECORD(console3, 0.1)
+7 -6
View File
@@ -7,6 +7,7 @@
#include "ultra64.h"
#include "bondtypes.h"
#include "bondconstants.h"
#include <bondaicommands.h>
// forward declarations
@@ -2336,7 +2337,7 @@ u8 chrAI_7[] = {
IFMyAngleToBondLessThanDeg(90.000000,lbl30)
IFMyAngleToBondGreaterThanDeg(270.000000,lbl30)
//USING HUD MESSAGE Stringy = 0, ai->txt = 2057
TextPrintTop(TEXT(2,9))
TextPrintTop(TEXT(LARCH,9))
LookSurprised()
GotoNext(lbl10)
@@ -2345,13 +2346,13 @@ u8 chrAI_7[] = {
IFObjectiveBitfieldHas(0x800,lbl42)
IFChrDoesNotExist(1,lbl42)
//USING HUD MESSAGE Stringy = 0, ai->txt = 2082
TextPrintTop(TEXT(2,34))
TextPrintTop(TEXT(LARCH,34))
GotoNext(lbl43)
Label(lbl42)
//USING HUD MESSAGE Stringy = 0, ai->txt = 2058
TextPrintTop(TEXT(2,10))
TextPrintTop(TEXT(LARCH,10))
Label(lbl43)
RaiseArms()
@@ -2370,7 +2371,7 @@ u8 chrAI_7[] = {
Label(lbl27)
UnsetObjectiveBitfield(0x400)
//USING HUD MESSAGE Stringy = 0, ai->txt = 2059
TextPrintTop(TEXT(2,11))
TextPrintTop(TEXT(LARCH,11))
SetReturnAiList(1032)
SetNewRandom()
IFRandomGreaterThan(128,lbl26)
@@ -2389,7 +2390,7 @@ u8 chrAI_7[] = {
Label(lbl48)
//USING HUD MESSAGE Stringy = 0, ai->txt = 2060
TextPrintTop(TEXT(2,12))
TextPrintTop(TEXT(LARCH,12))
YIELD_FOREVER(lbl12)
@@ -2476,7 +2477,7 @@ u8 chrAI_8[] = {
Label(lbl5)
PRINT("saw bond\n")
//USING HUD MESSAGE Stringy = 0, ai->txt = 2056
TextPrintTop(TEXT(2,8))
TextPrintTop(TEXT(LARCH,8))
RaiseArms()
SetObjectiveBitfield(0x100)
SetMyFlags2(0x80)
File diff suppressed because it is too large. Load diff
+224 -224
View File
@@ -1,227 +1,227 @@
char *LgunE[] = {
" D5K\n",
" Issue\n",
" Mine\n",
" PP7\n",
" DD44\n",
" Gun\n",
" Knife\n",
" Mine\n",
" KF7\n",
" Mine\n",
" Rifle\n",
" Rocket\n",
" Shotgun\n",
"(Proximity)\n",
"(Remote)\n",
"(Timed)\n",
"(silenced)\n",
"-\n",
"Assault\n",
"Attract\n",
"Audio Tape\n",
"Automatic Shotgun\n",
"Automatic\n",
"Blackbox\n",
"Blueprints\n",
"Bolt Key\n",
"Bomb Case\n",
"Bomb Defuser\n",
"Briefcase\n",
"Bug Detector\n",
"Bug\n",
"Bungee\n",
"Camera\n",
"Circuit Board\n",
"Clipboard\n",
"Communicator\n",
"Controller\n",
"Cougar Magnum\n",
"Cougar\n",
"Credit Card\n",
"D5K (silenced)\n",
"D5K Deutsche\n",
"DD44 Dostovei\n",
"Dark Glasses\n",
"Dat Tape\n",
"Datathief\n",
"Detonator\n",
"Deutsche\n",
"Door Decoder\n",
"Door Exploder\n",
"Dostovei\n",
"Guidance Data\n",
"Flare Pistol\n",
"Gas Keyring\n",
"Geiger Counter\n",
"Gold Bar\n",
"Gold PP7\n",
"Golden Gun\n",
"GoldenEye Key\n",
"Golden\n",
"Grenade Launcher\n",
"Grenade\n",
"Hand Grenade\n",
"Heroine\n",
"Hunting Knife\n",
"Identifier\n",
"KF7 Soviet\n",
"Key Analyzer Case\n",
"Key Analyzer\n",
"Keycard\n",
"Knife\n",
"Laser\n",
"Launcher\n",
"Lectre\n",
"Lock Exploder\n",
"Magnet Repel\n",
"Magnum\n",
"Map\n",
"Micro Camera\n",
"Microcode\n",
"Microfilm\n",
"Military Laser\n",
"Military\n",
"Money\n",
"Null\n",
"PP7 (silenced)\n",
"PP7 Special Issue\n",
"PP7 Special\n",
"Phantom\n",
"Piton Gun\n",
"Plans\n",
"Plastique\n",
"Polarized Glasses\n",
"Proximity Mine\n",
"RC-P90\n",
"Red Dossier\n",
"Remote Mine\n",
"Rocket Launcher\n",
"Safecracker Case\n",
"Safecracker\n",
"Shotgun\n",
"Silver PP7\n",
"Sniper Rifle\n",
"Sniper\n",
"Soviet\n",
"Spool Tape\n",
"Spy File\n",
"Klobb\n",
"Staff List\n",
"Suit_lf_hand\n",
"Tank\n",
"Taser\n",
"Throwing Knife\n",
"Throwing\n",
"Timed Mine\n",
"Token\n",
"US AR33 Assault Rifle\n",
"US AR33\n",
"Unarmed\n",
"Video Tape\n",
"Watch Communicator\n",
"Watch Geiger Counter\n",
"Watch Identifier\n",
"Watch Laser\n",
"Watch Magnet Attract\n",
"Watch Magnet Repel\n",
"Watch Magnet\n",
"Watch\n",
"Weapon Case\n",
"Yale Key\n",
"ZMG (9mm)\n",
"\n",
"ar33\n",
"audio tape\n",
"auto shotgun\n",
"blackbox\n",
"blueprints\n",
"bolt key\n",
"bomb case\n",
"bomb defuser\n",
"briefcase\n",
"bug detector\n",
"bug\n",
"bungee\n",
"camera\n",
"circuit board\n",
"clipboard\n",
"cougar magnum\n",
"credit card\n",
"d5k (silenced)\n",
"d5k\n",
"dark glasses\n",
"dat tape\n",
"datathief\n",
"dd44\n",
"detonator\n",
"door decoder\n",
"door exploder\n",
"guidance data\n",
"flare pistol\n",
"gas keyring\n",
"gold bar\n",
"gold pp7\n",
"golden gun\n",
"goldeneye key\n",
"grenade launcher\n",
"grenade\n",
"heroine\n",
"hunting knife\n",
"key analyzer\n",
"keycard\n",
"kf7 soviet\n",
"laser\n",
"lectre\n",
"lock exploder\n",
"map\n",
"micro camera\n",
"microcode\n",
"microfilm\n",
"money\n",
"phantom\n",
"piton gun\n",
"plans\n",
"plastique\n",
"polarized glasses\n",
"pp7 (silenced)\n",
"pp7\n",
"proximity mine\n",
"rc-p90\n",
"red dossier\n",
"remote mine\n",
"rocket launcher\n",
"safecracker\n",
"shotgun\n",
"silver pp7\n",
"sniper rifle\n",
"spool tape\n",
"spy file\n",
"klobb\n",
"staff list\n",
"tank\n",
"taser\n",
"throwing knife\n",
"timed mine\n",
"token\n",
"unarmed\n",
"video tape\n",
"watch communicator\n",
"watch geiger counter\n",
"watch identifier\n",
"watch laser\n",
"watch magnet attract\n",
"watch magnet repel\n",
"weapon case\n",
"yale key\n",
"zmg (9mm)\n",
"Analyzing the GoldenEye key...\n",
"You do not have the GoldenEye\n key.\n",
"kill count",
"died once\n",
"died",
"times",
"suicide count",
0
" D5K\n", //GUN_STR_00
" Issue\n", //GUN_STR_01
" Mine\n", //GUN_STR_02
" PP7\n", //GUN_STR_03
" DD44\n", //GUN_STR_04
" Gun\n", //GUN_STR_05
" Knife\n", //GUN_STR_06
" Mine\n", //GUN_STR_07
" KF7\n", //GUN_STR_08
" Mine\n", //GUN_STR_09
" Rifle\n", //GUN_STR_0A
" Rocket\n", //GUN_STR_0B
" Shotgun\n", //GUN_STR_0C
"(Proximity)\n", //GUN_STR_0D
"(Remote)\n", //GUN_STR_0E
"(Timed)\n", //GUN_STR_0F
"(silenced)\n", //GUN_STR_10
"-\n", //GUN_STR_11
"Assault\n", //GUN_STR_12
"Attract\n", //GUN_STR_13
"Audio Tape\n", //GUN_STR_14
"Automatic Shotgun\n", //GUN_STR_15
"Automatic\n", //GUN_STR_16
"Blackbox\n", //GUN_STR_17
"Blueprints\n", //GUN_STR_18
"Bolt Key\n", //GUN_STR_19
"Bomb Case\n", //GUN_STR_1A
"Bomb Defuser\n", //GUN_STR_1B
"Briefcase\n", //GUN_STR_1C
"Bug Detector\n", //GUN_STR_1D
"Bug\n", //GUN_STR_1E
"Bungee\n", //GUN_STR_1F
"Camera\n", //GUN_STR_20
"Circuit Board\n", //GUN_STR_21
"Clipboard\n", //GUN_STR_22
"Communicator\n", //GUN_STR_23
"Controller\n", //GUN_STR_24
"Cougar Magnum\n", //GUN_STR_25
"Cougar\n", //GUN_STR_26
"Credit Card\n", //GUN_STR_27
"D5K (silenced)\n", //GUN_STR_28
"D5K Deutsche\n", //GUN_STR_29
"DD44 Dostovei\n", //GUN_STR_2A
"Dark Glasses\n", //GUN_STR_2B
"Dat Tape\n", //GUN_STR_2C
"Datathief\n", //GUN_STR_2D
"Detonator\n", //GUN_STR_2E
"Deutsche\n", //GUN_STR_2F
"Door Decoder\n", //GUN_STR_30
"Door Exploder\n", //GUN_STR_31
"Dostovei\n", //GUN_STR_32
"Guidance Data\n", //GUN_STR_33
"Flare Pistol\n", //GUN_STR_34
"Gas Keyring\n", //GUN_STR_35
"Geiger Counter\n", //GUN_STR_36
"Gold Bar\n", //GUN_STR_37
"Gold PP7\n", //GUN_STR_38
"Golden Gun\n", //GUN_STR_39
"GoldenEye Key\n", //GUN_STR_3A
"Golden\n", //GUN_STR_3B
"Grenade Launcher\n", //GUN_STR_3C
"Grenade\n", //GUN_STR_3D
"Hand Grenade\n", //GUN_STR_3E
"Heroine\n", //GUN_STR_3F
"Hunting Knife\n", //GUN_STR_40
"Identifier\n", //GUN_STR_41
"KF7 Soviet\n", //GUN_STR_42
"Key Analyzer Case\n", //GUN_STR_43
"Key Analyzer\n", //GUN_STR_44
"Keycard\n", //GUN_STR_45
"Knife\n", //GUN_STR_46
"Laser\n", //GUN_STR_47
"Launcher\n", //GUN_STR_48
"Lectre\n", //GUN_STR_49
"Lock Exploder\n", //GUN_STR_4A
"Magnet Repel\n", //GUN_STR_4B
"Magnum\n", //GUN_STR_4C
"Map\n", //GUN_STR_4D
"Micro Camera\n", //GUN_STR_4E
"Microcode\n", //GUN_STR_4F
"Microfilm\n", //GUN_STR_50
"Military Laser\n", //GUN_STR_51
"Military\n", //GUN_STR_52
"Money\n", //GUN_STR_53
"Null\n", //GUN_STR_54
"PP7 (silenced)\n", //GUN_STR_55
"PP7 Special Issue\n", //GUN_STR_56
"PP7 Special\n", //GUN_STR_57
"Phantom\n", //GUN_STR_58
"Piton Gun\n", //GUN_STR_59
"Plans\n", //GUN_STR_5A
"Plastique\n", //GUN_STR_5B
"Polarized Glasses\n", //GUN_STR_5C
"Proximity Mine\n", //GUN_STR_5D
"RC-P90\n", //GUN_STR_5E
"Red Dossier\n", //GUN_STR_5F
"Remote Mine\n", //GUN_STR_60
"Rocket Launcher\n", //GUN_STR_61
"Safecracker Case\n", //GUN_STR_62
"Safecracker\n", //GUN_STR_63
"Shotgun\n", //GUN_STR_64
"Silver PP7\n", //GUN_STR_65
"Sniper Rifle\n", //GUN_STR_66
"Sniper\n", //GUN_STR_67
"Soviet\n", //GUN_STR_68
"Spool Tape\n", //GUN_STR_69
"Spy File\n", //GUN_STR_6A
"Klobb\n", //GUN_STR_6B
"Staff List\n", //GUN_STR_6C
"Suit_lf_hand\n", //GUN_STR_6D
"Tank\n", //GUN_STR_6E
"Taser\n", //GUN_STR_6F
"Throwing Knife\n", //GUN_STR_70
"Throwing\n", //GUN_STR_71
"Timed Mine\n", //GUN_STR_72
"Token\n", //GUN_STR_73
"US AR33 Assault Rifle\n", //GUN_STR_74
"US AR33\n", //GUN_STR_75
"Unarmed\n", //GUN_STR_76
"Video Tape\n", //GUN_STR_77
"Watch Communicator\n", //GUN_STR_78
"Watch Geiger Counter\n", //GUN_STR_79
"Watch Identifier\n", //GUN_STR_7A
"Watch Laser\n", //GUN_STR_7B
"Watch Magnet Attract\n", //GUN_STR_7C
"Watch Magnet Repel\n", //GUN_STR_7D
"Watch Magnet\n", //GUN_STR_7E
"Watch\n", //GUN_STR_7F
"Weapon Case\n", //GUN_STR_80
"Yale Key\n", //GUN_STR_81
"ZMG (9mm)\n", //GUN_STR_82
"\n", //GUN_STR_83
"ar33\n", //GUN_STR_84
"audio tape\n", //GUN_STR_85
"auto shotgun\n", //GUN_STR_86
"blackbox\n", //GUN_STR_87
"blueprints\n", //GUN_STR_88
"bolt key\n", //GUN_STR_89
"bomb case\n", //GUN_STR_8A
"bomb defuser\n", //GUN_STR_8B
"briefcase\n", //GUN_STR_8C
"bug detector\n", //GUN_STR_8D
"bug\n", //GUN_STR_8E
"bungee\n", //GUN_STR_8F
"camera\n", //GUN_STR_90
"circuit board\n", //GUN_STR_91
"clipboard\n", //GUN_STR_92
"cougar magnum\n", //GUN_STR_93
"credit card\n", //GUN_STR_94
"d5k (silenced)\n", //GUN_STR_95
"d5k\n", //GUN_STR_96
"dark glasses\n", //GUN_STR_97
"dat tape\n", //GUN_STR_98
"datathief\n", //GUN_STR_99
"dd44\n", //GUN_STR_9A
"detonator\n", //GUN_STR_9B
"door decoder\n", //GUN_STR_9C
"door exploder\n", //GUN_STR_9D
"guidance data\n", //GUN_STR_9E
"flare pistol\n", //GUN_STR_9F
"gas keyring\n", //GUN_STR_A0
"gold bar\n", //GUN_STR_A1
"gold pp7\n", //GUN_STR_A2
"golden gun\n", //GUN_STR_A3
"goldeneye key\n", //GUN_STR_A4
"grenade launcher\n", //GUN_STR_A5
"grenade\n", //GUN_STR_A6
"heroine\n", //GUN_STR_A7
"hunting knife\n", //GUN_STR_A8
"key analyzer\n", //GUN_STR_A9
"keycard\n", //GUN_STR_AA
"kf7 soviet\n", //GUN_STR_AB
"laser\n", //GUN_STR_AC
"lectre\n", //GUN_STR_AD
"lock exploder\n", //GUN_STR_AE
"map\n", //GUN_STR_AF
"micro camera\n", //GUN_STR_B0
"microcode\n", //GUN_STR_B1
"microfilm\n", //GUN_STR_B2
"money\n", //GUN_STR_B3
"phantom\n", //GUN_STR_B4
"piton gun\n", //GUN_STR_B5
"plans\n", //GUN_STR_B6
"plastique\n", //GUN_STR_B7
"polarized glasses\n", //GUN_STR_B8
"pp7 (silenced)\n", //GUN_STR_B9
"pp7\n", //GUN_STR_BA
"proximity mine\n", //GUN_STR_BB
"rc-p90\n", //GUN_STR_BC
"red dossier\n", //GUN_STR_BD
"remote mine\n", //GUN_STR_BE
"rocket launcher\n", //GUN_STR_BF
"safecracker\n", //GUN_STR_C0
"shotgun\n", //GUN_STR_C1
"silver pp7\n", //GUN_STR_C2
"sniper rifle\n", //GUN_STR_C3
"spool tape\n", //GUN_STR_C4
"spy file\n", //GUN_STR_C5
"klobb\n", //GUN_STR_C6
"staff list\n", //GUN_STR_C7
"tank\n", //GUN_STR_C8
"taser\n", //GUN_STR_C9
"throwing knife\n", //GUN_STR_CA
"timed mine\n", //GUN_STR_CB
"token\n", //GUN_STR_CC
"unarmed\n", //GUN_STR_CD
"video tape\n", //GUN_STR_CE
"watch communicator\n", //GUN_STR_CF
"watch geiger counter\n", //GUN_STR_D0
"watch identifier\n", //GUN_STR_D1
"watch laser\n", //GUN_STR_D2
"watch magnet attract\n", //GUN_STR_D3
"watch magnet repel\n", //GUN_STR_D4
"weapon case\n", //GUN_STR_D5
"yale key\n", //GUN_STR_D6
"zmg (9mm)\n", //GUN_STR_D7
"Analyzing the GoldenEye key...\n", //GUN_STR_D8
"You do not have the GoldenEye\n key.\n", //GUN_STR_D9
"kill count", //GUN_STR_DA
"died once\n", //GUN_STR_DB
"died", //GUN_STR_DC
"times", //GUN_STR_DD
"suicide count", //GUN_STR_DE
0 //GUN_STR_DF
};
+227
View File
@@ -0,0 +1,227 @@
enum LGUNE_STRINGS
{
GUN_STR_00, // " D5K\n",
GUN_STR_01, // " Issue\n",
GUN_STR_02, // " Mine\n",
GUN_STR_03, // " PP7\n",
GUN_STR_04, // " DD44\n",
GUN_STR_05, // " Gun\n",
GUN_STR_06, // " Knife\n",
GUN_STR_07, // " Mine\n",
GUN_STR_08, // " KF7\n",
GUN_STR_09, // " Mine\n",
GUN_STR_0A, // " Rifle\n",
GUN_STR_0B, // " Rocket\n",
GUN_STR_0C, // " Shotgun\n",
GUN_STR_0D, // "(Proximity)\n",
GUN_STR_0E, // "(Remote)\n",
GUN_STR_0F, // "(Timed)\n",
GUN_STR_10, // "(silenced)\n",
GUN_STR_11, // "-\n",
GUN_STR_12, // "Assault\n",
GUN_STR_13, // "Attract\n",
GUN_STR_14, // "Audio Tape\n",
GUN_STR_15, // "Automatic Shotgun\n",
GUN_STR_16, // "Automatic\n",
GUN_STR_17, // "Blackbox\n",
GUN_STR_18, // "Blueprints\n",
GUN_STR_19, // "Bolt Key\n",
GUN_STR_1A, // "Bomb Case\n",
GUN_STR_1B, // "Bomb Defuser\n",
GUN_STR_1C, // "Briefcase\n",
GUN_STR_1D, // "Bug Detector\n",
GUN_STR_1E, // "Bug\n",
GUN_STR_1F, // "Bungee\n",
GUN_STR_20, // "Camera\n",
GUN_STR_21, // "Circuit Board\n",
GUN_STR_22, // "Clipboard\n",
GUN_STR_23, // "Communicator\n",
GUN_STR_24, // "Controller\n",
GUN_STR_25, // "Cougar Magnum\n",
GUN_STR_26, // "Cougar\n",
GUN_STR_27, // "Credit Card\n",
GUN_STR_28, // "D5K (silenced)\n",
GUN_STR_29, // "D5K Deutsche\n",
GUN_STR_2A, // "DD44 Dostovei\n",
GUN_STR_2B, // "Dark Glasses\n",
GUN_STR_2C, // "Dat Tape\n",
GUN_STR_2D, // "Datathief\n",
GUN_STR_2E, // "Detonator\n",
GUN_STR_2F, // "Deutsche\n",
GUN_STR_30, // "Door Decoder\n",
GUN_STR_31, // "Door Exploder\n",
GUN_STR_32, // "Dostovei\n",
GUN_STR_33, // "Guidance Data\n",
GUN_STR_34, // "Flare Pistol\n",
GUN_STR_35, // "Gas Keyring\n",
GUN_STR_36, // "Geiger Counter\n",
GUN_STR_37, // "Gold Bar\n",
GUN_STR_38, // "Gold PP7\n",
GUN_STR_39, // "Golden Gun\n",
GUN_STR_3A, // "GoldenEye Key\n",
GUN_STR_3B, // "Golden\n",
GUN_STR_3C, // "Grenade Launcher\n",
GUN_STR_3D, // "Grenade\n",
GUN_STR_3E, // "Hand Grenade\n",
GUN_STR_3F, // "Heroine\n",
GUN_STR_40, // "Hunting Knife\n",
GUN_STR_41, // "Identifier\n",
GUN_STR_42, // "KF7 Soviet\n",
GUN_STR_43, // "Key Analyzer Case\n",
GUN_STR_44, // "Key Analyzer\n",
GUN_STR_45, // "Keycard\n",
GUN_STR_46, // "Knife\n",
GUN_STR_47, // "Laser\n",
GUN_STR_48, // "Launcher\n",
GUN_STR_49, // "Lectre\n",
GUN_STR_4A, // "Lock Exploder\n",
GUN_STR_4B, // "Magnet Repel\n",
GUN_STR_4C, // "Magnum\n",
GUN_STR_4D, // "Map\n",
GUN_STR_4E, // "Micro Camera\n",
GUN_STR_4F, // "Microcode\n",
GUN_STR_50, // "Microfilm\n",
GUN_STR_51, // "Military Laser\n",
GUN_STR_52, // "Military\n",
GUN_STR_53, // "Money\n",
GUN_STR_54, // "Null\n",
GUN_STR_55, // "PP7 (silenced)\n",
GUN_STR_56, // "PP7 Special Issue\n",
GUN_STR_57, // "PP7 Special\n",
GUN_STR_58, // "Phantom\n",
GUN_STR_59, // "Piton Gun\n",
GUN_STR_5A, // "Plans\n",
GUN_STR_5B, // "Plastique\n",
GUN_STR_5C, // "Polarized Glasses\n",
GUN_STR_5D, // "Proximity Mine\n",
GUN_STR_5E, // "RC-P90\n",
GUN_STR_5F, // "Red Dossier\n",
GUN_STR_60, // "Remote Mine\n",
GUN_STR_61, // "Rocket Launcher\n",
GUN_STR_62, // "Safecracker Case\n",
GUN_STR_63, // "Safecracker\n",
GUN_STR_64, // "Shotgun\n",
GUN_STR_65, // "Silver PP7\n",
GUN_STR_66, // "Sniper Rifle\n",
GUN_STR_67, // "Sniper\n",
GUN_STR_68, // "Soviet\n",
GUN_STR_69, // "Spool Tape\n",
GUN_STR_6A, // "Spy File\n",
GUN_STR_6B, // "Klobb\n",
GUN_STR_6C, // "Staff List\n",
GUN_STR_6D, // "Suit_lf_hand\n",
GUN_STR_6E, // "Tank\n",
GUN_STR_6F, // "Taser\n",
GUN_STR_70, // "Throwing Knife\n",
GUN_STR_71, // "Throwing\n",
GUN_STR_72, // "Timed Mine\n",
GUN_STR_73, // "Token\n",
GUN_STR_74, // "US AR33 Assault Rifle\n",
GUN_STR_75, // "US AR33\n",
GUN_STR_76, // "Unarmed\n",
GUN_STR_77, // "Video Tape\n",
GUN_STR_78, // "Watch Communicator\n",
GUN_STR_79, // "Watch Geiger Counter\n",
GUN_STR_7A, // "Watch Identifier\n",
GUN_STR_7B, // "Watch Laser\n",
GUN_STR_7C, // "Watch Magnet Attract\n",
GUN_STR_7D, // "Watch Magnet Repel\n",
GUN_STR_7E, // "Watch Magnet\n",
GUN_STR_7F, // "Watch\n",
GUN_STR_80, // "Weapon Case\n",
GUN_STR_81, // "Yale Key\n",
GUN_STR_82, // "ZMG (9mm)\n",
GUN_STR_83, // "\n",
GUN_STR_84, // "ar33\n",
GUN_STR_85, // "audio tape\n",
GUN_STR_86, // "auto shotgun\n",
GUN_STR_87, // "blackbox\n",
GUN_STR_88, // "blueprints\n",
GUN_STR_89, // "bolt key\n",
GUN_STR_8A, // "bomb case\n",
GUN_STR_8B, // "bomb defuser\n",
GUN_STR_8C, // "briefcase\n",
GUN_STR_8D, // "bug detector\n",
GUN_STR_8E, // "bug\n",
GUN_STR_8F, // "bungee\n",
GUN_STR_90, // "camera\n",
GUN_STR_91, // "circuit board\n",
GUN_STR_92, // "clipboard\n",
GUN_STR_93, // "cougar magnum\n",
GUN_STR_94, // "credit card\n",
GUN_STR_95, // "d5k (silenced)\n",
GUN_STR_96, // "d5k\n",
GUN_STR_97, // "dark glasses\n",
GUN_STR_98, // "dat tape\n",
GUN_STR_99, // "datathief\n",
GUN_STR_9A, // "dd44\n",
GUN_STR_9B, // "detonator\n",
GUN_STR_9C, // "door decoder\n",
GUN_STR_9D, // "door exploder\n",
GUN_STR_9E, // "guidance data\n",
GUN_STR_9F, // "flare pistol\n",
GUN_STR_A0, // "gas keyring\n",
GUN_STR_A1, // "gold bar\n",
GUN_STR_A2, // "gold pp7\n",
GUN_STR_A3, // "golden gun\n",
GUN_STR_A4, // "goldeneye key\n",
GUN_STR_A5, // "grenade launcher\n",
GUN_STR_A6, // "grenade\n",
GUN_STR_A7, // "heroine\n",
GUN_STR_A8, // "hunting knife\n",
GUN_STR_A9, // "key analyzer\n",
GUN_STR_AA, // "keycard\n",
GUN_STR_AB, // "kf7 soviet\n",
GUN_STR_AC, // "laser\n",
GUN_STR_AD, // "lectre\n",
GUN_STR_AE, // "lock exploder\n",
GUN_STR_AF, // "map\n",
GUN_STR_B0, // "micro camera\n",
GUN_STR_B1, // "microcode\n",
GUN_STR_B2, // "microfilm\n",
GUN_STR_B3, // "money\n",
GUN_STR_B4, // "phantom\n",
GUN_STR_B5, // "piton gun\n",
GUN_STR_B6, // "plans\n",
GUN_STR_B7, // "plastique\n",
GUN_STR_B8, // "polarized glasses\n",
GUN_STR_B9, // "pp7 (silenced)\n",
GUN_STR_BA, // "pp7\n",
GUN_STR_BB, // "proximity mine\n",
GUN_STR_BC, // "rc-p90\n",
GUN_STR_BD, // "red dossier\n",
GUN_STR_BE, // "remote mine\n",
GUN_STR_BF, // "rocket launcher\n",
GUN_STR_C0, // "safecracker\n",
GUN_STR_C1, // "shotgun\n",
GUN_STR_C2, // "silver pp7\n",
GUN_STR_C3, // "sniper rifle\n",
GUN_STR_C4, // "spool tape\n",
GUN_STR_C5, // "spy file\n",
GUN_STR_C6, // "klobb\n",
GUN_STR_C7, // "staff list\n",
GUN_STR_C8, // "tank\n",
GUN_STR_C9, // "taser\n",
GUN_STR_CA, // "throwing knife\n",
GUN_STR_CB, // "timed mine\n",
GUN_STR_CC, // "token\n",
GUN_STR_CD, // "unarmed\n",
GUN_STR_CE, // "video tape\n",
GUN_STR_CF, // "watch communicator\n",
GUN_STR_D0, // "watch geiger counter\n",
GUN_STR_D1, // "watch identifier\n",
GUN_STR_D2, // "watch laser\n",
GUN_STR_D3, // "watch magnet attract\n",
GUN_STR_D4, // "watch magnet repel\n",
GUN_STR_D5, // "weapon case\n",
GUN_STR_D6, // "yale key\n",
GUN_STR_D7, // "zmg (9mm)\n",
GUN_STR_D8, // "Analyzing the GoldenEye key...\n",
GUN_STR_D9, // "You do not have the GoldenEye\n key.\n",
GUN_STR_DA, // "kill count",
GUN_STR_DB, // "died once\n",
GUN_STR_DC, // "died",
GUN_STR_DD, // "times",
GUN_STR_DE, // "suicide count",
GUN_STR_DF // 0
};
+70 -70
View File
@@ -1,74 +1,74 @@
char *LmiscE[] = {
"Invincible",
"All Guns",
"Super x2 Health",
"Super x2 Armor",
"Bond Invisible",
"Bond Phase",
"Infinite Ammo",
"DK Mode",
"Tiny Bond",
"Super x10 Health",
"Magnum",
"Laser",
"Golden Gun",
"Silver PP7",
"Gold PP7",
"invincibility on\n",
"all guns on\n",
"maximum ammo\n",
"super x2 health\n",
"super x2 armor\n",
"invisibility on\n",
"bond phase on\n",
"infinite ammo on\n",
"dk mode on\n",
"extra weapons\n",
"tiny bond on\n",
"paintball mode on\n",
"super x10 health\n",
"happy now karl?\n",
"fast mode on\n",
"invincibility off\n",
"all guns off\n",
"invisibility off\n",
"bond phase off\n",
"infinite ammo off\n",
"dk mode off\n",
"tiny bond off\n",
"paintball mode off\n",
"radar on\n",
"fast mode off\n",
"NO NAME",
"E R R O R\n",
"no briefing for this mission\n",
"\n",
"objective",
"completed\n",
"incomplete\n",
"failed\n",
"slowest motion\n",
"very slow motion\n",
"slow motion\n",
"normal motion\n",
"fast motion\n",
"very fast motion\n",
"fastest motion\n",
"Line Mode",
"Paintball Mode",
"Enemy Rockets",
"2x Rocket L.",
"2x Grenade L.",
"2x RC-P90",
"2x Throwing Knife",
"2x Hunting Knife",
"2x Laser",
"Turbo Mode",
"Fast Animation",
"Slow Animation",
"No Radar [Multi]"
#ifdef VERSION_JP
,"One minute left"
"Invincible", //MISC_STR_00
"All Guns", //MISC_STR_01
"Super x2 Health", //MISC_STR_02
"Super x2 Armor", //MISC_STR_03
"Bond Invisible", //MISC_STR_04
"Bond Phase", //MISC_STR_05
"Infinite Ammo", //MISC_STR_06
"DK Mode", //MISC_STR_07
"Tiny Bond", //MISC_STR_08
"Super x10 Health", //MISC_STR_09
"Magnum", //MISC_STR_0A
"Laser", //MISC_STR_0B
"Golden Gun", //MISC_STR_0C
"Silver PP7", //MISC_STR_0D
"Gold PP7", //MISC_STR_0E
"invincibility on\n", //MISC_STR_0F
"all guns on\n", //MISC_STR_10
"maximum ammo\n", //MISC_STR_11
"super x2 health\n", //MISC_STR_12
"super x2 armor\n", //MISC_STR_13
"invisibility on\n", //MISC_STR_14
"bond phase on\n", //MISC_STR_15
"infinite ammo on\n", //MISC_STR_16
"dk mode on\n", //MISC_STR_17
"extra weapons\n", //MISC_STR_18
"tiny bond on\n", //MISC_STR_19
"paintball mode on\n", //MISC_STR_1A
"super x10 health\n", //MISC_STR_1B
"happy now karl?\n", //MISC_STR_1C
"fast mode on\n", //MISC_STR_1D
"invincibility off\n", //MISC_STR_1E
"all guns off\n", //MISC_STR_1F
"invisibility off\n", //MISC_STR_20
"bond phase off\n", //MISC_STR_21
"infinite ammo off\n", //MISC_STR_22
"dk mode off\n", //MISC_STR_23
"tiny bond off\n", //MISC_STR_24
"paintball mode off\n", //MISC_STR_25
"radar on\n", //MISC_STR_26
"fast mode off\n", //MISC_STR_27
"NO NAME", //MISC_STR_28
"E R R O R\n", //MISC_STR_29
"no briefing for this mission\n", //MISC_STR_2A
"\n", //MISC_STR_2B
"objective", //MISC_STR_2C
"completed\n", //MISC_STR_2D
"incomplete\n", //MISC_STR_2E
"failed\n", //MISC_STR_2F
"slowest motion\n", //MISC_STR_30
"very slow motion\n", //MISC_STR_31
"slow motion\n", //MISC_STR_32
"normal motion\n", //MISC_STR_33
"fast motion\n", //MISC_STR_34
"very fast motion\n", //MISC_STR_35
"fastest motion\n", //MISC_STR_36
"Line Mode", //MISC_STR_37
"Paintball Mode", //MISC_STR_38
"Enemy Rockets", //MISC_STR_39
"2x Rocket L.", //MISC_STR_3A
"2x Grenade L.", //MISC_STR_3B
"2x RC-P90", //MISC_STR_3C
"2x Throwing Knife", //MISC_STR_3D
"2x Hunting Knife", //MISC_STR_3E
"2x Laser", //MISC_STR_3F
"Turbo Mode", //MISC_STR_40
"Fast Animation", //MISC_STR_41
"Slow Animation", //MISC_STR_42
"No Radar [Multi]" //MISC_STR_43
#ifdef VERSION_JP
,"One minute left" //MISC_STR_44
#endif
};
+75
View File
@@ -0,0 +1,75 @@
enum LMISCE_STRINGS
{
MISC_STR_00, // "Invincible",
MISC_STR_01, // "All Guns",
MISC_STR_02, // "Super x2 Health",
MISC_STR_03, // "Super x2 Armor",
MISC_STR_04, // "Bond Invisible",
MISC_STR_05, // "Bond Phase",
MISC_STR_06, // "Infinite Ammo",
MISC_STR_07, // "DK Mode",
MISC_STR_08, // "Tiny Bond",
MISC_STR_09, // "Super x10 Health",
MISC_STR_0A, // "Magnum",
MISC_STR_0B, // "Laser",
MISC_STR_0C, // "Golden Gun",
MISC_STR_0D, // "Silver PP7",
MISC_STR_0E, // "Gold PP7",
MISC_STR_0F, // "invincibility on\n",
MISC_STR_10, // "all guns on\n",
MISC_STR_11, // "maximum ammo\n",
MISC_STR_12, // "super x2 health\n",
MISC_STR_13, // "super x2 armor\n",
MISC_STR_14, // "invisibility on\n",
MISC_STR_15, // "bond phase on\n",
MISC_STR_16, // "infinite ammo on\n",
MISC_STR_17, // "dk mode on\n",
MISC_STR_18, // "extra weapons\n",
MISC_STR_19, // "tiny bond on\n",
MISC_STR_1A, // "paintball mode on\n",
MISC_STR_1B, // "super x10 health\n",
MISC_STR_1C, // "happy now karl?\n",
MISC_STR_1D, // "fast mode on\n",
MISC_STR_1E, // "invincibility off\n",
MISC_STR_1F, // "all guns off\n",
MISC_STR_20, // "invisibility off\n",
MISC_STR_21, // "bond phase off\n",
MISC_STR_22, // "infinite ammo off\n",
MISC_STR_23, // "dk mode off\n",
MISC_STR_24, // "tiny bond off\n",
MISC_STR_25, // "paintball mode off\n",
MISC_STR_26, // "radar on\n",
MISC_STR_27, // "fast mode off\n",
MISC_STR_28, // "NO NAME",
MISC_STR_29, // "E R R O R\n",
MISC_STR_2A, // "no briefing for this mission\n",
MISC_STR_2B, // "\n",
MISC_STR_2C, // "objective",
MISC_STR_2D, // "completed\n",
MISC_STR_2E, // "incomplete\n",
MISC_STR_2F, // "failed\n",
MISC_STR_30, // "slowest motion\n",
MISC_STR_31, // "very slow motion\n",
MISC_STR_32, // "slow motion\n",
MISC_STR_33, // "normal motion\n",
MISC_STR_34, // "fast motion\n",
MISC_STR_35, // "very fast motion\n",
MISC_STR_36, // "fastest motion\n",
MISC_STR_37, // "Line Mode",
MISC_STR_38, // "Paintball Mode",
MISC_STR_39, // "Enemy Rockets",
MISC_STR_3A, // "2x Rocket L.",
MISC_STR_3B, // "2x Grenade L.",
MISC_STR_3C, // "2x RC-P90",
MISC_STR_3D, // "2x Throwing Knife",
MISC_STR_3E, // "2x Hunting Knife",
MISC_STR_3F, // "2x Laser",
MISC_STR_40, // "Turbo Mode",
MISC_STR_41, // "Fast Animation",
MISC_STR_42, // "Slow Animation",
MISC_STR_43 // "No Radar [Multi]"
#ifdef VERSION_JP
,MISC_STR_44//,"One minute left"
#endif
};
+36 -36
View File
@@ -1,39 +1,39 @@
char *LmpmenuE[] = {
"Lemming Award",
"Where's the Ammo?",
"Where's the Armor?",
"AC -10 Award",
"Marksmanship Award",
"Most Professional",
"Most Deadly",
"Mostly Harmless",
"Most Cowardly",
"Most Frantic",
"Most Honorable",
"Most Dishonorable",
"Shortest Innings",
"Longest Innings",
"Double Kill",
"Triple Kill",
"Quad Kill (Doh!)",
"Rank: 1st",
"Rank: 2nd",
"Rank: 3rd",
"Rank: 4th",
"PLAY",
"GAME OVER",
"START TO EXIT",
"PAUSED",
"PAUSE",
"EXIT",
"SCORES",
"P",
"KILLS",
"LOSSES",
"Weapon of choice:",
"cancel",
"confirm",
"press start\n",
"to continue\n"
"Lemming Award", //MPMENU_STR_00
"Where's the Ammo?", //MPMENU_STR_01
"Where's the Armor?", //MPMENU_STR_02
"AC -10 Award", //MPMENU_STR_03
"Marksmanship Award", //MPMENU_STR_04
"Most Professional", //MPMENU_STR_05
"Most Deadly", //MPMENU_STR_06
"Mostly Harmless", //MPMENU_STR_07
"Most Cowardly", //MPMENU_STR_08
"Most Frantic", //MPMENU_STR_09
"Most Honorable", //MPMENU_STR_0A
"Most Dishonorable", //MPMENU_STR_0B
"Shortest Innings", //MPMENU_STR_0C
"Longest Innings", //MPMENU_STR_0D
"Double Kill", //MPMENU_STR_0E
"Triple Kill", //MPMENU_STR_0F
"Quad Kill (Doh!)", //MPMENU_STR_10
"Rank: 1st", //MPMENU_STR_11
"Rank: 2nd", //MPMENU_STR_12
"Rank: 3rd", //MPMENU_STR_13
"Rank: 4th", //MPMENU_STR_14
"PLAY", //MPMENU_STR_15
"GAME OVER", //MPMENU_STR_16
"START TO EXIT", //MPMENU_STR_17
"PAUSED", //MPMENU_STR_18
"PAUSE", //MPMENU_STR_19
"EXIT", //MPMENU_STR_1A
"SCORES", //MPMENU_STR_1B
"P", //MPMENU_STR_1C
"KILLS", //MPMENU_STR_1D
"LOSSES", //MPMENU_STR_1E
"Weapon of choice:", //MPMENU_STR_1F
"cancel", //MPMENU_STR_20
"confirm", //MPMENU_STR_21
"press start\n", //MPMENU_STR_22
"to continue\n" //MPMENU_STR_23
};
+39
View File
@@ -0,0 +1,39 @@
enum LMPMENUE_STRINGS
{
MPMENU_STR_00, // "Lemming Award",
MPMENU_STR_01, // "Where's the Ammo?",
MPMENU_STR_02, // "Where's the Armor?",
MPMENU_STR_03, // "AC -10 Award",
MPMENU_STR_04, // "Marksmanship Award",
MPMENU_STR_05, // "Most Professional",
MPMENU_STR_06, // "Most Deadly",
MPMENU_STR_07, // "Mostly Harmless",
MPMENU_STR_08, // "Most Cowardly",
MPMENU_STR_09, // "Most Frantic",
MPMENU_STR_0A, // "Most Honorable",
MPMENU_STR_0B, // "Most Dishonorable",
MPMENU_STR_0C, // "Shortest Innings",
MPMENU_STR_0D, // "Longest Innings",
MPMENU_STR_0E, // "Double Kill",
MPMENU_STR_0F, // "Triple Kill",
MPMENU_STR_10, // "Quad Kill (Doh!)",
MPMENU_STR_11, // "Rank: 1st",
MPMENU_STR_12, // "Rank: 2nd",
MPMENU_STR_13, // "Rank: 3rd",
MPMENU_STR_14, // "Rank: 4th",
MPMENU_STR_15, // "PLAY",
MPMENU_STR_16, // "GAME OVER",
MPMENU_STR_17, // "START TO EXIT",
MPMENU_STR_18, // "PAUSED",
MPMENU_STR_19, // "PAUSE",
MPMENU_STR_1A, // "EXIT",
MPMENU_STR_1B, // "SCORES",
MPMENU_STR_1C, // "P",
MPMENU_STR_1D, // "KILLS",
MPMENU_STR_1E, // "LOSSES",
MPMENU_STR_1F, // "Weapon of choice:",
MPMENU_STR_20, // "cancel",
MPMENU_STR_21, // "confirm",
MPMENU_STR_22, // "press start\n",
MPMENU_STR_23, // "to continue\n"
};
+16 -16
View File
@@ -1,19 +1,19 @@
char *LmpweaponsE[] = {
"Slappers only!",
"Pistols",
"Automatics",
"Power Weapons",
"Sniper Rifles",
"Grenades",
"Remote Mines",
"Grenade Launchers",
"Timed Mines",
"Proximity Mines",
"Rockets",
"Lasers",
"Golden Gun",
"Throwing Knives",
0,
0
"Slappers only!", //MPWEAPON_STR_00
"Pistols", //MPWEAPON_STR_01
"Automatics", //MPWEAPON_STR_02
"Power Weapons", //MPWEAPON_STR_03
"Sniper Rifles", //MPWEAPON_STR_04
"Grenades", //MPWEAPON_STR_05
"Remote Mines", //MPWEAPON_STR_06
"Grenade Launchers", //MPWEAPON_STR_07
"Timed Mines", //MPWEAPON_STR_08
"Proximity Mines", //MPWEAPON_STR_09
"Rockets", //MPWEAPON_STR_0A
"Lasers", //MPWEAPON_STR_0B
"Golden Gun", //MPWEAPON_STR_0C
"Throwing Knives", //MPWEAPON_STR_0D
0, //MPWEAPON_STR_0E
0 //MPWEAPON_STR_0F
};
+19
View File
@@ -0,0 +1,19 @@
enum LMPWEAPONSE_STRINGS
{
MPWEAPON_STR_00, // "Slappers only!",
MPWEAPON_STR_01, // "Pistols",
MPWEAPON_STR_02, // "Automatics",
MPWEAPON_STR_03, // "Power Weapons",
MPWEAPON_STR_04, // "Sniper Rifles",
MPWEAPON_STR_05, // "Grenades",
MPWEAPON_STR_06, // "Remote Mines",
MPWEAPON_STR_07, // "Grenade Launchers",
MPWEAPON_STR_08, // "Timed Mines",
MPWEAPON_STR_09, // "Proximity Mines",
MPWEAPON_STR_0A, // "Rockets",
MPWEAPON_STR_0B, // "Lasers",
MPWEAPON_STR_0C, // "Golden Gun",
MPWEAPON_STR_0D, // "Throwing Knives",
MPWEAPON_STR_0E, // 0,
MPWEAPON_STR_0F // 0
};
+67
View File
@@ -0,0 +1,67 @@
enum LOPTIONE_STRINGS
{
OPTION_STR_00, //"fire\n",
OPTION_STR_01, //"aim\n",
OPTION_STR_02, //"action\n",
OPTION_STR_03, //"weapon\n",
OPTION_STR_04, //"pause\n",
OPTION_STR_05, //"move\n",
OPTION_STR_06, //"look\n",
OPTION_STR_07, //"?\n",
OPTION_STR_08, //"move sight\n",
OPTION_STR_09, //"1.1 honey\n",
OPTION_STR_0A, //"1.2 solitaire\n",
OPTION_STR_0B, //"1.3 kissy\n",
OPTION_STR_0C, //"1.4 goodnight\n",
OPTION_STR_0D, //"2.1 plenty\n",
OPTION_STR_0E, //"2.2 galore\n",
OPTION_STR_0F, //"2.3 domino\n",
OPTION_STR_10, //"2.4 goodhead\n",
OPTION_STR_11, //"look up/down\n",
OPTION_STR_12, //"auto-aim\n",
OPTION_STR_13, //"look ahead\n",
OPTION_STR_14, //"aim control\n",
OPTION_STR_15, //"sight on-screen\n",
OPTION_STR_16, //"ammo on-screen\n",
OPTION_STR_17, //"screen\n",
OPTION_STR_18, //"ratio\n",
OPTION_STR_19, //"on\n",
OPTION_STR_1A, //"off\n",
OPTION_STR_1B, //"upright\n",
OPTION_STR_1C, //"reverse\n",
OPTION_STR_1D, //"toggle\n",
OPTION_STR_1E, //"hold\n",
OPTION_STR_1F, //"full\n",
OPTION_STR_20, //"wide\n",
OPTION_STR_21, //"cinema\n",
OPTION_STR_22, //"normal\n",
OPTION_STR_23, //"16:9\n",
OPTION_STR_24, //"abort:\n",
OPTION_STR_25, //"confirm\n",
OPTION_STR_26, //"cancel\n",
OPTION_STR_27, //"mission status:\n",
OPTION_STR_28, //"complete\n",
OPTION_STR_29, //"incomplete\n",
OPTION_STR_2A, //"Left Hand\n",
OPTION_STR_2B, //"q watch v2.01 beta\n",
OPTION_STR_2C, //"down\n",
OPTION_STR_2D, //"up\n",
OPTION_STR_2E, //"sidestep\n",
OPTION_STR_2F, //"sidestep\n",
OPTION_STR_30, //"forward\n",
OPTION_STR_31, //"back\n",
OPTION_STR_32, //"control style\n",
OPTION_STR_33, //"controller\n",
OPTION_STR_34, //"controllers\n",
OPTION_STR_35, //"music\n",
OPTION_STR_36, //"fx\n",
OPTION_STR_37, //"failed\n",
OPTION_STR_38, //"2. background\n",
OPTION_STR_39, //"3. M briefing\n",
OPTION_STR_3A, //"4. Q branch\n",
OPTION_STR_3B, //"5. moneypenny\n",
OPTION_STR_3C, //"1. mission objectives\n",
OPTION_STR_3D, //0,
OPTION_STR_3E, //0,
OPTION_STR_3F //0
};
+64 -64
View File
@@ -1,67 +1,67 @@
char *LoptionsE[] = {
"fire\n",
"aim\n",
"action\n",
"weapon\n",
"pause\n",
"move\n",
"look\n",
"?\n",
"move sight\n",
"1.1 honey\n",
"1.2 solitaire\n",
"1.3 kissy\n",
"1.4 goodnight\n",
"2.1 plenty\n",
"2.2 galore\n",
"2.3 domino\n",
"2.4 goodhead\n",
"look up/down\n",
"auto-aim\n",
"look ahead\n",
"aim control\n",
"sight on-screen\n",
"ammo on-screen\n",
"screen\n",
"ratio\n",
"on\n",
"off\n",
"upright\n",
"reverse\n",
"toggle\n",
"hold\n",
"full\n",
"wide\n",
"cinema\n",
"normal\n",
"16:9\n",
"abort:\n",
"confirm\n",
"cancel\n",
"mission status:\n",
"complete\n",
"incomplete\n",
"Left Hand\n",
"q watch v2.01 beta\n",
"down\n",
"up\n",
"sidestep\n",
"sidestep\n",
"forward\n",
"back\n",
"control style\n",
"controller\n",
"controllers\n",
"music\n",
"fx\n",
"failed\n",
"2. background\n",
"3. M briefing\n",
"4. Q branch\n",
"5. moneypenny\n",
"1. mission objectives\n",
0,
0,
0
"fire\n", //OPTION_STR_00
"aim\n", //OPTION_STR_01
"action\n", //OPTION_STR_02
"weapon\n", //OPTION_STR_03
"pause\n", //OPTION_STR_04
"move\n", //OPTION_STR_05
"look\n", //OPTION_STR_06
"?\n", //OPTION_STR_07
"move sight\n", //OPTION_STR_08
"1.1 honey\n", //OPTION_STR_09
"1.2 solitaire\n", //OPTION_STR_0A
"1.3 kissy\n", //OPTION_STR_0B
"1.4 goodnight\n", //OPTION_STR_0C
"2.1 plenty\n", //OPTION_STR_0D
"2.2 galore\n", //OPTION_STR_0E
"2.3 domino\n", //OPTION_STR_0F
"2.4 goodhead\n", //OPTION_STR_10
"look up/down\n", //OPTION_STR_11
"auto-aim\n", //OPTION_STR_12
"look ahead\n", //OPTION_STR_13
"aim control\n", //OPTION_STR_14
"sight on-screen\n", //OPTION_STR_15
"ammo on-screen\n", //OPTION_STR_16
"screen\n", //OPTION_STR_17
"ratio\n", //OPTION_STR_18
"on\n", //OPTION_STR_19
"off\n", //OPTION_STR_1A
"upright\n", //OPTION_STR_1B
"reverse\n", //OPTION_STR_1C
"toggle\n", //OPTION_STR_1D
"hold\n", //OPTION_STR_1E
"full\n", //OPTION_STR_1F
"wide\n", //OPTION_STR_20
"cinema\n", //OPTION_STR_21
"normal\n", //OPTION_STR_22
"16:9\n", //OPTION_STR_23
"abort:\n", //OPTION_STR_24
"confirm\n", //OPTION_STR_25
"cancel\n", //OPTION_STR_26
"mission status:\n", //OPTION_STR_27
"complete\n", //OPTION_STR_28
"incomplete\n", //OPTION_STR_29
"Left Hand\n", //OPTION_STR_2A
"q watch v2.01 beta\n", //OPTION_STR_2B
"down\n", //OPTION_STR_2C
"up\n", //OPTION_STR_2D
"sidestep\n", //OPTION_STR_2E
"sidestep\n", //OPTION_STR_2F
"forward\n", //OPTION_STR_30
"back\n", //OPTION_STR_31
"control style\n", //OPTION_STR_32
"controller\n", //OPTION_STR_33
"controllers\n", //OPTION_STR_34
"music\n", //OPTION_STR_35
"fx\n", //OPTION_STR_36
"failed\n", //OPTION_STR_37
"2. background\n", //OPTION_STR_38
"3. M briefing\n", //OPTION_STR_39
"4. Q branch\n", //OPTION_STR_3A
"5. moneypenny\n", //OPTION_STR_3B
"1. mission objectives\n", //OPTION_STR_3C
0, //OPTION_STR_3D
0, //OPTION_STR_3E
0 //OPTION_STR_3F
};
+68 -68
View File
@@ -1,71 +1,71 @@
char *LpropobjE[] = {
"Picked up ",
"some ",
"a ",
"an ",
"the ",
"ammo",
"shotgun cartridge",
"magnum bullet",
"golden bullet",
"hand grenade",
"grenade round",
"rocket",
"remote mine",
"proximity mine",
"timed mine",
"throwing ",
"knife",
"knives",
"s",
"dart",
"explosive pen",
"explosive case",
"flare",
"piton",
"of dynamite",
"stick ",
"sticks ",
"bug",
"micro camera",
"GoldenEye key",
"token",
"plastique",
"a hunting knife.\n",
"a PP7.\n",
"a silenced PP7.\n",
"a DD44 Dostovei.\n",
"a Klobb.\n",
"a KF7 Soviet.\n",
"a ZMG (9mm).\n",
"a D5K Deutsche.\n",
"a silenced D5K.\n",
"a Phantom.\n",
"an AR33 assault rifle.\n",
"an RC-P90.\n",
"a shotgun.\n",
"an automatic shotgun.\n",
"a sniper rifle.\n",
"a grenade launcher.\n",
"a rocket launcher.\n",
"a Cougar Magnum.\n",
"the Golden Gun.\n",
"a Moonraker laser.\n",
"a flare pistol.\n",
"a piton gun.\n",
"a silver PP7.\n",
"a gold PP7.\n",
"a keycard.\n",
"a yale key.\n",
"a bolt key.\n",
"a new weapon.\n",
"Picked up a key.\n",
"Picked up some body armor.\n",
"body armor.\n",
"Picked up something.\n",
"This door is locked.\n",
0,
0,
0
"Picked up ", //PROPOBJ_STR_00
"some ", //PROPOBJ_STR_01
"a ", //PROPOBJ_STR_02
"an ", //PROPOBJ_STR_03
"the ", //PROPOBJ_STR_04
"ammo", //PROPOBJ_STR_05
"shotgun cartridge", //PROPOBJ_STR_06
"magnum bullet", //PROPOBJ_STR_07
"golden bullet", //PROPOBJ_STR_08
"hand grenade", //PROPOBJ_STR_09
"grenade round", //PROPOBJ_STR_0A
"rocket", //PROPOBJ_STR_0B
"remote mine", //PROPOBJ_STR_0C
"proximity mine", //PROPOBJ_STR_0D
"timed mine", //PROPOBJ_STR_0E
"throwing ", //PROPOBJ_STR_0F
"knife", //PROPOBJ_STR_10
"knives", //PROPOBJ_STR_11
"s", //PROPOBJ_STR_12
"dart", //PROPOBJ_STR_13
"explosive pen", //PROPOBJ_STR_14
"explosive case", //PROPOBJ_STR_15
"flare", //PROPOBJ_STR_16
"piton", //PROPOBJ_STR_17
"of dynamite", //PROPOBJ_STR_18
"stick ", //PROPOBJ_STR_19
"sticks ", //PROPOBJ_STR_1A
"bug", //PROPOBJ_STR_1B
"micro camera", //PROPOBJ_STR_1C
"GoldenEye key", //PROPOBJ_STR_1D
"token", //PROPOBJ_STR_1E
"plastique", //PROPOBJ_STR_1F
"a hunting knife.\n", //PROPOBJ_STR_20
"a PP7.\n", //PROPOBJ_STR_21
"a silenced PP7.\n", //PROPOBJ_STR_22
"a DD44 Dostovei.\n", //PROPOBJ_STR_23
"a Klobb.\n", //PROPOBJ_STR_24
"a KF7 Soviet.\n", //PROPOBJ_STR_25
"a ZMG (9mm).\n", //PROPOBJ_STR_26
"a D5K Deutsche.\n", //PROPOBJ_STR_27
"a silenced D5K.\n", //PROPOBJ_STR_28
"a Phantom.\n", //PROPOBJ_STR_29
"an AR33 assault rifle.\n", //PROPOBJ_STR_2A
"an RC-P90.\n", //PROPOBJ_STR_2B
"a shotgun.\n", //PROPOBJ_STR_2C
"an automatic shotgun.\n", //PROPOBJ_STR_2D
"a sniper rifle.\n", //PROPOBJ_STR_2E
"a grenade launcher.\n", //PROPOBJ_STR_2F
"a rocket launcher.\n", //PROPOBJ_STR_30
"a Cougar Magnum.\n", //PROPOBJ_STR_31
"the Golden Gun.\n", //PROPOBJ_STR_32
"a Moonraker laser.\n", //PROPOBJ_STR_33
"a flare pistol.\n", //PROPOBJ_STR_34
"a piton gun.\n", //PROPOBJ_STR_35
"a silver PP7.\n", //PROPOBJ_STR_36
"a gold PP7.\n", //PROPOBJ_STR_37
"a keycard.\n", //PROPOBJ_STR_38
"a yale key.\n", //PROPOBJ_STR_39
"a bolt key.\n", //PROPOBJ_STR_3A
"a new weapon.\n", //PROPOBJ_STR_3B
"Picked up a key.\n", //PROPOBJ_STR_3C
"Picked up some body armor.\n", //PROPOBJ_STR_3D
"body armor.\n", //PROPOBJ_STR_3E
"Picked up something.\n", //PROPOBJ_STR_3F
"This door is locked.\n", //PROPOBJ_STR_40
0, //PROPOBJ_STR_41
0, //PROPOBJ_STR_42
0 //PROPOBJ_STR_43
};
+72
View File
@@ -0,0 +1,72 @@
enum LPROPOBJE_STRINGS
{
PROPOBJ_STR_00, // "Picked up ",
PROPOBJ_STR_01, // "some ",
PROPOBJ_STR_02, // "a ",
PROPOBJ_STR_03, // "an ",
PROPOBJ_STR_04, // "the ",
PROPOBJ_STR_05, // "ammo",
PROPOBJ_STR_06, // "shotgun cartridge",
PROPOBJ_STR_07, // "magnum bullet",
PROPOBJ_STR_08, // "golden bullet",
PROPOBJ_STR_09, // "hand grenade",
PROPOBJ_STR_0A, // "grenade round",
PROPOBJ_STR_0B, // "rocket",
PROPOBJ_STR_0C, // "remote mine",
PROPOBJ_STR_0D, // "proximity mine",
PROPOBJ_STR_0E, // "timed mine",
PROPOBJ_STR_0F, // "throwing ",
PROPOBJ_STR_10, // "knife",
PROPOBJ_STR_11, // "knives",
PROPOBJ_STR_12, // "s",
PROPOBJ_STR_13, // "dart",
PROPOBJ_STR_14, // "explosive pen",
PROPOBJ_STR_15, // "explosive case",
PROPOBJ_STR_16, // "flare",
PROPOBJ_STR_17, // "piton",
PROPOBJ_STR_18, // "of dynamite",
PROPOBJ_STR_19, // "stick ",
PROPOBJ_STR_1A, // "sticks ",
PROPOBJ_STR_1B, // "bug",
PROPOBJ_STR_1C, // "micro camera",
PROPOBJ_STR_1D, // "GoldenEye key",
PROPOBJ_STR_1E, // "token",
PROPOBJ_STR_1F, // "plastique",
PROPOBJ_STR_20, // "a hunting knife.\n",
PROPOBJ_STR_21, // "a PP7.\n",
PROPOBJ_STR_22, // "a silenced PP7.\n",
PROPOBJ_STR_23, // "a DD44 Dostovei.\n",
PROPOBJ_STR_24, // "a Klobb.\n",
PROPOBJ_STR_25, // "a KF7 Soviet.\n",
PROPOBJ_STR_26, // "a ZMG (9mm).\n",
PROPOBJ_STR_27, // "a D5K Deutsche.\n",
PROPOBJ_STR_28, // "a silenced D5K.\n",
PROPOBJ_STR_29, // "a Phantom.\n",
PROPOBJ_STR_2A, // "an AR33 assault rifle.\n",
PROPOBJ_STR_2B, // "an RC-P90.\n",
PROPOBJ_STR_2C, // "a shotgun.\n",
PROPOBJ_STR_2D, // "an automatic shotgun.\n",
PROPOBJ_STR_2E, // "a sniper rifle.\n",
PROPOBJ_STR_2F, // "a grenade launcher.\n",
PROPOBJ_STR_30, // "a rocket launcher.\n",
PROPOBJ_STR_31, // "a Cougar Magnum.\n",
PROPOBJ_STR_32, // "the Golden Gun.\n",
PROPOBJ_STR_33, // "a Moonraker laser.\n",
PROPOBJ_STR_34, // "a flare pistol.\n",
PROPOBJ_STR_35, // "a piton gun.\n",
PROPOBJ_STR_36, // "a silver PP7.\n",
PROPOBJ_STR_37, // "a gold PP7.\n",
PROPOBJ_STR_38, // "a keycard.\n",
PROPOBJ_STR_39, // "a yale key.\n",
PROPOBJ_STR_3A, // "a bolt key.\n",
PROPOBJ_STR_3B, // "a new weapon.\n",
PROPOBJ_STR_3C, // "Picked up a key.\n",
PROPOBJ_STR_3D, // "Picked up some body armor.\n",
PROPOBJ_STR_3E, // "body armor.\n",
PROPOBJ_STR_3F, // "Picked up something.\n",
PROPOBJ_STR_40, // "This door is locked.\n",
PROPOBJ_STR_41, // 0,
PROPOBJ_STR_42, // 0,
PROPOBJ_STR_43 // 0
};
+304 -305
View File
@@ -1,310 +1,309 @@
char *LtitleE[] = {
"hour",
"minute",
"second",
"s",
"START\n",
"NEXT\n",
"PREVIOUS\n",
"TWYCROSS BOARD OF GAME CLASSIFICATION\n",
"This is to certify\n",
"(c) 1997 Nintendo/Rare\n",
"(c) 1962, 1995 Danjaq, LLC. &\n",
"U.A.C. All Rights Reserved\n",
"(c) 1997 Eon Productions\n",
"Ltd. & Mac B. Inc.\n",
"Suitable only for 1-4 persons\n",
"PRESIDENT\n",
"VICE\n",
"James Bond theme by Monty Norman.\n",
"Used by permission of EMI Unart Catalog Inc.\n",
"Agent",
"Secret Agent",
"00 Agent",
"007",
"Erase file?\n",
"cancel\n",
"confirm\n",
"Mission ",
"Copy\n",
"Erase\n",
"SELECT MISSION\n",
"MULTIPLAYER\n",
"CHEAT OPTIONS\n",
": James Bond\n",
"Mission ",
"Part ",
"DIFFICULTY:\n",
"Agent\n",
"Secret Agent\n",
"00 Agent\n",
"007\n",
"SPECIAL OPTIONS:\n",
"Enemy reaction speed\n",
"Enemy health\n",
"Enemy damage\n",
"Enemy accuracy\n",
"Unlimited",
"5 Minutes",
"10 Minutes",
"20 Minutes",
"First to 5 points",
"First to 10 points",
"First to 20 points",
"Last person alive wins",
"Normal",
"You Only Live Twice",
"The Living Daylights [Flag Tag]",
"The Man With the Golden Gun",
"License to Kill",
"Team: 2 vs 2",
"Team: 3 vs 1",
"Team: 2 vs 1",
"Health -10\n(Hero)",
"Health -4\n(Veteran)",
"Health -3\n(Veteran)",
"Health -2\n(Veteran)",
"Health -1\n(Veteran)",
"Health +0\n(Normal)",
"Health +1\n(Novice)",
"Health +2\n(Novice)",
"Health +3\n(Novice)",
"Health +4\n(Novice)",
"Health +10\n(Rookie)",
"Sight OFF, Auto Aim OFF",
"Sight ON, Auto Aim OFF",
"Sight OFF, Auto Aim ON",
"Sight ON, Auto Aim ON",
"MULTIPLAYER OPTIONS:\n",
"Players:\n",
"Scenario:\n",
"Level:\n",
"Game Length:\n",
"Weapons:\n",
"Characters\n",
"Health\n",
"Aim:\n",
"Select Character",
"Select Handicap:",
"SCENARIO:\n",
"Select Teams",
"Red Team",
"Blue Team",
"Completed\n",
"FAILED\n",
"PRIMARY OBJECTIVES:\n",
"BACKGROUND:\n",
"M BRIEFING:\n",
"Q BRANCH:\n",
"MONEYPENNY:\n",
"REPORT:\n",
"Mission status:\n",
" KILLED IN ACTION\n",
" ABORTED\n",
" Completed\n",
" FAILED\n",
"STATISTICS:\n",
"Time:\n",
"Accuracy:\n",
"Weapon of choice:\n",
"Shot total:\n",
"Head hits:\n",
"Body hits:\n",
"Limb hits:\n",
"Others:\n",
"Kill total:\n",
"CHEAT OPTIONS:\n",
"ON\n",
"OFF\n",
"CHEAT SELECT MISSION",
"NO CONTROLLER IN CONTROLLER SOCKET 1",
"PLEASE POWER OFF AND ATTACH A CONTROLLER",
"Arkangelsk",
"Dam",
"Facility",
"Runway",
"Severnaya",
"Surface",
"Bunker",
"Kirghizstan",
"Launch Silo #4",
"Silo",
"Monte Carlo",
"Frigate",
"St. Petersburg",
"Statue Park",
"Statue",
"Military Archives",
"Archives",
"Streets",
"Depot",
"Train",
"Cuba",
"Jungle",
"Control Center",
"Control",
"Water Caverns",
"Caverns",
"Antenna Cradle",
"Cradle",
"Teotihuaca'n",
"Aztec Complex",
"Aztec",
"el-Saghira",
"Egyptian Temple",
"Egyptian",
"Random",
"RANDOM",
"Temple",
"TEMPLE",
"Complex",
"COMPLEX",
"Library",
"LIBRARY",
"Caves",
"CAVES",
"Facility",
"FACILITY",
"Severnaya Bunker",
"BUNKER",
"Military Archives",
"ARCHIVES",
"Water Caverns",
"CAVERNS",
"Egyptian Temple",
"EGYPTIAN",
"Citadel",
"CITADEL",
"dest",
"dest",
"stat",
"stat",
"crad",
"cradle",
"azt",
"azt",
"Bond",
"Mishkin",
"Boris",
"Ourumov",
"Trevelyan",
"Valentin",
"Xenia",
"Natalya",
"Baron Samedi",
"Jaws",
"Mayday",
"Oddjob",
"Rosika",
"Karl",
"Martin",
"Mark",
"Dave",
"Duncan",
"B",
"Steve E",
"Grant",
"Graeme",
"Ken",
"Alan",
"Pete",
"Shaun",
"Dwayne",
"Des",
"Chris",
"Lee",
"Neil",
"Jim",
"Robin",
"Steve H",
"Terrorist",
"Biker",
"Joel",
"Scott",
"Joe",
"Sally",
"Marion",
"Mandy",
"Vivien",
"\n",
"The Actors\n",
"Starring\n",
"Also Featuring\n",
"Guest Star\n",
"007\n",
"James Bond",
"Natalya Simonova\n",
"006\n",
"Alec Trevelyan\n",
"Janus Operative\n",
"Xenia Onatopp\n",
"General\n",
"Arkady Ourumov\n",
"Boris Grishenko\n",
"Ex KGB Agent\n",
"Valentin Zukovsky\n",
"Defense Minister\n",
"Dimitri Mishkin\n",
"Mayday\n",
"Jaws\n",
"Oddjob\n",
"Baron Samedi\n",
"Jungle Commando\n",
"St. Petersburg Guard\n",
"Russian Infantry\n",
"Russian Soldier\n",
"Janus Marine\n",
"Janus Special Forces\n",
"Russian Commandant\n",
"Naval Officer\n",
"Siberian Guard\n",
"Arctic Commando\n",
"Siberian Special Forces\n",
"Moonraker Elite\n",
"Helicopter Pilot\n",
"Scientist\n",
"Civilian\n",
"1.\n",
"2.\n",
"3.\n",
"4.\n",
"Basement",
"BASEMENT",
"Stack",
"STACK",
"Best Time:",
"Target:",
"New Cheat Available",
"CHEAT MULTIPLAYER\n",
"1.1 Honey\n",
"1.2 Solitaire\n",
"1.3 Kissy\n",
"1.4 Goodnight\n",
"2.1 Plenty\n",
"2.2 Galore\n",
"2.3 Domino\n",
"2.4 Goodhead\n",
"Select Control Style\n",
"Control Style\n",
#ifdef LANG_US
0
"hour", //TITLE_STR_0
"minute", //TITLE_STR_1
"second", //TITLE_STR_2
"s", //TITLE_STR_3
"START\n", //TITLE_STR_04
"NEXT\n", //TITLE_STR_05
"PREVIOUS\n", //TITLE_STR_06
"TWYCROSS BOARD OF GAME CLASSIFICATION\n", //TITLE_STR_07
"This is to certify\n", //TITLE_STR_08
"(c) 1997 Nintendo/Rare\n", //TITLE_STR_09
"(c) 1962, 1995 Danjaq, LLC. &\n", //TITLE_STR_10
"U.A.C. All Rights Reserved\n", //TITLE_STR_11
"(c) 1997 Eon Productions\n", //TITLE_STR_12
"Ltd. & Mac B. Inc.\n", //TITLE_STR_13
"Suitable only for 1-4 persons\n", //TITLE_STR_14
"PRESIDENT\n", //TITLE_STR_15
"VICE\n", //TITLE_STR_16
"James Bond theme by Monty Norman.\n", //TITLE_STR_17
"Used by permission of EMI Unart Catalog Inc.\n", //TITLE_STR_18
"Agent", //TITLE_STR_19
"Secret Agent", //TITLE_STR_20
"00 Agent", //TITLE_STR_21
"007", //TITLE_STR_22
"Erase file?\n", //TITLE_STR_23
"cancel\n", //TITLE_STR_24
"confirm\n", //TITLE_STR_25
"Mission ", //TITLE_STR_26
"Copy\n", //TITLE_STR_27
"Erase\n", //TITLE_STR_28
"SELECT MISSION\n", //TITLE_STR_29
"MULTIPLAYER\n", //TITLE_STR_30
"CHEAT OPTIONS\n", //TITLE_STR_31
": James Bond\n", //TITLE_STR_32
"Mission ", //TITLE_STR_33
"Part ", //TITLE_STR_34
"DIFFICULTY:\n", //TITLE_STR_35
"Agent\n", //TITLE_STR_36
"Secret Agent\n", //TITLE_STR_37
"00 Agent\n", //TITLE_STR_38
"007\n", //TITLE_STR_39
"SPECIAL OPTIONS:\n", //TITLE_STR_40
"Enemy reaction speed\n", //TITLE_STR_41
"Enemy health\n", //TITLE_STR_42
"Enemy damage\n", //TITLE_STR_43
"Enemy accuracy\n", //TITLE_STR_44
"Unlimited", //TITLE_STR_45
"5 Minutes", //TITLE_STR_46
"10 Minutes", //TITLE_STR_47
"20 Minutes", //TITLE_STR_48
"First to 5 points", //TITLE_STR_49
"First to 10 points", //TITLE_STR_50
"First to 20 points", //TITLE_STR_51
"Last person alive wins", //TITLE_STR_52
"Normal", //TITLE_STR_53
"You Only Live Twice", //TITLE_STR_54
"The Living Daylights [Flag Tag]", //TITLE_STR_55
"The Man With the Golden Gun", //TITLE_STR_56
"License to Kill", //TITLE_STR_57
"Team: 2 vs 2", //TITLE_STR_58
"Team: 3 vs 1", //TITLE_STR_59
"Team: 2 vs 1", //TITLE_STR_60
"Health -10\n(Hero)", //TITLE_STR_61
"Health -4\n(Veteran)", //TITLE_STR_62
"Health -3\n(Veteran)", //TITLE_STR_63
"Health -2\n(Veteran)", //TITLE_STR_64
"Health -1\n(Veteran)", //TITLE_STR_65
"Health +0\n(Normal)", //TITLE_STR_66
"Health +1\n(Novice)", //TITLE_STR_67
"Health +2\n(Novice)", //TITLE_STR_68
"Health +3\n(Novice)", //TITLE_STR_69
"Health +4\n(Novice)", //TITLE_STR_70
"Health +10\n(Rookie)", //TITLE_STR_71
"Sight OFF, Auto Aim OFF", //TITLE_STR_72
"Sight ON, Auto Aim OFF", //TITLE_STR_73
"Sight OFF, Auto Aim ON", //TITLE_STR_74
"Sight ON, Auto Aim ON", //TITLE_STR_75
"MULTIPLAYER OPTIONS:\n", //TITLE_STR_76
"Players:\n", //TITLE_STR_77
"Scenario:\n", //TITLE_STR_78
"Level:\n", //TITLE_STR_79
"Game Length:\n", //TITLE_STR_80
"Weapons:\n", //TITLE_STR_81
"Characters\n", //TITLE_STR_82
"Health\n", //TITLE_STR_83
"Aim:\n", //TITLE_STR_84
"Select Character", //TITLE_STR_85
"Select Handicap:", //TITLE_STR_86
"SCENARIO:\n", //TITLE_STR_87
"Select Teams", //TITLE_STR_88
"Red Team", //TITLE_STR_89
"Blue Team", //TITLE_STR_90
"Completed\n", //TITLE_STR_91
"FAILED\n", //TITLE_STR_92
"PRIMARY OBJECTIVES:\n", //TITLE_STR_93
"BACKGROUND:\n", //TITLE_STR_94
"M BRIEFING:\n", //TITLE_STR_95
"Q BRANCH:\n", //TITLE_STR_96
"MONEYPENNY:\n", //TITLE_STR_97
"REPORT:\n", //TITLE_STR_98
"Mission status:\n", //TITLE_STR_99
" KILLED IN ACTION\n", //TITLE_STR_100
" ABORTED\n", //TITLE_STR_101
" Completed\n", //TITLE_STR_102
" FAILED\n", //TITLE_STR_103
"STATISTICS:\n", //TITLE_STR_104
"Time:\n", //TITLE_STR_105
"Accuracy:\n", //TITLE_STR_106
"Weapon of choice:\n", //TITLE_STR_107
"Shot total:\n", //TITLE_STR_108
"Head hits:\n", //TITLE_STR_109
"Body hits:\n", //TITLE_STR_110
"Limb hits:\n", //TITLE_STR_111
"Others:\n", //TITLE_STR_112
"Kill total:\n", //TITLE_STR_113
"CHEAT OPTIONS:\n", //TITLE_STR_114
"ON\n", //TITLE_STR_115
"OFF\n", //TITLE_STR_116
"CHEAT SELECT MISSION", //TITLE_STR_117
"NO CONTROLLER IN CONTROLLER SOCKET 1", //TITLE_STR_118
"PLEASE POWER OFF AND ATTACH A CONTROLLER", //TITLE_STR_119
"Arkangelsk", //TITLE_STR_120
"Dam", //TITLE_STR_121
"Facility", //TITLE_STR_122
"Runway", //TITLE_STR_123
"Severnaya", //TITLE_STR_124
"Surface", //TITLE_STR_125
"Bunker", //TITLE_STR_126
"Kirghizstan", //TITLE_STR_127
"Launch Silo #4", //TITLE_STR_128
"Silo", //TITLE_STR_129
"Monte Carlo", //TITLE_STR_130
"Frigate", //TITLE_STR_131
"St. Petersburg", //TITLE_STR_132
"Statue Park", //TITLE_STR_133
"Statue", //TITLE_STR_134
"Military Archives", //TITLE_STR_135
"Archives", //TITLE_STR_136
"Streets", //TITLE_STR_137
"Depot", //TITLE_STR_138
"Train", //TITLE_STR_139
"Cuba", //TITLE_STR_140
"Jungle", //TITLE_STR_141
"Control Center", //TITLE_STR_142
"Control", //TITLE_STR_143
"Water Caverns", //TITLE_STR_144
"Caverns", //TITLE_STR_145
"Antenna Cradle", //TITLE_STR_146
"Cradle", //TITLE_STR_147
"Teotihuaca'n", //TITLE_STR_148
"Aztec Complex", //TITLE_STR_149
"Aztec", //TITLE_STR_150
"el-Saghira", //TITLE_STR_151
"Egyptian Temple", //TITLE_STR_152
"Egyptian", //TITLE_STR_153
"Random", //TITLE_STR_154
"RANDOM", //TITLE_STR_155
"Temple", //TITLE_STR_156
"TEMPLE", //TITLE_STR_157
"Complex", //TITLE_STR_158
"COMPLEX", //TITLE_STR_159
"Library", //TITLE_STR_160
"LIBRARY", //TITLE_STR_161
"Caves", //TITLE_STR_162
"CAVES", //TITLE_STR_163
"Facility", //TITLE_STR_164
"FACILITY", //TITLE_STR_165
"Severnaya Bunker", //TITLE_STR_166
"BUNKER", //TITLE_STR_167
"Military Archives", //TITLE_STR_168
"ARCHIVES", //TITLE_STR_169
"Water Caverns", //TITLE_STR_170
"CAVERNS", //TITLE_STR_171
"Egyptian Temple", //TITLE_STR_172
"EGYPTIAN", //TITLE_STR_173
"Citadel", //TITLE_STR_174
"CITADEL", //TITLE_STR_175
"dest", //TITLE_STR_176
"dest", //TITLE_STR_177
"stat", //TITLE_STR_178
"stat", //TITLE_STR_179
"crad", //TITLE_STR_180
"cradle", //TITLE_STR_181
"azt", //TITLE_STR_182
"azt", //TITLE_STR_183
"Bond", //TITLE_STR_184
"Mishkin", //TITLE_STR_185
"Boris", //TITLE_STR_186
"Ourumov", //TITLE_STR_187
"Trevelyan", //TITLE_STR_188
"Valentin", //TITLE_STR_189
"Xenia", //TITLE_STR_190
"Natalya", //TITLE_STR_191
"Baron Samedi", //TITLE_STR_192
"Jaws", //TITLE_STR_193
"Mayday", //TITLE_STR_194
"Oddjob", //TITLE_STR_195
"Rosika", //TITLE_STR_196
"Karl", //TITLE_STR_197
"Martin", //TITLE_STR_198
"Mark", //TITLE_STR_199
"Dave", //TITLE_STR_200
"Duncan", //TITLE_STR_201
"B", //TITLE_STR_202
"Steve E", //TITLE_STR_203
"Grant", //TITLE_STR_204
"Graeme", //TITLE_STR_205
"Ken", //TITLE_STR_206
"Alan", //TITLE_STR_207
"Pete", //TITLE_STR_208
"Shaun", //TITLE_STR_209
"Dwayne", //TITLE_STR_210
"Des", //TITLE_STR_211
"Chris", //TITLE_STR_212
"Lee", //TITLE_STR_213
"Neil", //TITLE_STR_214
"Jim", //TITLE_STR_215
"Robin", //TITLE_STR_216
"Steve H", //TITLE_STR_217
"Terrorist", //TITLE_STR_218
"Biker", //TITLE_STR_219
"Joel", //TITLE_STR_220
"Scott", //TITLE_STR_221
"Joe", //TITLE_STR_222
"Sally", //TITLE_STR_223
"Marion", //TITLE_STR_224
"Mandy", //TITLE_STR_225
"Vivien", //TITLE_STR_226
"\n", //TITLE_STR_227
"The Actors\n", //TITLE_STR_228
"Starring\n", //TITLE_STR_229
"Also Featuring\n", //TITLE_STR_230
"Guest Star\n", //TITLE_STR_231
"007\n", //TITLE_STR_232
"James Bond", //TITLE_STR_233
"Natalya Simonova\n", //TITLE_STR_234
"006\n", //TITLE_STR_235
"Alec Trevelyan\n", //TITLE_STR_236
"Janus Operative\n", //TITLE_STR_237
"Xenia Onatopp\n", //TITLE_STR_238
"General\n", //TITLE_STR_239
"Arkady Ourumov\n", //TITLE_STR_240
"Boris Grishenko\n", //TITLE_STR_241
"Ex KGB Agent\n", //TITLE_STR_242
"Valentin Zukovsky\n", //TITLE_STR_243
"Defense Minister\n", //TITLE_STR_244
"Dimitri Mishkin\n", //TITLE_STR_245
"Mayday\n", //TITLE_STR_246
"Jaws\n", //TITLE_STR_247
"Oddjob\n", //TITLE_STR_248
"Baron Samedi\n", //TITLE_STR_249
"Jungle Commando\n", //TITLE_STR_250
"St. Petersburg Guard\n", //TITLE_STR_251
"Russian Infantry\n", //TITLE_STR_252
"Russian Soldier\n", //TITLE_STR_253
"Janus Marine\n", //TITLE_STR_254
"Janus Special Forces\n", //TITLE_STR_255
"Russian Commandant\n", //TITLE_STR_256
"Naval Officer\n", //TITLE_STR_257
"Siberian Guard\n", //TITLE_STR_258
"Arctic Commando\n", //TITLE_STR_259
"Siberian Special Forces\n", //TITLE_STR_260
"Moonraker Elite\n", //TITLE_STR_261
"Helicopter Pilot\n", //TITLE_STR_262
"Scientist\n", //TITLE_STR_263
"Civilian\n", //TITLE_STR_264
"1.\n", //TITLE_STR_265
"2.\n", //TITLE_STR_266
"3.\n", //TITLE_STR_267
"4.\n", //TITLE_STR_268
"Basement", //TITLE_STR_269
"BASEMENT", //TITLE_STR_270
"Stack", //TITLE_STR_271
"STACK", //TITLE_STR_272
"Best Time:", //TITLE_STR_273
"Target:", //TITLE_STR_274
"New Cheat Available", //TITLE_STR_275
"CHEAT MULTIPLAYER\n", //TITLE_STR_276
"1.1 Honey\n", //TITLE_STR_277
"1.2 Solitaire\n", //TITLE_STR_278
"1.3 Kissy\n", //TITLE_STR_279
"1.4 Goodnight\n", //TITLE_STR_280
"2.1 Plenty\n", //TITLE_STR_281
"2.2 Galore\n", //TITLE_STR_282
"2.3 Domino\n", //TITLE_STR_283
"2.4 Goodhead\n", //TITLE_STR_284
"Select Control Style\n", //TITLE_STR_285
"Control Style\n", //TITLE_STR_286
#ifdef LANG_US
0 //TITLE_STR_287
#endif
#ifdef LANG_JP
"Russian Soldier\n",
"Russian Infantry\n",
"Scientist\n",
"Russian Commandant\n",
"Janus Marine\n",
"Naval Officer\n",
"Helicopter Pilot\n",
"St. Petersburg Guard\n",
"Civilian\n",
"Siberian Guard\n",
"Arctic Commando\n",
"Siberian Special Forces\n",
"Jungle Commando\n",
"Janus Special Forces\n",
"Moonraker Elite\n"
"Russian Soldier\n", //TITLE_STR_287
"Russian Infantry\n", //TITLE_STR_288
"Scientist\n", //TITLE_STR_289
"Russian Commandant\n", //TITLE_STR_290
"Janus Marine\n", //TITLE_STR_291
"Naval Officer\n", //TITLE_STR_292
"Helicopter Pilot\n", //TITLE_STR_293
"St. Petersburg Guard\n", //TITLE_STR_294
"Civilian\n", //TITLE_STR_295
"Siberian Guard\n", //TITLE_STR_296
"Arctic Commando\n", //TITLE_STR_297
"Siberian Special Forces\n", //TITLE_STR_298
"Jungle Commando\n", //TITLE_STR_299
"Janus Special Forces\n", //TITLE_STR_300
"Moonraker Elite\n" //TITLE_STR_301
#endif
};
+310
View File
@@ -0,0 +1,310 @@
typedef enum LTITLE_STRINGS
{
TITLE_STR_00,
TITLE_STR_01,
TITLE_STR_02,
TITLE_STR_03,
TITLE_STR_04,
TITLE_STR_05,
TITLE_STR_06,
TITLE_STR_07,
TITLE_STR_08,
TITLE_STR_09,
TITLE_STR_10,
TITLE_STR_11,
TITLE_STR_12,
TITLE_STR_13,
TITLE_STR_14,
TITLE_STR_15,
TITLE_STR_16,
TITLE_STR_17,
TITLE_STR_18,
TITLE_STR_19,
TITLE_STR_20,
TITLE_STR_21,
TITLE_STR_22,
TITLE_STR_23,
TITLE_STR_24,
TITLE_STR_25,
TITLE_STR_26,
TITLE_STR_27,
TITLE_STR_28,
TITLE_STR_29,
TITLE_STR_30,
TITLE_STR_31,
TITLE_STR_32,
TITLE_STR_33,
TITLE_STR_34,
TITLE_STR_35,
TITLE_STR_36,
TITLE_STR_37,
TITLE_STR_38,
TITLE_STR_39,
TITLE_STR_40,
TITLE_STR_41,
TITLE_STR_42,
TITLE_STR_43,
TITLE_STR_44,
TITLE_STR_45,
TITLE_STR_46,
TITLE_STR_47,
TITLE_STR_48,
TITLE_STR_49,
TITLE_STR_50,
TITLE_STR_51,
TITLE_STR_52,
TITLE_STR_53,
TITLE_STR_54,
TITLE_STR_55,
TITLE_STR_56,
TITLE_STR_57,
TITLE_STR_58,
TITLE_STR_59,
TITLE_STR_60,
TITLE_STR_61,
TITLE_STR_62,
TITLE_STR_63,
TITLE_STR_64,
TITLE_STR_65,
TITLE_STR_66,
TITLE_STR_67,
TITLE_STR_68,
TITLE_STR_69,
TITLE_STR_70,
TITLE_STR_71,
TITLE_STR_72,
TITLE_STR_73,
TITLE_STR_74,
TITLE_STR_75,
TITLE_STR_76,
TITLE_STR_77,
TITLE_STR_78,
TITLE_STR_79,
TITLE_STR_80,
TITLE_STR_81,
TITLE_STR_82,
TITLE_STR_83,
TITLE_STR_84,
TITLE_STR_85,
TITLE_STR_86,
TITLE_STR_87,
TITLE_STR_88,
TITLE_STR_89,
TITLE_STR_90,
TITLE_STR_91,
TITLE_STR_92,
TITLE_STR_93,
TITLE_STR_94,
TITLE_STR_95,
TITLE_STR_96,
TITLE_STR_97,
TITLE_STR_98,
TITLE_STR_99,
TITLE_STR_100,
TITLE_STR_101,
TITLE_STR_102,
TITLE_STR_103,
TITLE_STR_104,
TITLE_STR_105,
TITLE_STR_106,
TITLE_STR_107,
TITLE_STR_108,
TITLE_STR_109,
TITLE_STR_110,
TITLE_STR_111,
TITLE_STR_112,
TITLE_STR_113,
TITLE_STR_114,
TITLE_STR_115,
TITLE_STR_116,
TITLE_STR_117,
TITLE_STR_118,
TITLE_STR_119,
TITLE_STR_120,
TITLE_STR_121,
TITLE_STR_122,
TITLE_STR_123,
TITLE_STR_124,
TITLE_STR_125,
TITLE_STR_126,
TITLE_STR_127,
TITLE_STR_128,
TITLE_STR_129,
TITLE_STR_130,
TITLE_STR_131,
TITLE_STR_132,
TITLE_STR_133,
TITLE_STR_134,
TITLE_STR_135,
TITLE_STR_136,
TITLE_STR_137,
TITLE_STR_138,
TITLE_STR_139,
TITLE_STR_140,
TITLE_STR_141,
TITLE_STR_142,
TITLE_STR_143,
TITLE_STR_144,
TITLE_STR_145,
TITLE_STR_146,
TITLE_STR_147,
TITLE_STR_148,
TITLE_STR_149,
TITLE_STR_150,
TITLE_STR_151,
TITLE_STR_152,
TITLE_STR_153,
TITLE_STR_154,
TITLE_STR_155,
TITLE_STR_156,
TITLE_STR_157,
TITLE_STR_158,
TITLE_STR_159,
TITLE_STR_160,
TITLE_STR_161,
TITLE_STR_162,
TITLE_STR_163,
TITLE_STR_164,
TITLE_STR_165,
TITLE_STR_166,
TITLE_STR_167,
TITLE_STR_168,
TITLE_STR_169,
TITLE_STR_170,
TITLE_STR_171,
TITLE_STR_172,
TITLE_STR_173,
TITLE_STR_174,
TITLE_STR_175,
TITLE_STR_176,
TITLE_STR_177,
TITLE_STR_178,
TITLE_STR_179,
TITLE_STR_180,
TITLE_STR_181,
TITLE_STR_182,
TITLE_STR_183,
TITLE_STR_184,
TITLE_STR_185,
TITLE_STR_186,
TITLE_STR_187,
TITLE_STR_188,
TITLE_STR_189,
TITLE_STR_190,
TITLE_STR_191,
TITLE_STR_192,
TITLE_STR_193,
TITLE_STR_194,
TITLE_STR_195,
TITLE_STR_196,
TITLE_STR_197,
TITLE_STR_198,
TITLE_STR_199,
TITLE_STR_200,
TITLE_STR_201,
TITLE_STR_202,
TITLE_STR_203,
TITLE_STR_204,
TITLE_STR_205,
TITLE_STR_206,
TITLE_STR_207,
TITLE_STR_208,
TITLE_STR_209,
TITLE_STR_210,
TITLE_STR_211,
TITLE_STR_212,
TITLE_STR_213,
TITLE_STR_214,
TITLE_STR_215,
TITLE_STR_216,
TITLE_STR_217,
TITLE_STR_218,
TITLE_STR_219,
TITLE_STR_220,
TITLE_STR_221,
TITLE_STR_222,
TITLE_STR_223,
TITLE_STR_224,
TITLE_STR_225,
TITLE_STR_226,
TITLE_STR_227,
TITLE_STR_228,
TITLE_STR_229,
TITLE_STR_230,
TITLE_STR_231,
TITLE_STR_232,
TITLE_STR_233,
TITLE_STR_234,
TITLE_STR_235,
TITLE_STR_236,
TITLE_STR_237,
TITLE_STR_238,
TITLE_STR_239,
TITLE_STR_240,
TITLE_STR_241,
TITLE_STR_242,
TITLE_STR_243,
TITLE_STR_244,
TITLE_STR_245,
TITLE_STR_246,
TITLE_STR_247,
TITLE_STR_248,
TITLE_STR_249,
TITLE_STR_250,
TITLE_STR_251,
TITLE_STR_252,
TITLE_STR_253,
TITLE_STR_254,
TITLE_STR_255,
TITLE_STR_256,
TITLE_STR_257,
TITLE_STR_258,
TITLE_STR_259,
TITLE_STR_260,
TITLE_STR_261,
TITLE_STR_262,
TITLE_STR_263,
TITLE_STR_264,
TITLE_STR_265,
TITLE_STR_266,
TITLE_STR_267,
TITLE_STR_268,
TITLE_STR_269,
TITLE_STR_270,
TITLE_STR_271,
TITLE_STR_272,
TITLE_STR_273,
TITLE_STR_274,
TITLE_STR_275,
TITLE_STR_276,
TITLE_STR_277,
TITLE_STR_278,
TITLE_STR_279,
TITLE_STR_280,
TITLE_STR_281,
TITLE_STR_282,
TITLE_STR_283,
TITLE_STR_284,
TITLE_STR_285,
TITLE_STR_286,
#ifdef BUGFIX_R0
TITLE_STR_287
#endif
#ifdef BUGFIX_R1
TITLE_STR_287,
TITLE_STR_288,
TITLE_STR_289,
TITLE_STR_290,
TITLE_STR_291,
TITLE_STR_292,
TITLE_STR_293,
TITLE_STR_294,
TITLE_STR_295,
TITLE_STR_296,
TITLE_STR_297,
TITLE_STR_298,
TITLE_STR_299,
TITLE_STR_300,
TITLE_STR_301
#endif
} LTITLE_STRINGS;
@@ -670,7 +670,7 @@ u32 imgwaRE_0x2060[] = {
};
//split me into 28 groups of verts per the gsSPVertex calls
Vtx maybeverts2B18[] = {
Vtx verts2B18[] = {
{0x008E, 0x008E, 0x000B, 0x0000, 0x0362, 0x0317, 0x08, 0x09, 0x7E, 0x00},
{0x008A, 0x009D, 0x000B, 0x0000, 0x0359, 0x0335, 0x07, 0x09, 0x7E, 0x00},
{0x0080, 0x00AB, 0x000B, 0x0000, 0x033D, 0x0351, 0x07, 0x0A, 0x7E, 0x00},
@@ -686,7 +686,9 @@ Vtx maybeverts2B18[] = {
{0x008A, 0xFF64, 0x000B, 0x0000, 0x0359, 0x00CB, 0x08, 0xF7, 0x7E, 0x00},
{0x0080, 0xFF56, 0x000B, 0x0000, 0x033D, 0x00AE, 0x07, 0xF6, 0x7E, 0x00},
{0x0071, 0xFF4B, 0x000B, 0x0000, 0x0317, 0x009A, 0x06, 0xF6, 0x7E, 0x00},
{0x0062, 0xFF48, 0x000B, 0x0000, 0x02EE, 0x0093, 0x05, 0xF5, 0x7E, 0x00},
{0x0062, 0xFF48, 0x000B, 0x0000, 0x02EE, 0x0093, 0x05, 0xF5, 0x7E, 0x00}
};
Vtx verts2C18[] = {
{0xFF99, 0xFF63, 0x000B, 0x0000, 0x0010, 0x0010, 0x00, 0x00, 0x7F, 0x00},
{0xFFD2, 0xFF63, 0x000B, 0x0000, 0x03F0, 0x0010, 0x00, 0x00, 0x7F, 0x00},
{0x000A, 0xFF87, 0x000B, 0x0000, 0x03F0, 0x03F0, 0x6A, 0x44, 0x00, 0x00},
@@ -700,7 +702,9 @@ Vtx maybeverts2B18[] = {
{0xFF8C, 0x009D, 0x000B, 0x0000, 0x00A8, 0x0335, 0xF9, 0x09, 0x7E, 0x00},
{0xFF88, 0x008E, 0x000B, 0x0000, 0x009F, 0x0317, 0xF8, 0x09, 0x7E, 0x00},
{0xFF88, 0xFF73, 0x000B, 0x0000, 0x009F, 0x00E8, 0xF8, 0xF7, 0x7E, 0x00},
{0xFFD2, 0xFF87, 0x000B, 0x0000, 0x03F0, 0x03F0, 0x00, 0x00, 0x00, 0x00},
{0xFFD2, 0xFF87, 0x000B, 0x0000, 0x03F0, 0x03F0, 0x00, 0x00, 0x00, 0x00}
};
Vtx verts2CF8[] = {
{0x0028, 0x0013, 0x000B, 0x0000, 0x0198, 0x03F5, 0x3F, 0x27, 0x66, 0x00},
{0x001D, 0x0019, 0x000F, 0x0000, 0x012B, 0x0429, 0x3F, 0x27, 0x66, 0x00},
{0x0077, 0xFF98, 0x000F, 0x0000, 0x04BF, 0xFFD8, 0x40, 0x2C, 0x64, 0x00},
@@ -716,7 +720,9 @@ Vtx maybeverts2B18[] = {
{0x0043, 0xFF63, 0x000B, 0x0000, 0x03F0, 0x0010, 0x6B, 0xBE, 0x00, 0x00},
{0x000A, 0xFF63, 0x000B, 0x0000, 0x0010, 0x0010, 0x96, 0xBC, 0x00, 0x00},
{0x000A, 0xFF87, 0x000B, 0x0000, 0x0010, 0x03F0, 0x96, 0x44, 0x00, 0x00},
{0x0043, 0xFF87, 0x000B, 0x0000, 0x03F0, 0x03F0, 0x6B, 0x42, 0x00, 0x00},
{0x0043, 0xFF87, 0x000B, 0x0000, 0x03F0, 0x03F0, 0x6B, 0x42, 0x00, 0x00}
};
Vtx verts2DF8[] = {
{0xFFB4, 0x002D, 0x000F, 0x0000, 0xFCE9, 0x04D9, 0xF0, 0x41, 0x6B, 0x00},
{0xFFBF, 0x0033, 0x000F, 0x0000, 0xFD5D, 0x0504, 0xDB, 0x3D, 0x68, 0x00},
{0xFFBC, 0x0037, 0x000B, 0x0000, 0xFD40, 0x052D, 0xDB, 0x3D, 0x68, 0x00},
@@ -732,7 +738,9 @@ Vtx maybeverts2B18[] = {
{0xFFA6, 0x002B, 0x000F, 0x0000, 0xFC5F, 0x04C7, 0x00, 0x46, 0x69, 0x00},
{0xFF9D, 0x0031, 0x000B, 0x0000, 0xFC01, 0x04FB, 0x00, 0x46, 0x69, 0x00},
{0xFFA5, 0x0032, 0x000B, 0x0000, 0xFC56, 0x04FC, 0xFC, 0x44, 0x6A, 0x00},
{0xFFAB, 0x002C, 0x000F, 0x0000, 0xFC93, 0x04CA, 0xFC, 0x44, 0x6A, 0x00},
{0xFFAB, 0x002C, 0x000F, 0x0000, 0xFC93, 0x04CA, 0xFC, 0x44, 0x6A, 0x00}
};
Vtx verts2EF8[] = {
{0xFFB6, 0x0096, 0x000B, 0x0000, 0xFD01, 0x0857, 0xD7, 0xB2, 0x5A, 0x00},
{0xFFB8, 0x009A, 0x000F, 0x0000, 0xFD17, 0x0876, 0xD7, 0xB2, 0x5A, 0x00},
{0x0049, 0x0065, 0x000B, 0x0000, 0x02EB, 0x06B0, 0x4E, 0x00, 0x64, 0x00},
@@ -746,7 +754,9 @@ Vtx maybeverts2B18[] = {
{0xFFD8, 0x0065, 0x000F, 0x0000, 0xFE58, 0x06B1, 0xB2, 0x00, 0x64, 0x00},
{0xFFD4, 0x007B, 0x000F, 0x0000, 0xFE30, 0x076D, 0xB8, 0xE5, 0x64, 0x00},
{0xFFCF, 0x0079, 0x000B, 0x0000, 0xFDFD, 0x075E, 0xB8, 0xE5, 0x64, 0x00},
{0xFFC5, 0x008A, 0x000B, 0x0000, 0xFD96, 0x07EE, 0xC1, 0xCA, 0x5F, 0x00},
{0xFFC5, 0x008A, 0x000B, 0x0000, 0xFD96, 0x07EE, 0xC1, 0xCA, 0x5F, 0x00}
};
Vtx verts2FD8[] = {
{0x0045, 0x004D, 0x000B, 0x0000, 0x02C0, 0x05E5, 0x4A, 0xE8, 0x63, 0x00},
{0x0040, 0x004F, 0x000F, 0x0000, 0x028F, 0x05F7, 0x4A, 0xE8, 0x63, 0x00},
{0x0049, 0x0065, 0x000B, 0x0000, 0x02EB, 0x06B0, 0x4E, 0x00, 0x64, 0x00},
@@ -762,7 +772,9 @@ Vtx maybeverts2B18[] = {
{0x003B, 0x003A, 0x000B, 0x0000, 0x0259, 0x0540, 0x3D, 0xD2, 0x65, 0x00},
{0x002B, 0x0033, 0x000F, 0x0000, 0x01B9, 0x0504, 0x28, 0xC5, 0x68, 0x00},
{0x002E, 0x002E, 0x000B, 0x0000, 0x01D6, 0x04DC, 0x28, 0xC5, 0x68, 0x00},
{0x0023, 0x0028, 0x000B, 0x0000, 0x0166, 0x04AA, 0x14, 0xC2, 0x6C, 0x00},
{0x0023, 0x0028, 0x000B, 0x0000, 0x0166, 0x04AA, 0x14, 0xC2, 0x6C, 0x00}
};
Vtx verts30D8[] = {
{0xFFA7, 0x001E, 0x000B, 0x0000, 0xFC6C, 0x0451, 0xBE, 0xCE, 0x60, 0x00},
{0xFFB1, 0x0019, 0x000F, 0x0000, 0xFCCE, 0x0429, 0xC7, 0xD1, 0x66, 0x00},
{0xFFA6, 0x002B, 0x000F, 0x0000, 0xFC5F, 0x04C7, 0xBC, 0xE6, 0x67, 0x00},
@@ -776,7 +788,9 @@ Vtx maybeverts2B18[] = {
{0xFFB1, 0x0019, 0x000F, 0x0000, 0xFCCE, 0x0429, 0xBE, 0xDA, 0x64, 0x00},
{0xFFA7, 0x001E, 0x000B, 0x0000, 0xFC6C, 0x0451, 0xBE, 0xDA, 0x64, 0x00},
{0x0006, 0xFF93, 0x000B, 0x0000, 0x0041, 0xFFA8, 0xC1, 0xD5, 0x64, 0x00},
{0x000A, 0xFF98, 0x000F, 0x0000, 0x0062, 0xFFD8, 0xC1, 0xD5, 0x64, 0x00},
{0x000A, 0xFF98, 0x000F, 0x0000, 0x0062, 0xFFD8, 0xC1, 0xD5, 0x64, 0x00}
};
Vtx verts31B8[] = {
{0x0040, 0x007B, 0x000F, 0x0000, 0x028C, 0x076D, 0x49, 0x1B, 0x64, 0x00},
{0x0045, 0x007D, 0x000B, 0x0000, 0x02BF, 0x077C, 0x49, 0x1B, 0x64, 0x00},
{0xFF78, 0xFF73, 0x0007, 0x0000, 0x027D, 0x0117, 0xE2, 0xFF, 0x7B, 0x00},
@@ -790,7 +804,10 @@ Vtx maybeverts2B18[] = {
{0xFFA8, 0x00A4, 0x000B, 0x0000, 0xFC70, 0x08CD, 0x00, 0x49, 0x67, 0x00},
{0x0024, 0x009A, 0x000F, 0x0000, 0x016F, 0x0876, 0x1F, 0x43, 0x66, 0x00},
{0x0026, 0x009F, 0x000B, 0x0000, 0x0184, 0x08A1, 0x1F, 0x43, 0x66, 0x00},
{0x0038, 0x0091, 0x000B, 0x0000, 0x0242, 0x082A, 0x39, 0x33, 0x64, 0x00},
{0x0038, 0x0091, 0x000B, 0x0000, 0x0242, 0x082A, 0x39, 0x33, 0x64, 0x00}
};
Vtx verts3298[] = {
{0x0062, 0xFF48, 0x000B, 0x0000, 0xFE37, 0x00CB, 0x0C, 0xE4, 0x7B, 0x00},
{0xFFB3, 0xFF48, 0x000B, 0x0000, 0x016B, 0x00CB, 0xF4, 0xE4, 0x7B, 0x00},
{0xFFB3, 0xFF38, 0x0007, 0x0000, 0x016B, 0x00AF, 0xF4, 0xE1, 0x7A, 0x00},
@@ -806,7 +823,9 @@ Vtx maybeverts2B18[] = {
{0x0062, 0x00C9, 0x0007, 0x0000, 0xFE37, 0x0374, 0x01, 0x1E, 0x7B, 0x00},
{0x0063, 0x00B9, 0x000B, 0x0000, 0xFE37, 0x0358, 0x01, 0x1E, 0x7B, 0x00},
{0xFFB3, 0x00B9, 0x000B, 0x0000, 0x016B, 0x0358, 0x00, 0x1E, 0x7B, 0x00},
{0xFFB3, 0x00C9, 0x0007, 0x0000, 0x016B, 0x0374, 0x00, 0x1E, 0x7B, 0x00},
{0xFFB3, 0x00C9, 0x0007, 0x0000, 0x016B, 0x0374, 0x00, 0x1E, 0x7B, 0x00}
};
Vtx verts3398[] = {
{0xFFB3, 0x00B9, 0x000B, 0x0000, 0x016B, 0x0358, 0x00, 0x1E, 0x7B, 0x00},
{0x0062, 0x00C9, 0x0007, 0x0000, 0xFE37, 0x0374, 0x01, 0x1E, 0x7B, 0x00},
{0x0063, 0x00B9, 0x000B, 0x0000, 0xFE37, 0x0358, 0x01, 0x1E, 0x7B, 0x00},
@@ -822,7 +841,9 @@ Vtx maybeverts2B18[] = {
{0xFF7D, 0x00A3, 0x0007, 0x0000, 0x0265, 0x0332, 0xE5, 0x0C, 0x7B, 0x00},
{0xFF8C, 0x009D, 0x000B, 0x0000, 0x0223, 0x0326, 0xE5, 0x0C, 0x7B, 0x00},
{0xFF88, 0x008E, 0x000B, 0x0000, 0x0234, 0x030C, 0xE2, 0x01, 0x7B, 0x00},
{0xFF78, 0x008E, 0x0007, 0x0000, 0x027D, 0x030C, 0xE2, 0x01, 0x7B, 0x00},
{0xFF78, 0x008E, 0x0007, 0x0000, 0x027D, 0x030C, 0xE2, 0x01, 0x7B, 0x00}
};
Vtx verts3498[] = {
{0x0098, 0xFF5D, 0x0007, 0x0000, 0xFD3C, 0x00F1, 0x1B, 0xF4, 0x7B, 0x00},
{0x008B, 0xFF4A, 0x0007, 0x0000, 0xFD7A, 0x00CF, 0x15, 0xEB, 0x7B, 0x00},
{0x0080, 0xFF56, 0x000B, 0x0000, 0xFDAE, 0x00E3, 0x15, 0xEB, 0x7B, 0x00},
@@ -838,7 +859,9 @@ Vtx maybeverts2B18[] = {
{0x008E, 0xFF73, 0x000B, 0x0000, 0xFD6E, 0x0117, 0x1E, 0xFF, 0x7B, 0x00},
{0x009D, 0xFF73, 0x0007, 0x0000, 0xFD25, 0x0117, 0x1E, 0xFF, 0x7B, 0x00},
{0x009D, 0x008E, 0x0007, 0x0000, 0xFD25, 0x030C, 0x1E, 0x00, 0x7B, 0x00},
{0x008E, 0x008E, 0x000B, 0x0000, 0xFD6E, 0x030C, 0x1E, 0x00, 0x7B, 0x00},
{0x008E, 0x008E, 0x000B, 0x0000, 0xFD6E, 0x030C, 0x1E, 0x00, 0x7B, 0x00}
};
Vtx verts3598[] = {
{0xFFB3, 0xFF38, 0x0007, 0x0000, 0x016B, 0x00AF, 0x00, 0xE2, 0x7B, 0x00},
{0xFFB3, 0xFF48, 0x000B, 0x0000, 0x016B, 0x00CB, 0x00, 0xE2, 0x7B, 0x00},
{0x0062, 0x00D0, 0x0005, 0x0000, 0x02D8, 0x0381, 0x03, 0x1E, 0x7B, 0x00},
@@ -852,7 +875,10 @@ Vtx maybeverts2B18[] = {
{0xFF78, 0xFF73, 0x0007, 0x0000, 0x027D, 0x0117, 0xE2, 0xFF, 0x7B, 0x00},
{0xFF8B, 0xFF4A, 0x0007, 0x0000, 0x0227, 0x00CF, 0xEB, 0xEB, 0x7B, 0x00},
{0xFF96, 0xFF56, 0x000B, 0x0000, 0x01F3, 0x00E3, 0xEB, 0xEB, 0x7B, 0x00},
{0xFF9D, 0xFF3D, 0x0007, 0x0000, 0x01D0, 0x00B8, 0xF3, 0xE6, 0x7B, 0x00},
{0xFF9D, 0xFF3D, 0x0007, 0x0000, 0x01D0, 0x00B8, 0xF3, 0xE6, 0x7B, 0x00}
};
Vtx verts3678[] = {
{0xFFB3, 0xFF31, 0x0005, 0x0000, 0x0129, 0x00A2, 0xFD, 0xE2, 0x7B, 0x00},
{0x0062, 0xFF31, 0x0005, 0x0000, 0x02D8, 0x00A2, 0x03, 0xE2, 0x7B, 0x00},
{0x0062, 0xFF38, 0x0007, 0x0000, 0x02D8, 0x00AF, 0x03, 0xE2, 0x7B, 0x00},
@@ -868,7 +894,9 @@ Vtx maybeverts2B18[] = {
{0x009D, 0xFF73, 0x0007, 0x0000, 0x0367, 0x0117, 0x1E, 0xFD, 0x7B, 0x00},
{0x009D, 0x008E, 0x0007, 0x0000, 0x0367, 0x030C, 0x1E, 0x03, 0x7B, 0x00},
{0x00A5, 0x008E, 0x0005, 0x0000, 0x0379, 0x030C, 0x1E, 0x03, 0x7B, 0x00},
{0x00A5, 0xFF73, 0x0005, 0x0000, 0x0379, 0x0117, 0x1E, 0xFD, 0x7B, 0x00},
{0x00A5, 0xFF73, 0x0005, 0x0000, 0x0379, 0x0117, 0x1E, 0xFD, 0x7B, 0x00}
};
Vtx verts3778[] = {
{0xFF9D, 0xFF3D, 0x0007, 0x0000, 0x00F5, 0x00B8, 0xF4, 0xE5, 0x7B, 0x00},
{0xFF9B, 0xFF36, 0x0005, 0x0000, 0x00EE, 0x00AC, 0xF4, 0xE5, 0x7B, 0x00},
{0xFFB3, 0xFF31, 0x0005, 0x0000, 0x0129, 0x00A2, 0xFD, 0xE2, 0x7B, 0x00},
@@ -884,7 +912,9 @@ Vtx maybeverts2B18[] = {
{0x0062, 0xFF38, 0x0007, 0x0000, 0x02D8, 0x00AF, 0x03, 0xE2, 0x7B, 0x00},
{0x0062, 0xFF31, 0x0005, 0x0000, 0x02D8, 0x00A2, 0x03, 0xE2, 0x7B, 0x00},
{0x007B, 0xFF36, 0x0005, 0x0000, 0x0313, 0x00AC, 0x0C, 0xE5, 0x7B, 0x00},
{0x0078, 0xFF3D, 0x0007, 0x0000, 0x030C, 0x00B8, 0x0C, 0xE5, 0x7B, 0x00},
{0x0078, 0xFF3D, 0x0007, 0x0000, 0x030C, 0x00B8, 0x0C, 0xE5, 0x7B, 0x00}
};
Vtx verts3878[] = {
{0xFFB3, 0x00C9, 0x0007, 0x0000, 0x0129, 0x0374, 0xFD, 0x1D, 0x7B, 0x00},
{0xFFB3, 0x00D0, 0x0005, 0x0000, 0x0129, 0x0381, 0xFD, 0x1D, 0x7B, 0x00},
{0x0062, 0x00C9, 0x0007, 0x0000, 0x02D8, 0x0374, 0x03, 0x1E, 0x7B, 0x00},
@@ -898,7 +928,9 @@ Vtx maybeverts2B18[] = {
{0xFF71, 0x008E, 0x0005, 0x0000, 0x0088, 0x030C, 0xE2, 0x03, 0x7B, 0x00},
{0xFF85, 0x00BC, 0x0005, 0x0000, 0x00BA, 0x035D, 0xEB, 0x15, 0x7B, 0x00},
{0xFF8B, 0x00B6, 0x0007, 0x0000, 0x00C7, 0x0353, 0xEB, 0x15, 0x7B, 0x00},
{0xFF9D, 0x00C4, 0x0007, 0x0000, 0x00F5, 0x036B, 0xF2, 0x1A, 0x7B, 0x00},
{0xFF9D, 0x00C4, 0x0007, 0x0000, 0x00F5, 0x036B, 0xF2, 0x1A, 0x7B, 0x00}
};
Vtx verts3958[] = {
{0xFFB3, 0x00D0, 0x0005, 0x0000, 0x0364, 0x03BC, 0xF2, 0x7E, 0x00, 0x00},
{0x0062, 0x00D0, 0x0005, 0x0000, 0x0364, 0x03BC, 0x0E, 0x7E, 0x00, 0x00},
{0x0062, 0x00D0, 0xFFF4, 0x0000, 0x0190, 0x03BC, 0x0E, 0x7E, 0x00, 0x00},
@@ -914,7 +946,9 @@ Vtx maybeverts2B18[] = {
{0x008B, 0x00B6, 0x0007, 0x0000, 0x033A, 0x0353, 0x15, 0x15, 0x7B, 0x00},
{0x0078, 0x00C4, 0x0007, 0x0000, 0x030C, 0x036B, 0x0C, 0x1B, 0x7B, 0x00},
{0x007B, 0x00CB, 0x0005, 0x0000, 0x0313, 0x0377, 0x0C, 0x1B, 0x7B, 0x00},
{0x0090, 0x00BC, 0x0005, 0x0000, 0x0347, 0x035D, 0x15, 0x15, 0x7B, 0x00},
{0x0090, 0x00BC, 0x0005, 0x0000, 0x0347, 0x035D, 0x15, 0x15, 0x7B, 0x00}
};
Vtx verts3A58[] = {
{0x009F, 0xFF5A, 0x0005, 0x0000, 0x0364, 0x009D, 0x74, 0xCD, 0x00, 0x00},
{0x0090, 0xFF45, 0x0005, 0x0000, 0x0364, 0x006F, 0x59, 0xA7, 0x00, 0x00},
{0x0090, 0xFF45, 0xFFF4, 0x0000, 0x0190, 0x006F, 0x59, 0xA7, 0x00, 0x00},
@@ -930,7 +964,9 @@ Vtx maybeverts2B18[] = {
{0x00A5, 0xFF73, 0xFFF4, 0x0000, 0x0190, 0x00D1, 0x7E, 0xF2, 0x00, 0x00},
{0x00A5, 0xFF73, 0x0005, 0x0000, 0x0364, 0x00D1, 0x7E, 0xF2, 0x00, 0x00},
{0x00A5, 0x008E, 0xFFF4, 0x0000, 0x0190, 0x032F, 0x7E, 0x0E, 0x00, 0x00},
{0x00A5, 0x008E, 0x0005, 0x0000, 0x0364, 0x032F, 0x7E, 0x0E, 0x00, 0x00},
{0x00A5, 0x008E, 0x0005, 0x0000, 0x0364, 0x032F, 0x7E, 0x0E, 0x00, 0x00}
};
Vtx verts3B58[] = {
{0xFF76, 0xFF5A, 0x0005, 0x0000, 0x0364, 0x009D, 0x8C, 0xCD, 0x00, 0x00},
{0xFF71, 0xFF73, 0x0005, 0x0000, 0x0364, 0x00D1, 0x82, 0xF2, 0x00, 0x00},
{0xFF71, 0xFF73, 0xFFF4, 0x0000, 0x0190, 0x00D1, 0x82, 0xF2, 0x00, 0x00},
@@ -946,7 +982,9 @@ Vtx maybeverts2B18[] = {
{0xFF85, 0xFF45, 0xFFF4, 0x0000, 0x0190, 0x006F, 0xA7, 0xA7, 0x00, 0x00},
{0xFF85, 0xFF45, 0x0005, 0x0000, 0x0364, 0x006F, 0xA7, 0xA7, 0x00, 0x00},
{0xFF9B, 0xFF36, 0x0005, 0x0000, 0x0364, 0x004F, 0xCD, 0x8C, 0x00, 0x00},
{0xFF9B, 0xFF36, 0xFFF4, 0x0000, 0x0190, 0x004F, 0xCD, 0x8C, 0x00, 0x00},
{0xFF9B, 0xFF36, 0xFFF4, 0x0000, 0x0190, 0x004F, 0xCD, 0x8C, 0x00, 0x00}
};
Vtx verts3C58[] = {
{0x00A5, 0x008E, 0xFFF4, 0x0000, 0x0379, 0x030C, 0x1E, 0x03, 0x85, 0x00},
{0x00A5, 0xFF73, 0xFFF4, 0x0000, 0x0379, 0x0117, 0x1E, 0xFD, 0x85, 0x00},
{0x009D, 0xFF73, 0xFFF2, 0x0000, 0x0367, 0x0117, 0x1E, 0xFD, 0x85, 0x00},
@@ -962,7 +1000,9 @@ Vtx maybeverts2B18[] = {
{0xFFB3, 0x00D0, 0x0005, 0x0000, 0x0364, 0x03BC, 0xF2, 0x7E, 0x00, 0x00},
{0xFFB3, 0x00D0, 0xFFF4, 0x0000, 0x0190, 0x03BC, 0xF2, 0x7E, 0x00, 0x00},
{0xFF9B, 0x00CB, 0x0005, 0x0000, 0x0364, 0x03B0, 0xC5, 0x70, 0x00, 0x00},
{0xFF9B, 0x00CB, 0xFFF4, 0x0000, 0x0190, 0x03B0, 0xC5, 0x70, 0x00, 0x00},
{0xFF9B, 0x00CB, 0xFFF4, 0x0000, 0x0190, 0x03B0, 0xC5, 0x70, 0x00, 0x00}
};
Vtx verts3D58[] = {
{0x0078, 0x00C4, 0xFFF2, 0x0000, 0x030C, 0x036B, 0x0C, 0x1B, 0x85, 0x00},
{0x008B, 0x00B6, 0xFFF2, 0x0000, 0x033A, 0x0353, 0x15, 0x15, 0x85, 0x00},
{0x0090, 0x00BC, 0xFFF4, 0x0000, 0x0347, 0x035D, 0x15, 0x15, 0x85, 0x00},
@@ -978,7 +1018,9 @@ Vtx maybeverts2B18[] = {
{0x0062, 0x00C9, 0xFFF2, 0x0000, 0x02D8, 0x0374, 0x03, 0x1E, 0x85, 0x00},
{0x0062, 0x00D0, 0xFFF4, 0x0000, 0x02D8, 0x0381, 0x03, 0x1E, 0x85, 0x00},
{0xFFB3, 0x00D0, 0xFFF4, 0x0000, 0x0129, 0x0381, 0xFD, 0x1D, 0x85, 0x00},
{0xFFB3, 0x00C9, 0xFFF2, 0x0000, 0x0129, 0x0374, 0xFD, 0x1D, 0x85, 0x00},
{0xFFB3, 0x00C9, 0xFFF2, 0x0000, 0x0129, 0x0374, 0xFD, 0x1D, 0x85, 0x00}
};
Vtx verts3E58[] = {
{0xFF71, 0x008E, 0xFFF4, 0x0000, 0x0088, 0x030C, 0xE2, 0x03, 0x85, 0x00},
{0xFF78, 0xFF73, 0xFFF2, 0x0000, 0x009A, 0x0117, 0xE2, 0xFD, 0x85, 0x00},
{0xFF7D, 0xFF5D, 0xFFF2, 0x0000, 0x00A6, 0x00F1, 0xE5, 0xF4, 0x85, 0x00},
@@ -994,7 +1036,9 @@ Vtx maybeverts2B18[] = {
{0xFF76, 0x00A6, 0xFFF4, 0x0000, 0x0095, 0x0337, 0xE5, 0x0C, 0x85, 0x00},
{0xFF7D, 0x00A3, 0xFFF2, 0x0000, 0x00A6, 0x0332, 0xE5, 0x0C, 0x85, 0x00},
{0xFF85, 0x00BC, 0xFFF4, 0x0000, 0x00BA, 0x035D, 0xEB, 0x15, 0x85, 0x00},
{0xFF8A, 0x00B6, 0xFFF2, 0x0000, 0x00C7, 0x0353, 0xEB, 0x15, 0x85, 0x00},
{0xFF8A, 0x00B6, 0xFFF2, 0x0000, 0x00C7, 0x0353, 0xEB, 0x15, 0x85, 0x00}
};
Vtx verts3F58[] = {
{0x00A5, 0xFF73, 0xFFF4, 0x0000, 0x0379, 0x0117, 0x1E, 0xFD, 0x85, 0x00},
{0x008B, 0xFF4A, 0xFFF2, 0x0000, 0x033A, 0x00CF, 0x15, 0xEB, 0x85, 0x00},
{0x0090, 0xFF45, 0xFFF4, 0x0000, 0x0347, 0x00C6, 0x15, 0xEB, 0x85, 0x00},
@@ -1010,7 +1054,9 @@ Vtx maybeverts2B18[] = {
{0x0098, 0xFF5D, 0xFFF2, 0x0000, 0x035B, 0x00F1, 0x1B, 0xF4, 0x85, 0x00},
{0x009F, 0xFF5A, 0xFFF4, 0x0000, 0x036C, 0x00EC, 0x1B, 0xF4, 0x85, 0x00},
{0xFFB3, 0xFF31, 0xFFF4, 0x0000, 0x0129, 0x00A2, 0xFD, 0xE2, 0x85, 0x00},
{0xFFB3, 0xFF38, 0xFFF2, 0x0000, 0x0129, 0x00AF, 0xFD, 0xE2, 0x85, 0x00},
{0xFFB3, 0xFF38, 0xFFF2, 0x0000, 0x0129, 0x00AF, 0xFD, 0xE2, 0x85, 0x00}
};
Vtx verts4058[] = {
{0x009D, 0xFF73, 0xFFF2, 0x0000, 0x000A, 0x00A5, 0x09, 0xF8, 0x82, 0x00},
{0x0098, 0xFF5D, 0xFFF2, 0x0000, 0x001B, 0x0071, 0x08, 0xF7, 0x82, 0x00},
{0x008B, 0xFF4A, 0xFFF2, 0x0000, 0x0049, 0x0043, 0x07, 0xF6, 0x82, 0x00},
@@ -1026,7 +1072,9 @@ Vtx maybeverts2B18[] = {
{0x0098, 0x00A3, 0xFFF2, 0x0000, 0x001B, 0x038E, 0x08, 0x09, 0x82, 0x00},
{0x008B, 0x00B6, 0xFFF2, 0x0000, 0x0049, 0x03BC, 0x07, 0x0A, 0x82, 0x00},
{0x0078, 0x00C4, 0xFFF2, 0x0000, 0x0089, 0x03DD, 0x06, 0x0B, 0x82, 0x00},
{0x0062, 0x00C9, 0xFFF2, 0x0000, 0x00D3, 0x03E9, 0x05, 0x0B, 0x82, 0x00},
{0x0062, 0x00C9, 0xFFF2, 0x0000, 0x00D3, 0x03E9, 0x05, 0x0B, 0x82, 0x00}
};
Vtx verts4158[] = {
{0x001D, 0x0019, 0x000F, 0x0000, 0x0241, 0x0391, 0x07, 0xF7, 0x7E, 0x00},
{0x0012, 0x002B, 0x000F, 0x0000, 0x021C, 0x0419, 0x08, 0xF7, 0x7E, 0x00},
{0xFFA6, 0x002B, 0x000F, 0x0000, 0x00A8, 0x0419, 0xF4, 0xFD, 0x7E, 0x00},
@@ -1042,7 +1090,9 @@ Vtx maybeverts2B18[] = {
{0x000A, 0xFF98, 0x000F, 0x0000, 0x01FE, 0xFFDE, 0x01, 0xF4, 0x7E, 0x00},
{0xFFB1, 0x0019, 0x000F, 0x0000, 0x00CD, 0x0391, 0xF6, 0xFA, 0x7E, 0x00},
{0xFF78, 0x008E, 0xFFF2, 0x0000, 0x03F6, 0x035A, 0xF7, 0x08, 0x82, 0x00},
{0xFF78, 0xFF73, 0xFFF2, 0x0000, 0x03F6, 0x00A5, 0xF7, 0xF8, 0x82, 0x00},
{0xFF78, 0xFF73, 0xFFF2, 0x0000, 0x03F6, 0x00A5, 0xF7, 0xF8, 0x82, 0x00}
};
Vtx verts4258[] = {
{0x0037, 0x003D, 0x000F, 0x0000, 0x0299, 0x049B, 0x0C, 0xFF, 0x7E, 0x00},
{0x0040, 0x004F, 0x000F, 0x0000, 0x02B8, 0x051D, 0x0C, 0x01, 0x7E, 0x00},
{0xFFD4, 0x004F, 0x000F, 0x0000, 0x0144, 0x051D, 0xF4, 0x02, 0x7E, 0x00},
@@ -1058,7 +1108,9 @@ Vtx maybeverts2B18[] = {
{0xFFB8, 0x009A, 0x000F, 0x0000, 0x00E5, 0x0740, 0xF9, 0x09, 0x7E, 0x00},
{0xFFA8, 0x009E, 0x000F, 0x0000, 0x00AD, 0x0761, 0xF8, 0x09, 0x7E, 0x00},
{0x0010, 0x009E, 0x000F, 0x0000, 0x0215, 0x0761, 0x03, 0x0C, 0x7E, 0x00},
{0x0024, 0x009A, 0x000F, 0x0000, 0x0258, 0x0740, 0x05, 0x0B, 0x7E, 0x00},
{0x0024, 0x009A, 0x000F, 0x0000, 0x0258, 0x0740, 0x05, 0x0B, 0x7E, 0x00}
};
Vtx verts4358[] = {
{0xFFBF, 0x0033, 0x000F, 0x0000, 0x00FC, 0x044D, 0xF4, 0xFD, 0x7E, 0x00},
{0xFFB4, 0x002D, 0x000F, 0x0000, 0x00D6, 0x0428, 0xF5, 0xFC, 0x7E, 0x00},
{0xFFAB, 0x002C, 0x000F, 0x0000, 0x00B9, 0x041B, 0xF4, 0xFD, 0x7E, 0x00},
@@ -1075,7 +1127,7 @@ Gfx D_020043E8[] = {
gsDPSetRenderMode(G_RM_AA_OPA_SURF, G_RM_AA_OPA_SURF2),
gsDPSetCombineLERP(TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0, TEXEL0, 0, PRIMITIVE, 0),
gsSPSetGeometryMode(G_LIGHTING | G_TEXTURE_GEN ),
gsSPVertex(maybeverts2B18, 16, 0),
gsSPVertex(verts2B18, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(8, 11, 15, 0),
@@ -1090,7 +1142,7 @@ Gfx D_020043E8[] = {
gsSP1Triangle(8, 3, 4, 0),
gsSP1Triangle(8, 4, 5, 0),
gsSP1Triangle(8, 5, 6, 0),
gsSPVertex(0x02002C18, 14, 0),
gsSPVertex(verts2C18, 14, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(7, 10, 11, 0),
@@ -1123,7 +1175,7 @@ Gfx DL_RAREWARETEXT[] = {
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 342, 5, 0, G_TX_WRAP, 0, 5, G_TX_WRAP, 0, 5),
gsDPSetTileSize(5, 2, 2, 2, 2),
gsDPSetRenderMode(G_RM_PASS, G_RM_OPA_SURF2),
gsSPVertex(0x02002C18, 14, 0),
gsSPVertex(verts2C18, 14, 0),
gsSP1Triangle(13, 6, 0, 0),
gsSP1Triangle(13, 0, 1, 0),
gsDPPipeSync(),
@@ -1164,7 +1216,7 @@ Gfx DL_RAREWARETEXT[] = {
gsDPSetTileSize(4, 2, 2, 6, 6),
gsDPSetTile(G_IM_FMT_RGBA, G_IM_SIZ_16b, 1, 0x156, 5, 0, G_TX_WRAP, 0, 5, G_TX_WRAP, 0, 5),
gsDPSetTileSize(5, 2, 2, 2, 2),
gsSPVertex(0x02002CF8, 16, 0),
gsSPVertex(verts2CF8, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsDPPipeSync(),
@@ -1198,14 +1250,14 @@ Gfx D_02004758[] = {
gsSPTexture(0x1C81, 0x1426, 0, 0, 1),
gsDPSetTileSize(0, 46, 116, 124, 124),
gsSPVertex(0x02002CF8, 16, 0),
gsSPVertex(verts2CF8, 16, 0),
gsSP1Triangle(7, 0, 1, 0),
gsSP1Triangle(7, 1, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02002DF8, 16, 0),
gsSPVertex(0x02002EF8, 14, 0),
gsSPVertex(verts2DF8, 16, 0),
gsSPVertex(verts2EF8, 14, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(11, 12, 7, 0),
@@ -1217,7 +1269,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSPVertex(0x02002FD8, 16, 0),
gsSPVertex(verts2FD8, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(11, 9, 8, 0),
gsSP1Triangle(11, 8, 15, 0),
@@ -1231,7 +1283,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(1, 2, 3, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSPVertex(0x020030D8, 14, 0),
gsSPVertex(verts30D8, 14, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(10, 11, 12, 0),
gsSP1Triangle(10, 12, 13, 0),
@@ -1239,7 +1291,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(6, 1, 2, 0),
gsSP1Triangle(3, 4, 5, 0),
gsSPVertex(0x020031B8, 14, 0),
gsSPVertex(verts31B8, 14, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(11, 12, 9, 0),
@@ -1251,7 +1303,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSPVertex(0x02003298, 16, 0),
gsSPVertex(verts3298, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 14, 13, 0),
@@ -1261,7 +1313,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02003398, 16, 0),
gsSPVertex(verts3398, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 14, 13, 0),
@@ -1273,7 +1325,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSPVertex(0x02003498, 16, 0),
gsSPVertex(verts3498, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(8, 11, 15, 0),
@@ -1287,7 +1339,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(5, 3, 4, 0),
gsSP1Triangle(5, 4, 6, 0),
gsSPVertex(0x02003598, 14, 0),
gsSPVertex(verts3598, 14, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(11, 12, 8, 0),
@@ -1299,7 +1351,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSPVertex(0x02003678, 16, 0),
gsSPVertex(verts3678, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 14, 13, 0),
@@ -1311,7 +1363,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(12, 5, 6, 0),
gsSP1Triangle(12, 6, 15, 0),
gsSPVertex(0x02003778, 16, 0),
gsSPVertex(verts3778, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(11, 15, 14, 0),
@@ -1325,7 +1377,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(4, 5, 6, 0),
gsSP1Triangle(4, 6, 3, 0),
gsSPVertex(0x02003878, 14, 0),
gsSPVertex(verts3878, 14, 0),
gsSP1Triangle(7, 8, 9, 0),
gsSP1Triangle(7, 9, 10, 0),
gsSP1Triangle(11, 9, 8, 0),
@@ -1337,7 +1389,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(2, 3, 4, 0),
gsSP1Triangle(2, 4, 5, 0),
gsSPVertex(0x02003958, 16, 0),
gsSPVertex(verts3958, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 14, 13, 0),
@@ -1351,7 +1403,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02003A58, 16, 0),
gsSPVertex(verts3A58, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(8, 11, 15, 0),
@@ -1367,7 +1419,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02003B58, 16, 0),
gsSPVertex(verts3B58, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 11, 10, 0),
@@ -1383,7 +1435,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSPVertex(0x02003C58, 16, 0),
gsSPVertex(verts3C58, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 11, 10, 0),
@@ -1395,7 +1447,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02003D58, 16, 0),
gsSPVertex(verts3D58, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(15, 14, 13, 0),
@@ -1409,7 +1461,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSPVertex(0x02003E58, 16, 0),
gsSPVertex(verts3E58, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(11, 10, 15, 0),
@@ -1423,7 +1475,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(3, 2, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02003F58, 16, 0),
gsSPVertex(verts3F58, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(10, 9, 15, 0),
@@ -1437,7 +1489,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(5, 4, 3, 0),
gsSP1Triangle(5, 3, 6, 0),
gsSPVertex(0x02004058, 16, 0),
gsSPVertex(verts4058, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(8, 11, 15, 0),
@@ -1453,7 +1505,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(8, 4, 5, 0),
gsSP1Triangle(8, 5, 6, 0),
gsSPVertex(0x02004158, 16, 0),
gsSPVertex(verts4158, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(8, 11, 15, 0),
@@ -1465,7 +1517,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(3, 4, 5, 0),
gsSP1Triangle(3, 5, 6, 0),
gsSPVertex(0x02004258, 16, 0),
gsSPVertex(verts4258, 16, 0),
gsSP1Triangle(8, 9, 10, 0),
gsSP1Triangle(8, 10, 11, 0),
gsSP1Triangle(8, 15, 14, 0),
@@ -1478,7 +1530,7 @@ Gfx D_02004758[] = {
gsSP1Triangle(0, 2, 3, 0),
gsSP1Triangle(4, 5, 6, 0),
gsSPVertex(0x02004358, 9, 0),
gsSPVertex(verts4358, 9, 0),
gsSP1Triangle(5, 6, 7, 0),
gsSP1Triangle(5, 7, 8, 0),
gsSP1Triangle(5, 8, 4, 0),
+6 -6
View File
@@ -3752,8 +3752,8 @@ void crashSetBuffers2(u16 *buffer1, u16 *buffer2)
}
extern stagesetup *_load_resource_named_to_membank();
f32 g_scale_1_0_item_related = 1.0f;
extern stagesetup *_fileNameLoadToBank();
f32 g_g_DoorScale = 1.0f;
char *setup_text_pointers[] = {
NULL,
NULL,
@@ -3990,7 +3990,7 @@ void proplvreset2(s32 stageID)
bnoprop = tokenFind(1, "-noprop") == 0;
}
g_scale_1_0_item_related = 1.0f;
g_g_DoorScale = 1.0f;
// for each itme
itementries_1 = PitemZ_entries;
@@ -4020,9 +4020,9 @@ void proplvreset2(s32 stageID)
strcat(ptrsp174, "mp_");
}
strcat(ptrsp174, *textptr + 1);
resource = _load_resource_named_to_membank(ptrsp174, 1, 0x100, 4);
resource = _fileNameLoadToBank(ptrsp174, 1, 0x100, 4);
g_ptrStageSetupFile = resource;
load_mission_text_bank(get_textbank_number_for_stagenum(stageID));
langLoadToBank(langGetLangBankIndexFromStagenum(stageID));
g_CurrentSetup.pathwaypoints = resource->pathwaypoints;
g_CurrentSetup.waypointgroups = resource->waypointgroups;
g_CurrentSetup.intro = resource->intro;
@@ -4348,7 +4348,7 @@ void proplvreset2(s32 stageID)
}
break;
case PROPDEF_DOOR_SCALE: // switch 1
g_scale_1_0_item_related = ((GlobalDoorScaleRecord *)prop)->Scale / 65536.0f;
g_g_DoorScale = ((GlobalDoorScaleRecord *)prop)->Scale / 65536.0f;
break;
case PROPDEF_COLLECTABLE: // switch 1
if ((bnoprop != 0) && ((prop->flags2 & phi_s4_2) == 0))
+4 -4
View File
@@ -24,12 +24,12 @@ da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_imp_all_p.s
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_ash_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_sho_all_p.seg
46774d70127cae35b898f5b94246c77f6e239a71 build/u/assets/obseg/bg/bg_ame_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_oat_all_p.seg
70ac79017821950bc71d0f5ea0148cde1825a615 build/u/assets/obseg/bg/bg_rit_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_len_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_rit_all_p.seg
70ac79017821950bc71d0f5ea0148cde1825a615 build/u/assets/obseg/bg/bg_oat_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_lip_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_lee_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_ear_all_p.seg
53ea3a1252992714b8f09235909390c001a3f3b8 build/u/assets/obseg/bg/bg_lip_all_p.seg
53ea3a1252992714b8f09235909390c001a3f3b8 build/u/assets/obseg/bg/bg_len_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_pam_all_p.seg
da39a3ee5e6b4b0d3255bfef95601890afd80709 build/u/assets/obseg/bg/bg_wax_all_p.seg
f4e72081570eae7ec26d1fcca157b762f686f465 build/u/assets/obseg/brief/UbriefarchZ.rz
+4 -4
View File
@@ -26,12 +26,12 @@
7148064,0,assets/obseg/bg/bg_ash_all_p.bin,0,1
7148064,0,assets/obseg/bg/bg_lue_all_p.bin,0,1
7148064,40800,assets/obseg/bg/bg_ame_all_p.bin,0,1
7188864,0,assets/obseg/bg/bg_rit_all_p.bin,0,0
7188864,28240,assets/obseg/bg/bg_oat_all_p.bin,0,1
7188864,0,assets/obseg/bg/bg_oat_all_p.bin,0,0
7188864,28240,assets/obseg/bg/bg_rit_all_p.bin,0,1
7217104,0,assets/obseg/bg/bg_ear_all_p.bin,0,0
7217104,0,assets/obseg/bg/bg_lee_all_p.bin,0,0
7217104,0,assets/obseg/bg/bg_lip_all_p.bin,0,0
7217104,4000,assets/obseg/bg/bg_len_all_p.bin,0,1
7217104,0,assets/obseg/bg/bg_len_all_p.bin,0,0
7217104,4000,assets/obseg/bg/bg_lip_all_p.bin,0,1
7221104,0,assets/obseg/bg/bg_wax_all_p.bin,0,0
7221104,0,assets/obseg/bg/bg_pam_all_p.bin,0,0
7221104,9344,assets/obseg/chr/CarmourguardZ,1,1
1 4385440 69104 assets/obseg/bg/bg_sev_all_p.bin 0 0
26 7148064 0 assets/obseg/bg/bg_ash_all_p.bin 0 1
27 7148064 0 assets/obseg/bg/bg_lue_all_p.bin 0 1
28 7148064 40800 assets/obseg/bg/bg_ame_all_p.bin 0 1
29 7188864 0 assets/obseg/bg/bg_rit_all_p.bin assets/obseg/bg/bg_oat_all_p.bin 0 0
30 7188864 28240 assets/obseg/bg/bg_oat_all_p.bin assets/obseg/bg/bg_rit_all_p.bin 0 1
31 7217104 0 assets/obseg/bg/bg_ear_all_p.bin 0 0
32 7217104 0 assets/obseg/bg/bg_lee_all_p.bin 0 0
33 7217104 0 assets/obseg/bg/bg_lip_all_p.bin assets/obseg/bg/bg_len_all_p.bin 0 0
34 7217104 4000 assets/obseg/bg/bg_len_all_p.bin assets/obseg/bg/bg_lip_all_p.bin 0 1
35 7221104 0 assets/obseg/bg/bg_wax_all_p.bin 0 0
36 7221104 0 assets/obseg/bg/bg_pam_all_p.bin 0 0
37 7221104 9344 assets/obseg/chr/CarmourguardZ 1 1
+9 -9
View File
@@ -4,7 +4,7 @@
1202144,1482432,assets/animationtable_entries.bin,0,0
2684576,59360,assets/animationtable_data.bin,0,0
2743936,5120,assets/ge007.u.29D160.Globalimagetable.bin,0,0
2749056,26608,assets/Globalimagetable_commandblock.bin,0,0
2749056,26608,assets/rarewarelogo.bin,0,0
2775664,107904,assets/ge007.u.2A4D50.usedby7F008DE4.bin,0,1
2883568,20992,assets/ramrom/ramrom_Dam_1.bin,0,1
2904560,8144,assets/ramrom/ramrom_Dam_2.bin,0,1
@@ -20,10 +20,10 @@
3007632,6576,assets/ramrom/ramrom_Frigate_1.bin,0,1
3014208,13536,assets/ramrom/ramrom_Frigate_2.bin,0,1
3027744,15856,assets/ramrom/ramrom_Train.bin,0,1
3043600,676,assets/font/font_first_font_table_controller_small.bin,0,0
3044276,8716,assets/font/font_second_font_table_controller_small.bin,0,0
3052992,676,assets/font/font_first_font_table_controller_large.bin,0,0
3053668,12956,assets/font/font_second_font_table_controller_large.bin,0,0
3043600,676,assets/font/fontBankGothic_kerning.bin,0,0
3044276,8716,assets/font/fontZurichBold_fontchartable.bin,0,0
3052992,676,assets/font/fontZurichBold_kerning.bin,0,0
3053668,12956,assets/font/fontZurichBold_fontchartable.bin,0,0
3066624,23488,assets/music/sfx.ctl,0,1
3090112,797360,assets/music/sfx.tbl,0,1
3887472,17312,assets/music/instruments.ctl,0,1
@@ -119,12 +119,12 @@
7191392,0,assets/obseg/bg/bg_ash_all_p.bin,0,1
7191392,0,assets/obseg/bg/bg_sho_all_p.bin,0,1
7191392,40800,assets/obseg/bg/bg_ame_all_p.bin,0,0
7232192,0,assets/obseg/bg/bg_oat_all_p.bin,0,1
7232192,28240,assets/obseg/bg/bg_rit_all_p.bin,0,0
7260432,0,assets/obseg/bg/bg_len_all_p.bin,0,1
7232192,0,assets/obseg/bg/bg_rit_all_p.bin,0,1
7232192,28240,assets/obseg/bg/bg_oat_all_p.bin,0,0
7260432,0,assets/obseg/bg/bg_lip_all_p.bin,0,1
7260432,0,assets/obseg/bg/bg_lee_all_p.bin,0,1
7260432,0,assets/obseg/bg/bg_ear_all_p.bin,0,1
7260432,4000,assets/obseg/bg/bg_lip_all_p.bin,0,0
7260432,4000,assets/obseg/bg/bg_len_all_p.bin,0,0
7264432,0,assets/obseg/bg/bg_pam_all_p.bin,0,1
7264432,0,assets/obseg/bg/bg_wax_all_p.bin,0,1
7264432,9344,assets/obseg/chr/CarmourguardZ,1,1
1 1148320 192 assets/ge007.u.117880.jfont_dl.bin 0 0
4 1202144 1482432 assets/animationtable_entries.bin 0 0
5 2684576 59360 assets/animationtable_data.bin 0 0
6 2743936 5120 assets/ge007.u.29D160.Globalimagetable.bin 0 0
7 2749056 26608 assets/Globalimagetable_commandblock.bin assets/rarewarelogo.bin 0 0
8 2775664 107904 assets/ge007.u.2A4D50.usedby7F008DE4.bin 0 1
9 2883568 20992 assets/ramrom/ramrom_Dam_1.bin 0 1
10 2904560 8144 assets/ramrom/ramrom_Dam_2.bin 0 1
20 3007632 6576 assets/ramrom/ramrom_Frigate_1.bin 0 1
21 3014208 13536 assets/ramrom/ramrom_Frigate_2.bin 0 1
22 3027744 15856 assets/ramrom/ramrom_Train.bin 0 1
23 3043600 676 assets/font/font_first_font_table_controller_small.bin assets/font/fontBankGothic_kerning.bin 0 0
24 3044276 8716 assets/font/font_second_font_table_controller_small.bin assets/font/fontZurichBold_fontchartable.bin 0 0
25 3052992 676 assets/font/font_first_font_table_controller_large.bin assets/font/fontZurichBold_kerning.bin 0 0
26 3053668 12956 assets/font/font_second_font_table_controller_large.bin assets/font/fontZurichBold_fontchartable.bin 0 0
27 3066624 23488 assets/music/sfx.ctl 0 1
28 3090112 797360 assets/music/sfx.tbl 0 1
29 3887472 17312 assets/music/instruments.ctl 0 1
119 7191392 0 assets/obseg/bg/bg_ash_all_p.bin 0 1
120 7191392 0 assets/obseg/bg/bg_sho_all_p.bin 0 1
121 7191392 40800 assets/obseg/bg/bg_ame_all_p.bin 0 0
122 7232192 0 assets/obseg/bg/bg_oat_all_p.bin assets/obseg/bg/bg_rit_all_p.bin 0 1
123 7232192 28240 assets/obseg/bg/bg_rit_all_p.bin assets/obseg/bg/bg_oat_all_p.bin 0 0
124 7260432 0 assets/obseg/bg/bg_len_all_p.bin assets/obseg/bg/bg_lip_all_p.bin 0 1
125 7260432 0 assets/obseg/bg/bg_lee_all_p.bin 0 1
126 7260432 0 assets/obseg/bg/bg_ear_all_p.bin 0 1
127 7260432 4000 assets/obseg/bg/bg_lip_all_p.bin assets/obseg/bg/bg_len_all_p.bin 0 0
128 7264432 0 assets/obseg/bg/bg_pam_all_p.bin 0 1
129 7264432 0 assets/obseg/bg/bg_wax_all_p.bin 0 1
130 7264432 9344 assets/obseg/chr/CarmourguardZ 1 1
+9 -9
View File
@@ -4,7 +4,7 @@
1198784,1482432,assets/animationtable_entries.bin,0,0
2681216,59360,assets/animationtable_data.bin,0,0
2740576,2760,assets/ge007.u.29D160.Globalimagetable.bin,0,0
2745696,26608,assets/Globalimagetable_commandblock.bin,0,0
2745696,26608,assets/rarewarelogo.bin,0,0
2772304,107904,assets/ge007.u.2A4D50.usedby7F008DE4.bin,0,1
2880208,20992,assets/ramrom/ramrom_Dam_1.bin,0,1
2901200,8144,assets/ramrom/ramrom_Dam_2.bin,0,1
@@ -20,10 +20,10 @@
3004272,6576,assets/ramrom/ramrom_Frigate_1.bin,0,1
3010848,13536,assets/ramrom/ramrom_Frigate_2.bin,0,1
3024384,15856,assets/ramrom/ramrom_Train.bin,0,1
3040240,676,assets/font/font_first_font_table_controller_small.bin,0,0
3040916,8716,assets/font/font_second_font_table_controller_small.bin,0,0
3049632,676,assets/font/font_first_font_table_controller_large.bin,0,0
3050308,12956,assets/font/font_second_font_table_controller_large.bin,0,0
3040240,676,assets/font/fontBankGothic_kerning.bin,0,0
3040916,8716,assets/font/fontBankGothic_fontchartable.bin,0,0
3049632,676,assets/font/fontZurichBold_kerning.bin,0,0
3050308,12956,assets/font/fontZurichBold_fontchartable.bin,0,0
3063264,23488,assets/music/sfx.ctl,0,1
3086752,797360,assets/music/sfx.tbl,0,1
3884112,17312,assets/music/instruments.ctl,0,1
@@ -120,12 +120,12 @@
7188032,0,assets/obseg/bg/bg_ash_all_p.bin,0,1
7188032,0,assets/obseg/bg/bg_sho_all_p.bin,0,1
7188032,40800,assets/obseg/bg/bg_ame_all_p.bin,0,0
7228832,0,assets/obseg/bg/bg_oat_all_p.bin,0,1
7228832,28240,assets/obseg/bg/bg_rit_all_p.bin,0,0
7257072,0,assets/obseg/bg/bg_len_all_p.bin,0,1
7228832,0,assets/obseg/bg/bg_rit_all_p.bin,0,1
7228832,28240,assets/obseg/bg/bg_oat_all_p.bin,0,0
7257072,0,assets/obseg/bg/bg_lip_all_p.bin,0,1
7257072,0,assets/obseg/bg/bg_lee_all_p.bin,0,1
7257072,0,assets/obseg/bg/bg_ear_all_p.bin,0,1
7257072,4000,assets/obseg/bg/bg_lip_all_p.bin,0,0
7257072,4000,assets/obseg/bg/bg_len_all_p.bin,0,0
7261072,0,assets/obseg/bg/bg_pam_all_p.bin,0,1
7261072,0,assets/obseg/bg/bg_wax_all_p.bin,0,1
7261072,9344,assets/obseg/chr/CarmourguardZ.bin,1,1
1 1144960 192 assets/ge007.u.117880.jfont_dl.bin 0 0
4 1198784 1482432 assets/animationtable_entries.bin 0 0
5 2681216 59360 assets/animationtable_data.bin 0 0
6 2740576 2760 assets/ge007.u.29D160.Globalimagetable.bin 0 0
7 2745696 26608 assets/Globalimagetable_commandblock.bin assets/rarewarelogo.bin 0 0
8 2772304 107904 assets/ge007.u.2A4D50.usedby7F008DE4.bin 0 1
9 2880208 20992 assets/ramrom/ramrom_Dam_1.bin 0 1
10 2901200 8144 assets/ramrom/ramrom_Dam_2.bin 0 1
20 3004272 6576 assets/ramrom/ramrom_Frigate_1.bin 0 1
21 3010848 13536 assets/ramrom/ramrom_Frigate_2.bin 0 1
22 3024384 15856 assets/ramrom/ramrom_Train.bin 0 1
23 3040240 676 assets/font/font_first_font_table_controller_small.bin assets/font/fontBankGothic_kerning.bin 0 0
24 3040916 8716 assets/font/font_second_font_table_controller_small.bin assets/font/fontBankGothic_fontchartable.bin 0 0
25 3049632 676 assets/font/font_first_font_table_controller_large.bin assets/font/fontZurichBold_kerning.bin 0 0
26 3050308 12956 assets/font/font_second_font_table_controller_large.bin assets/font/fontZurichBold_fontchartable.bin 0 0
27 3063264 23488 assets/music/sfx.ctl 0 1
28 3086752 797360 assets/music/sfx.tbl 0 1
29 3884112 17312 assets/music/instruments.ctl 0 1
120 7188032 0 assets/obseg/bg/bg_ash_all_p.bin 0 1
121 7188032 0 assets/obseg/bg/bg_sho_all_p.bin 0 1
122 7188032 40800 assets/obseg/bg/bg_ame_all_p.bin 0 0
123 7228832 0 assets/obseg/bg/bg_oat_all_p.bin assets/obseg/bg/bg_rit_all_p.bin 0 1
124 7228832 28240 assets/obseg/bg/bg_rit_all_p.bin assets/obseg/bg/bg_oat_all_p.bin 0 0
125 7257072 0 assets/obseg/bg/bg_len_all_p.bin assets/obseg/bg/bg_lip_all_p.bin 0 1
126 7257072 0 assets/obseg/bg/bg_lee_all_p.bin 0 1
127 7257072 0 assets/obseg/bg/bg_ear_all_p.bin 0 1
128 7257072 4000 assets/obseg/bg/bg_lip_all_p.bin assets/obseg/bg/bg_len_all_p.bin 0 0
129 7261072 0 assets/obseg/bg/bg_pam_all_p.bin 0 1
130 7261072 0 assets/obseg/bg/bg_wax_all_p.bin 0 1
131 7261072 9344 assets/obseg/chr/CarmourguardZ.bin 1 1
+5 -5
View File
@@ -638,11 +638,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/e/src/game/null_007970.o
7b22a2783a019bcd60f173947237c811,.text,build/e/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/game/objecthandler_1.o
e130944f728e41b7ccd6730873dc6bb9,.rodata,build/e/src/game/objecthandler_1.o
7b22a2783a019bcd60f173947237c811,.text,build/e/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/e/src/game/model.o
e130944f728e41b7ccd6730873dc6bb9,.rodata,build/e/src/game/model.o
b9ecfe8ecc3ef965e425146c53659a76,.text,build/e/src/game/objecthandler_2.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/e/src/game/objecthandler_2.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/e/src/game/objecthandler_2.o
1 491aefb4d4b8ac93d91148b1ffba34ac .text build/e/src/aspboot.o
638 d41d8cd98f00b204e9800998ecf8427e .bss build/e/src/game/null_007970.o
639 d41d8cd98f00b204e9800998ecf8427e .data build/e/src/game/null_007970.o
640 d41d8cd98f00b204e9800998ecf8427e .rodata build/e/src/game/null_007970.o
641 7b22a2783a019bcd60f173947237c811 .text build/e/src/game/objecthandler_1.o build/e/src/game/model.o
642 d41d8cd98f00b204e9800998ecf8427e .code build/e/src/game/objecthandler_1.o build/e/src/game/model.o
643 d41d8cd98f00b204e9800998ecf8427e .bss build/e/src/game/objecthandler_1.o build/e/src/game/model.o
644 d41d8cd98f00b204e9800998ecf8427e .data build/e/src/game/objecthandler_1.o build/e/src/game/model.o
645 e130944f728e41b7ccd6730873dc6bb9 .rodata build/e/src/game/objecthandler_1.o build/e/src/game/model.o
646 b9ecfe8ecc3ef965e425146c53659a76 .text build/e/src/game/objecthandler_2.o
647 d41d8cd98f00b204e9800998ecf8427e .code build/e/src/game/objecthandler_2.o
648 d41d8cd98f00b204e9800998ecf8427e .bss build/e/src/game/objecthandler_2.o
+5 -5
View File
@@ -633,11 +633,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/j/src/game/null_007970.o
eb1d4282f3c092f900ae0384b32c45ff,.text,build/j/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/game/objecthandler_1.o
63392afd7ef8420cf22b9e1f4b947ac7,.rodata,build/j/src/game/objecthandler_1.o
eb1d4282f3c092f900ae0384b32c45ff,.text,build/j/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/j/src/game/model.o
63392afd7ef8420cf22b9e1f4b947ac7,.rodata,build/j/src/game/model.o
b9ecfe8ecc3ef965e425146c53659a76,.text,build/j/src/game/objecthandler_2.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/j/src/game/objecthandler_2.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/j/src/game/objecthandler_2.o
1 491aefb4d4b8ac93d91148b1ffba34ac .text build/j/src/aspboot.o
633 d41d8cd98f00b204e9800998ecf8427e .bss build/j/src/game/null_007970.o
634 d41d8cd98f00b204e9800998ecf8427e .data build/j/src/game/null_007970.o
635 d41d8cd98f00b204e9800998ecf8427e .rodata build/j/src/game/null_007970.o
636 eb1d4282f3c092f900ae0384b32c45ff .text build/j/src/game/objecthandler_1.o build/j/src/game/model.o
637 d41d8cd98f00b204e9800998ecf8427e .code build/j/src/game/objecthandler_1.o build/j/src/game/model.o
638 d41d8cd98f00b204e9800998ecf8427e .bss build/j/src/game/objecthandler_1.o build/j/src/game/model.o
639 d41d8cd98f00b204e9800998ecf8427e .data build/j/src/game/objecthandler_1.o build/j/src/game/model.o
640 63392afd7ef8420cf22b9e1f4b947ac7 .rodata build/j/src/game/objecthandler_1.o build/j/src/game/model.o
641 b9ecfe8ecc3ef965e425146c53659a76 .text build/j/src/game/objecthandler_2.o
642 d41d8cd98f00b204e9800998ecf8427e .code build/j/src/game/objecthandler_2.o
643 d41d8cd98f00b204e9800998ecf8427e .bss build/j/src/game/objecthandler_2.o
+13 -12
View File
@@ -52,9 +52,10 @@ SECTIONS
_alt_startSegmentRomStart = _startSegmentRomStart + 0x100000;
_alt_startSegmentStart = _startSegmentStart - 0x10000000 + 0x100000;
/* 0x70000450, 0x70020D90 001050-021990 */
BEGIN_SEG(code, _startSegmentRomEnd, 0x70000450) SUBALIGN(16)
BEGIN_SEG(code, _startSegmentRomEnd, (_startSegmentEnd - 0x10000000)) SUBALIGN(16)
{
#include "ld/lib.text.ld.inc"
}
@@ -125,13 +126,13 @@ SECTIONS
}
END_SEG(Globalimagetable)
BEGIN_SEG(Globalimagetablecmdblk, _GlobalimagetableSegmentRomEnd, 0x02000000)
BEGIN_SEG(rarewarelogo, _GlobalimagetableSegmentRomEnd, 0x02000000)
{
build/OUTCODE/assets/Globalimagetable_commandblock.o (.data);
build/OUTCODE/assets/rarewarelogo.o (.data);
}
END_SEG(Globalimagetablecmdblk)
END_SEG(rarewarelogo)
BEGIN_SEG(romfiles2, _GlobalimagetablecmdblkSegmentRomEnd, _romfiles2SegmentRomStart)
BEGIN_SEG(romfiles2, _rarewarelogoSegmentRomEnd, _romfiles2SegmentRomStart)
{
build/OUTCODE/assets/romfiles2.o (.data);
}
@@ -144,21 +145,21 @@ SECTIONS
END_SEG(ramromfiles)
BEGIN_SEG(fonttablectlsmall1, _ramromfilesSegmentRomEnd, _fonttablectlsmall1SegmentRomStart)
BEGIN_SEG(fontbankgothic, _ramromfilesSegmentRomEnd, 0)
{
build/OUTCODE/assets/font/font_first_font_table_controller_small.o (.data);
build/OUTCODE/assets/font/fontBankGothic.o (.data);
}
END_SEG(fonttablectlsmall1)
END_SEG(fontbankgothic)
BEGIN_SEG(fonttablectllarge1, _fonttablectlsmall1SegmentRomEnd, _fonttablectllarge1SegmentRomStart)
BEGIN_SEG(fontzurichbold, _fontbankgothicSegmentRomEnd, 0)
{
build/OUTCODE/assets/font/font_first_font_table_controller_large.o (.data);
build/OUTCODE/assets/font/fontZurichBold.o (.data);
}
END_SEG(fonttablectllarge1)
END_SEG(fontzurichbold)
BEGIN_SEG(musicfiles, _fonttablectllarge1SegmentRomEnd, _musicfilesSegmentRomStart)
BEGIN_SEG(musicfiles, _fontzurichboldSegmentRomEnd, _musicfilesSegmentRomStart)
{
build/OUTCODE/assets/music/sfx.ctl.o (.data);
build/OUTCODE/assets/music/sfx.tbl.o (.data);
+5 -5
View File
@@ -633,11 +633,11 @@ d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/game/null_007970.o
d41d8cd98f00b204e9800998ecf8427e,.rodata,build/u/src/game/null_007970.o
eb1d4282f3c092f900ae0384b32c45ff,.text,build/u/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/game/objecthandler_1.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/game/objecthandler_1.o
63392afd7ef8420cf22b9e1f4b947ac7,.rodata,build/u/src/game/objecthandler_1.o
eb1d4282f3c092f900ae0384b32c45ff,.text,build/u/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/game/model.o
d41d8cd98f00b204e9800998ecf8427e,.data,build/u/src/game/model.o
63392afd7ef8420cf22b9e1f4b947ac7,.rodata,build/u/src/game/model.o
b9ecfe8ecc3ef965e425146c53659a76,.text,build/u/src/game/objecthandler_2.o
d41d8cd98f00b204e9800998ecf8427e,.code,build/u/src/game/objecthandler_2.o
d41d8cd98f00b204e9800998ecf8427e,.bss,build/u/src/game/objecthandler_2.o
1 491aefb4d4b8ac93d91148b1ffba34ac .text build/u/src/aspboot.o
633 d41d8cd98f00b204e9800998ecf8427e .bss build/u/src/game/null_007970.o
634 d41d8cd98f00b204e9800998ecf8427e .data build/u/src/game/null_007970.o
635 d41d8cd98f00b204e9800998ecf8427e .rodata build/u/src/game/null_007970.o
636 eb1d4282f3c092f900ae0384b32c45ff .text build/u/src/game/objecthandler_1.o build/u/src/game/model.o
637 d41d8cd98f00b204e9800998ecf8427e .code build/u/src/game/objecthandler_1.o build/u/src/game/model.o
638 d41d8cd98f00b204e9800998ecf8427e .bss build/u/src/game/objecthandler_1.o build/u/src/game/model.o
639 d41d8cd98f00b204e9800998ecf8427e .data build/u/src/game/objecthandler_1.o build/u/src/game/model.o
640 63392afd7ef8420cf22b9e1f4b947ac7 .rodata build/u/src/game/objecthandler_1.o build/u/src/game/model.o
641 b9ecfe8ecc3ef965e425146c53659a76 .text build/u/src/game/objecthandler_2.o
642 d41d8cd98f00b204e9800998ecf8427e .code build/u/src/game/objecthandler_2.o
643 d41d8cd98f00b204e9800998ecf8427e .bss build/u/src/game/objecthandler_2.o
+18
View File
@@ -69,6 +69,16 @@
/***
*** 4 Triangles
***/
/**
* Remarks:
* Ryan: I've been learning a lot about PD's graphics microcode lately. It's likely that the decision to
* implement tri4 was to reduce memory usage in RDRAM. But to fit 4 tris in one command they had to limit
* themselves to 4 bits per vertex, which means they can only address up to 16 vertices. They could have
* fit 32 vertices in DMEM if they wanted. In stock microcodes the vertex IDs are pre-multiplied by 10
* which makes it easy for the RSP to calculate the vertex offset in the DMEM buffer (it can use a
* single shift operation). But because PD is using a compact format there's more work for the RSP to
* calculate it. So they've sacrificed RSP performance for memory saving.
*/
//cannot use 2tri with 4tri, so lets just make sure they are undefined so errors happen.
#undef gSP2Triangles
@@ -186,6 +196,14 @@
_g->words.w1 = _SHIFTL(0x06, 24, 8) | _SHIFTL((c), 14, 10) | _SHIFTL((d), 2, 10); \
}
#define gDPLoadTLUTCmd2(pkt, tile, count) \
{ \
Gfx *_g = (Gfx *)pkt; \
\
_g->words.w0 = _SHIFTL(G_LOADTLUT, 24, 8) | 0xff0; \
_g->words.w1 = _SHIFTL((tile), 24, 3) | _SHIFTL((count), 14, 10) | 0xff0;\
}
/*
* Texturing macro Overrides
*/
+4 -2
View File
@@ -45,9 +45,9 @@
/* Half of PI. (PI/2)*/
#define M_HALF_PI M_PI_F / 2
#define M_HALF_PI (M_PI_F / 2)
/* 3 Halves of PI. (3*(PI/2))*/
#define M_THREE_HALF_PI 3 * M_HALF_PI
#define M_THREE_HALF_PI (3 * M_HALF_PI)
#define M_U16_MAX_VALUE_F 65536.0f
@@ -68,6 +68,8 @@
#define RAD2BYTE(RAD) (char)(256.0f / M_TAU_F * (RAD))
/* Converts an angle from Degrees to Radians */
#define DegToRad(DEG) (float)((DEG) * M_TAU_F / 360.0f)
/* Converts an angle from Degrees to Radians with only one multiply*/
#define DegToRad1Fact(DEG) (float)((DEG) * (float)(M_TAU / 360.0))
/* Converts and halves an angle from Degrees to Radians */
#define mDegToHalfRad(x) ((x * M_PI_F) / 360.0f)
/* Converts an angle from Radians to Degrees */
+1 -1
View File
@@ -71,7 +71,7 @@
build/OUTCODE/src/game/gun.o (.bss);
build/OUTCODE/src/game/bondwalk2.o (.bss);
build/OUTCODE/src/game/objecthandler.o (.bss);
build/OUTCODE/src/game/objecthandler_1.o (.bss);
build/OUTCODE/src/game/model.o (.bss);
build/OUTCODE/src/game/objecthandler_2.o (.bss);
build/OUTCODE/src/game/othermodemicrocode.o (.bss);
build/OUTCODE/src/game/bondview.o (.bss);
+1 -1
View File
@@ -71,7 +71,7 @@
build/OUTCODE/src/game/gun.o (.data);
build/OUTCODE/src/game/bondwalk2.o (.data);
build/OUTCODE/src/game/objecthandler.o (.data);
build/OUTCODE/src/game/objecthandler_1.o (.data);
build/OUTCODE/src/game/model.o (.data);
build/OUTCODE/src/game/objecthandler_2.o (.data);
build/OUTCODE/src/game/othermodemicrocode.o (.data);
build/OUTCODE/src/game/bondview.o (.data);
+1 -1
View File
@@ -71,7 +71,7 @@
build/OUTCODE/src/game/gun.o (.rodata);
build/OUTCODE/src/game/bondwalk2.o (.rodata);
build/OUTCODE/src/game/objecthandler.o (.rodata);
build/OUTCODE/src/game/objecthandler_1.o (.rodata);
build/OUTCODE/src/game/model.o (.rodata);
build/OUTCODE/src/game/objecthandler_2.o (.rodata);
build/OUTCODE/src/game/othermodemicrocode.o (.rodata);
build/OUTCODE/src/game/bondview.o (.rodata);
+1 -1
View File
@@ -71,7 +71,7 @@
build/OUTCODE/src/game/gun.o (.text);
build/OUTCODE/src/game/bondwalk2.o (.text);
build/OUTCODE/src/game/objecthandler.o (.text);
build/OUTCODE/src/game/objecthandler_1.o (.text);
build/OUTCODE/src/game/model.o (.text);
build/OUTCODE/src/game/objecthandler_2.o (.text);
build/OUTCODE/src/game/othermodemicrocode.o (.text);
build/OUTCODE/src/game/bondview.o (.text);
+9 -9
View File
@@ -50,15 +50,7 @@ Additionally [qemu-irix](https://github.com/n64decomp/qemu-irix/releases) is nee
sudo dpkg -i qemu-irix-2.11.0-2169-g32ab296eef_amd64.deb
```
#### Step 2: Recompile IDO
Recompile IDO for your platform for increased compile speed
```bash
cd tools/ido5.3_recomp
make
```
#### Step 3: Clone the repository
#### Step 2: Clone the repository
Clone this repository where you wish to have the project, with a command such as:
@@ -66,6 +58,14 @@ Clone this repository where you wish to have the project, with a command such as
git clone https://github.com/kholdfuzion/goldeneye_src
```
#### Step 3: Recompile IDO
Recompile IDO for your platform for increased compile speed
```bash
cd tools/ido5.3_recomp
make
```
#### Step 4: Prepare baserom(s) for asset extraction
Place an unmodified copy of your existing NTSC (US) ROM inside the root of this repository with the name `baserom.u.z64`.
+30 -30
View File
@@ -4862,7 +4862,7 @@ _AI_CMD(
ObjectRecord *obj = objFindByTagId(ai->val[0]);
if (obj && obj->prop)
{
if (!do_something_if_object_destroyed(obj))
if (!objGetDestroyedLevel(obj))
{
f32 damage = ((obj->damage - obj->maxdamage) + 1) / 250.0f;
maybe_detonate_object(obj, damage, &obj->runtime_pos, 29, -1);
@@ -5049,7 +5049,7 @@ _AI_CMD(
if (obj && obj->prop)
{
bool a = collect_or_interact_object(obj->prop, 0);
sub_GAME_7F03C2BC(obj->prop, a);
propExecuteTickOperation(obj->prop, a);
}
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
break;
@@ -5094,7 +5094,7 @@ _AI_CMD(
{
if (obj->prop->parent)
{
sub_GAME_7F04C044(obj->prop);
objDetach(obj->prop);
}
else
{
@@ -5102,7 +5102,7 @@ _AI_CMD(
chrpropDelist(obj->prop);
chrpropDisable(obj->prop);
}
if (obj->type != PROPDEF_COLLECTABLE || !sub_GAME_7F051E1C(obj, chr))
if (obj->type != PROPDEF_COLLECTABLE || !chrEquipWeapon(obj, chr))
{
chrpropReparent(obj->prop, chr->prop);
}
@@ -9122,7 +9122,7 @@ _AI_CMD(
bool ok = FALSE;
if (ChrEntityp && ChrEntityp->prop && ChrEntityp->model)
{
ok = chrTryEquipHat(ChrEntityp, modelnum, flags);
ok = hatCreateForChr(ChrEntityp, modelnum, flags);
}
if (ok)
{
@@ -9223,7 +9223,7 @@ _AI_CMD(
if (hatprop)
{
hatobj = hatprop->obj;
chrTryEquipHat(clone, hatobj->obj, 0);
hatCreateForChr(clone, hatobj->obj, 0);
}
}
/*PD extras
@@ -9952,15 +9952,15 @@ _AI_CMD(
if (obj->type == PROPDEF_MONITOR)
{
MonitorObjRecord *sm = (MonitorObjRecord *) obj;
monitorSetImageByNum(&sm->Monitor.image, ai->val[2]);
monitorSetImageByNum(&sm->Monitor.cmdlist, ai->val[2]);
}
else if (obj->type == PROPDEF_MULTI_MONITOR)
{
u8 slot = ai->val[1];
if (slot < 4)
{
multimonitorobj *mm = (multimonitorobj *) obj;
monitorSetImageByNum(&mm->Monitor[slot].image, ai->val[2]);
MultiMonitorObjRecord *mm = (MultiMonitorObjRecord *) obj;
monitorSetImageByNum(&mm->Monitor[slot].cmdlist, ai->val[2]);
}
}
}
@@ -10295,15 +10295,15 @@ _AI_CMD(
_AI_CMD(
{
AIRecord1 * ai = AiListp + Offset;
set_unset_bitflags(4, FALSE);
set_unset_ammo_on_screen_setting(2, FALSE);
gunSetSightVisible(GUNSIGHTREASON_NOCONTROL, FALSE);
gunSetGunAmmoVisible(GUNAMMOREASON_NOCONTROL, FALSE);
if (!(PLAYERFLAG_NOCONTROL & ai->val))
{
hudmsgsSetOff(PLAYERFLAG_NOCONTROL);
}
if (!(ai->val & PLAYERFLAG_LOCKCONTROLS))
{
sub_GAME_7F08A944(PLAYERFLAG_NOCONTROL);
bondviewSetUpperTextDisplayFlag(PLAYERFLAG_NOCONTROL);
}
if (!(ai->val & PLAYERFLAG_NOTIMER))
{
@@ -10342,10 +10342,10 @@ _AI_CMD(
_AI_CMD(
{
set_unset_bitflags(4, TRUE);
set_unset_ammo_on_screen_setting(2, TRUE);
gunSetSightVisible(GUNSIGHTREASON_NOCONTROL, TRUE);
gunSetGunAmmoVisible(GUNAMMOREASON_NOCONTROL, TRUE);
hudmsgsSetOn(PLAYERFLAG_NOCONTROL);
sub_GAME_7F08A928(2);
bondviewClearUpperTextDisplayFlag(2);
countdownTimerSetVisible(16, TRUE);
D_800364B0 = TRUE;
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
@@ -10588,9 +10588,9 @@ _AI_CMD(
s32 num;
for (num = get_numguards() - 1; num >= 0; num--)
{
if (ptr_guard_data[num].model != NULL)
if (g_ChrSlots[num].model != NULL)
{
ptr_guard_data[num].chrflags |= CHRFLAG_HIDDEN;
g_ChrSlots[num].chrflags |= CHRFLAG_HIDDEN;
}
}
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
@@ -10625,7 +10625,7 @@ _AI_CMD(
s32 num;
for (num = get_numguards() - 1; num >= 0; num--)
{
ptr_guard_data[num].chrflags &= ~CHRFLAG_HIDDEN;
g_ChrSlots[num].chrflags &= ~CHRFLAG_HIDDEN;
}
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
break;
@@ -10916,9 +10916,9 @@ _AI_CMD(
_AI_CMD(
{
AIRecord * ai = AiListp + Offset;
flt_CODE_bss_80079990.x = (s8) ai->val[0];
flt_CODE_bss_80079990.y = 0;
flt_CODE_bss_80079990.z = (s8) ai->val[1];
g_ForceBondMoveOffset.x = (s8) ai->val[0];
g_ForceBondMoveOffset.y = 0;
g_ForceBondMoveOffset.z = (s8) ai->val[1];
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
break;
})
@@ -11838,15 +11838,15 @@ _AI_CMD(
sub_GAME_7F03FDA8(obj->prop);
if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT)
{
obj->unk6C->flags |= 0x601;
sub_GAME_7F03FE14(obj->prop);
matrix_4x4_set_identity(&obj->unk6C->m);
obj->unk6C->pos.x = 0;
obj->unk6C->pos.y = 1.0f / CHRLV_FRAMERATE_F;
obj->unk6C->pos.z = 0;
obj->unk6C->vec.x = 0;
obj->unk6C->vec.y = 0.29166666f;
obj->unk6C->vec.z = 0;
obj->projectile->flags |= 0x601;
projectileSetSticky(obj->prop);
matrix_4x4_set_identity(&obj->projectile->mtx);
obj->projectile->speed.x = 0;
obj->projectile->speed.y = 1.0f / CHRLV_FRAMERATE_F;
obj->projectile->speed.z = 0;
obj->projectile->unk10.x = 0;
obj->projectile->unk10.y = 0.29166666f;
obj->projectile->unk10.z = 0;
}
}
Offset += CAT(CAT(AI_, CMDNAME), _LENGTH);
+2 -1
View File
@@ -3,6 +3,7 @@
#include "sched.h"
#include "audi.h"
#include "thread_config.h"
#include "bondgame.h"
/**
* EU .data, offset from start of data_seg : 0x23A0
@@ -392,7 +393,7 @@ void amCreateAudioManager(ALSynConfig* alconf)
g_AudioManager.cmdList[j] = (Acmd *)alHeapDBAlloc(0, 0, alconf->heap, 1, MAX_ACMD_SIZE * sizeof(Acmd));
}
osCreateThread(&g_AudioManager.audioThread, AUDI_THREAD_ID, &amMain, 0, (void*)set_stack_entry((u8*)(&sp_audi), 0x1000), AUDI_THREAD_PRIORITY);
osCreateThread(&g_AudioManager.audioThread, AUDI_THREAD_ID, &amMain, 0, (void*)setSPToEnd((u8*)(&sp_audi), sizeof(sp_audi)), AUDI_THREAD_PRIORITY);
}
/**
+188 -175
View File
@@ -228,6 +228,16 @@
#define _BONDAICOMMANDS_H_
#include <ultra64.h>
// Reverse endieness, to write things like 0x700 to be translated into 0x00, 0x07.
// This is not compatible with aicommands2.h
#define CharArrayFrom16Rev(input) (input) & 0x00FF, ((input) & 0xFF00) >> 8
#define CharArrayFrom24Rev(input) (input) & 0x0000FF, ((input) & 0x00FF00) >> 8, ((input) & 0xFF0000) >> 16
#define CharArrayFrom32Rev(input) (input) & 0x000000FF, ((input) & 0x0000FF00) >> 8, ((input) & 0x00FF0000) >> 16, ((input) & 0xFF000000) >> 24
// "standard" aicommands2.h definition
#define CharArrayFrom16(input) ((input) & 0xFF00) >> 8, (input) & 0x00FF
#define CharArrayFrom24(input) ((input) & 0xFF0000) >> 16, ((input) & 0x00FF00) >> 8, (input) & 0x0000FF
#define CharArrayFrom32(input) ((input) & 0xFF000000) >> 24, ((input) & 0x00FF0000) >> 16, ((input) & 0x0000FF00) >> 8, (input) & 0x000000FF
@@ -554,101 +564,102 @@ IF_VA(NOT(IS_EMPTY(CASE_CONTENT1)))(IF_VA(NOT(IS_EMPTY(CASE_CONTENT2)))(Label(lb
IF_VA(NOT(IS_EMPTY(CASE_CONTENT0)))(IF_VA(NOT(IS_EMPTY(CASE_CONTENT1)))(Label(lblNext)) EXPAND_ARGS_STACK(CASE_CONTENT0)(lblDone) \
Label(lblDone))
#include "aicommands2.h"
#if 0
#if 1
//temporary thunking for ai names
#define DO(label_id) \
label(label_id) \
ai_sleep
// //temporary thunking for ai names
// #define DO(label_id) \
// label(label_id) \
// ai_sleep
#define LOOP(label) \
goto_first(label)
// #define LOOP(label) \
// goto_first(label)
#define CONTINUE(label) \
goto_first(label)
// #define CONTINUE(label) \
// goto_first(label)
#define YIELD_FOREVER(label_id) \
label(label_id) \
ai_sleep \
goto_first(label_id)
// #define YIELD_FOREVER(label_id) \
// label(label_id) \
// ai_sleep \
// goto_first(label_id)
#define RETURN(label_id)\
label(label_id) \
jump_to_return_ai_list \
ai_list_end
// #define RETURN(label_id)\
// label(label_id) \
// jump_to_return_ai_list \
// ai_list_end
/*=============================================================================
// ai command shortcuts
//===========================================================================*/
#define goto_loop_start(label_id) \
label(label_id) \
ai_sleep
// /*=============================================================================
// // ai command shortcuts
// //===========================================================================*/
// #define goto_loop_start(label_id) \
// label(label_id) \
// ai_sleep
#define goto_loop_repeat(label) \
goto_first(label)
// #define goto_loop_repeat(label) \
// goto_first(label)
#define goto_loop_infinite(label_id) \
label(label_id) \
ai_sleep \
goto_first(label_id)
// #define goto_loop_infinite(label_id) \
// label(label_id) \
// ai_sleep \
// goto_first(label_id)
#define random_generate_greater_than(byte, label) \
random_generate_seed \
if_random_seed_greater_than(byte, label)
// #define random_generate_greater_than(byte, label) \
// random_generate_seed \
// if_random_seed_greater_than(byte, label)
#define random_generate_less_than(byte, label) \
random_generate_seed \
if_random_seed_less_than(byte, label)
// #define random_generate_less_than(byte, label) \
// random_generate_seed \
// if_random_seed_less_than(byte, label)
#define if_guard_meters_to_bond_less_than(distance, label) \
if_guard_distance_to_bond_less_than((distance * 10U), label)
// #define if_guard_meters_to_bond_less_than(distance, label) \
// if_guard_distance_to_bond_less_than((distance * 10U), label)
#define if_guard_meters_to_bond_greater_than(distance, label) \
if_guard_distance_to_bond_greater_than((distance * 10U), label)
// #define if_guard_meters_to_bond_greater_than(distance, label) \
// if_guard_distance_to_bond_greater_than((distance * 10U), label)
#define if_chr_meters_to_pad_less_than(chr_num, distance, pad, label) \
if_chr_distance_to_pad_less_than(chr_num, (distance * 10U), pad, label)
// #define if_chr_meters_to_pad_less_than(chr_num, distance, pad, label) \
// if_chr_distance_to_pad_less_than(chr_num, (distance * 10U), pad, label)
#define if_chr_meters_to_pad_greater_than(chr_num, distance, pad, label) \
if_chr_distance_to_pad_greater_than(chr_num, (distance * 10U), pad, label)
// #define if_chr_meters_to_pad_greater_than(chr_num, distance, pad, label) \
// if_chr_distance_to_pad_greater_than(chr_num, (distance * 10U), pad, label)
#define if_guard_meters_to_chr_less_than(distance, chr_num, label) \
if_guard_distance_to_chr_less_than((distance * 10U), chr_num, label)
// #define if_guard_meters_to_chr_less_than(distance, chr_num, label) \
// if_guard_distance_to_chr_less_than((distance * 10U), chr_num, label)
#define if_guard_meters_to_chr_greater_than(distance, chr_num, label) \
if_guard_distance_to_chr_greater_than((distance * 10U), chr_num, label)
// #define if_guard_meters_to_chr_greater_than(distance, chr_num, label) \
// if_guard_distance_to_chr_greater_than((distance * 10U), chr_num, label)
#define guard_try_setting_chr_preset_to_guard_within_meters(distance, label) \
guard_try_setting_chr_preset_to_guard_within_distance((distance * 10U), label)
// #define guard_try_setting_chr_preset_to_guard_within_meters(distance, label) \
// guard_try_setting_chr_preset_to_guard_within_distance((distance * 10U), label)
#define if_bond_meters_to_pad_less_than(distance, pad, label) \
if_bond_distance_to_pad_less_than((distance * 10U), pad, label)
// #define if_bond_meters_to_pad_less_than(distance, pad, label) \
// if_bond_distance_to_pad_less_than((distance * 10U), pad, label)
#define if_bond_meters_to_pad_greater_than(distance, pad, label) \
if_bond_distance_to_pad_greater_than((distance * 10U), pad, label)
// #define if_bond_meters_to_pad_greater_than(distance, pad, label) \
// if_bond_distance_to_pad_greater_than((distance * 10U), pad, label)
#define debug_log_end \
'\0',
// #define debug_log_end \
// '\0',
#define if_local_timer_seconds_less_than(seconds, label) \
if_local_timer_less_than((SECS_TO_TIMER60(seconds)), label)
// #define if_local_timer_seconds_less_than(seconds, label) \
// if_local_timer_less_than((SECS_TO_TIMER60(seconds)), label)
#define if_local_timer_seconds_greater_than(seconds, label) \
if_local_timer_greater_than((SECS_TO_TIMER60(seconds)), label)
// #define if_local_timer_seconds_greater_than(seconds, label) \
// if_local_timer_greater_than((SECS_TO_TIMER60(seconds)), label)
#define camera_transition_from_bond \
bond_hide_weapons \
ai_sleep \
ai_sleep \
ai_sleep
// #define camera_transition_from_bond \
// bond_hide_weapons \
// ai_sleep \
// ai_sleep \
// ai_sleep
#define camera_transition_to_bond \
ai_sleep \
ai_sleep \
ai_sleep
// #define camera_transition_to_bond \
// ai_sleep \
// ai_sleep \
// ai_sleep
/*===========================================================================*/
/*=============================================================================
@@ -732,7 +743,7 @@ Label(lblDone))
#define jump_to_ai_list(chr_num, ai_list) \
jump_to_ai_list_ID, \
chr_num, \
CharArrayFrom16(ai_list),
CharArrayFrom16Rev(ai_list),
/*=============================================================================
// name: set_return_ai_list
@@ -745,7 +756,7 @@ Label(lblDone))
#define set_return_ai_list_LENGTH 0x03
#define set_return_ai_list(ai_list) \
set_return_ai_list_ID, \
CharArrayFrom16(ai_list),
CharArrayFrom16Rev(ai_list),
/*=============================================================================
// name: jump_to_return_ai_list
@@ -796,9 +807,9 @@ Label(lblDone))
#define guard_play_animation_LENGTH 0x09
#define guard_play_animation(animation_id, start_time30, end_time30, bitfield, interpol_time60) \
guard_play_animation_ID, \
CharArrayFrom16(animation_id), \
CharArrayFrom16(start_time30), \
CharArrayFrom16(end_time30), \
CharArrayFrom16Rev(animation_id), \
CharArrayFrom16Rev(start_time30), \
CharArrayFrom16Rev(end_time30), \
bitfield, \
interpol_time60,
@@ -926,8 +937,8 @@ Label(lblDone))
#define guard_try_fire_or_aim_at_target_LENGTH 0x06
#define guard_try_fire_or_aim_at_target(bitfield, target, label) \
guard_try_fire_or_aim_at_target_ID, \
CharArrayFrom16(bitfield), \
CharArrayFrom16(target), \
CharArrayFrom16Rev(bitfield), \
CharArrayFrom16Rev(target), \
label,
/*=============================================================================
@@ -942,8 +953,8 @@ Label(lblDone))
#define guard_try_fire_or_aim_at_target_kneel_LENGTH 0x06
#define guard_try_fire_or_aim_at_target_kneel(bitfield, target, label) \
guard_try_fire_or_aim_at_target_kneel_ID, \
CharArrayFrom16(bitfield), \
CharArrayFrom16(target), \
CharArrayFrom16Rev(bitfield), \
CharArrayFrom16Rev(target), \
label,
/*=============================================================================
@@ -959,8 +970,8 @@ Label(lblDone))
#define guard_try_fire_or_aim_at_target_update_LENGTH 0x06
#define guard_try_fire_or_aim_at_target_update(bitfield, target, label) \
guard_try_fire_or_aim_at_target_update_ID, \
CharArrayFrom16(bitfield), \
CharArrayFrom16(target), \
CharArrayFrom16Rev(bitfield), \
CharArrayFrom16Rev(target), \
label,
/*=============================================================================
@@ -976,8 +987,8 @@ Label(lblDone))
#define guard_try_facing_target_LENGTH 0x06
#define guard_try_facing_target(bitfield, target, label) \
guard_try_facing_target_ID, \
CharArrayFrom16(bitfield), \
CharArrayFrom16(target), \
CharArrayFrom16Rev(bitfield), \
CharArrayFrom16Rev(target), \
label,
/*=============================================================================
@@ -1039,7 +1050,7 @@ Label(lblDone))
#define guard_try_dropping_item_LENGTH 0x05
#define guard_try_dropping_item(prop_num, item_num, label) \
guard_try_dropping_item_ID, \
CharArrayFrom16(prop_num), \
CharArrayFrom16Rev(prop_num), \
item_num, \
label,
@@ -1052,7 +1063,7 @@ Label(lblDone))
#define guard_runs_to_pad_LENGTH 0x03
#define guard_runs_to_pad(pad) \
guard_runs_to_pad_ID, \
CharArrayFrom16(pad),
CharArrayFrom16Rev(pad),
/*=============================================================================
// name: guard_runs_to_pad_preset
@@ -1073,7 +1084,7 @@ Label(lblDone))
#define guard_walks_to_pad_LENGTH 0x03
#define guard_walks_to_pad(pad) \
guard_walks_to_pad_ID, \
CharArrayFrom16(pad),
CharArrayFrom16Rev(pad),
/*=============================================================================
// name: guard_sprints_to_pad
@@ -1084,7 +1095,7 @@ Label(lblDone))
#define guard_sprints_to_pad_LENGTH 0x03
#define guard_sprints_to_pad(pad) \
guard_sprints_to_pad_ID, \
CharArrayFrom16(pad),
CharArrayFrom16Rev(pad),
/*=============================================================================
// name: guard_start_patrol
@@ -1151,7 +1162,7 @@ Label(lblDone))
#define guard_try_triggering_alarm_at_pad_LENGTH 0x04
#define guard_try_triggering_alarm_at_pad(pad, label) \
guard_try_triggering_alarm_at_pad_ID, \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1590,7 +1601,7 @@ Label(lblDone))
#define if_room_containing_pad_is_on_screen_LENGTH 0x04
#define if_room_containing_pad_is_on_screen(pad, label) \
if_room_containing_pad_is_on_screen_ID, \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1707,7 +1718,7 @@ Label(lblDone))
#define if_guard_distance_to_bond_less_than_LENGTH 0x04
#define if_guard_distance_to_bond_less_than(distance, label) \
if_guard_distance_to_bond_less_than_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16Rev(distance), \
label,
/*=============================================================================
@@ -1721,7 +1732,7 @@ Label(lblDone))
#define if_guard_distance_to_bond_greater_than_LENGTH 0x04
#define if_guard_distance_to_bond_greater_than(distance, label) \
if_guard_distance_to_bond_greater_than_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16Rev(distance), \
label,
/*=============================================================================
@@ -1736,8 +1747,8 @@ Label(lblDone))
#define if_chr_distance_to_pad_less_than(chr_num, distance, pad, label) \
if_chr_distance_to_pad_less_than_ID, \
chr_num, \
CharArrayFrom16(distance), \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(distance), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1752,8 +1763,8 @@ Label(lblDone))
#define if_chr_distance_to_pad_greater_than(chr_num, distance, pad, label) \
if_chr_distance_to_pad_greater_than_ID, \
chr_num, \
CharArrayFrom16(distance), \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(distance), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1767,7 +1778,7 @@ Label(lblDone))
#define if_guard_distance_to_chr_less_than_LENGTH 0x05
#define if_guard_distance_to_chr_less_than(distance, chr_num, label) \
if_guard_distance_to_chr_less_than_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16Rev(distance), \
chr_num, \
label,
@@ -1782,7 +1793,7 @@ Label(lblDone))
#define if_guard_distance_to_chr_greater_than_LENGTH 0x05
#define if_guard_distance_to_chr_greater_than(distance, chr_num, label) \
if_guard_distance_to_chr_greater_than_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16Rev(distance), \
chr_num, \
label,
@@ -1800,7 +1811,7 @@ Label(lblDone))
#define guard_try_setting_chr_preset_to_guard_within_distance_LENGTH 0x04
#define guard_try_setting_chr_preset_to_guard_within_distance(distance, label) \
guard_try_setting_chr_preset_to_guard_within_distance_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16Rev(distance), \
label,
/*=============================================================================
@@ -1814,8 +1825,8 @@ Label(lblDone))
#define if_bond_distance_to_pad_less_than_LENGTH 0x06
#define if_bond_distance_to_pad_less_than(distance, pad, label) \
if_bond_distance_to_pad_less_than_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(distance), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1829,8 +1840,8 @@ Label(lblDone))
#define if_bond_distance_to_pad_greater_than_LENGTH 0x06
#define if_bond_distance_to_pad_greater_than(distance, pad, label) \
if_bond_distance_to_pad_greater_than_ID, \
CharArrayFrom16(distance), \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(distance), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1843,7 +1854,7 @@ Label(lblDone))
#define if_chr_in_room_with_pad(chr_num, pad, label) \
if_chr_in_room_with_pad_ID, \
chr_num, \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -1855,7 +1866,7 @@ Label(lblDone))
#define if_bond_in_room_with_pad_LENGTH 0x04
#define if_bond_in_room_with_pad(pad, label) \
if_bond_in_room_with_pad_ID, \
CharArrayFrom16(pad), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -2085,7 +2096,7 @@ Label(lblDone))
#define object_move_to_pad(object_tag, pad) \
object_move_to_pad_ID, \
object_tag, \
chrarray16(pad),
CharArrayFrom16Rev(pad),
/*=============================================================================
// name: door_open
@@ -2288,7 +2299,7 @@ Label(lblDone))
#define if_mission_time_less_than_LENGTH 0x04
#define if_mission_time_less_than(seconds, label) \
if_mission_time_less_than_ID, \
CharArrayFrom16(seconds), \
CharArrayFrom16Rev(seconds), \
label,
/*=============================================================================
@@ -2302,7 +2313,7 @@ Label(lblDone))
#define if_mission_time_greater_than_LENGTH 0x04
#define if_mission_time_greater_than(seconds, label) \
if_mission_time_greater_than_ID, \
CharArrayFrom16(seconds), \
CharArrayFrom16Rev(seconds), \
label,
/*=============================================================================
@@ -2316,7 +2327,7 @@ Label(lblDone))
#define if_system_power_time_less_than_LENGTH 0x04
#define if_system_power_time_less_than(minutes, label) \
if_system_power_time_less_than_ID, \
CharArrayFrom16(minutes), \
CharArrayFrom16Rev(minutes), \
label,
/*=============================================================================
@@ -2330,7 +2341,7 @@ Label(lblDone))
#define if_system_power_time_greater_than_LENGTH 0x04
#define if_system_power_time_greater_than(minutes, label) \
if_system_power_time_greater_than_ID, \
CharArrayFrom16(minutes), \
CharArrayFrom16Rev(minutes), \
label,
/*=============================================================================
@@ -2657,7 +2668,7 @@ Label(lblDone))
#define guard_set_hearing_scale_LENGTH 0x03
#define guard_set_hearing_scale(hearing_scale) \
guard_set_hearing_scale_ID, \
CharArrayFrom16(hearing_scale),
CharArrayFrom16Rev(hearing_scale),
/*=============================================================================
// name: guard_set_vision_range
@@ -2717,7 +2728,7 @@ Label(lblDone))
#define guard_set_health_total_LENGTH 0x03
#define guard_set_health_total(total_health) \
guard_set_health_total_ID, \
CharArrayFrom16(total_health),
CharArrayFrom16Rev(total_health),
/*=============================================================================
// name: guard_set_armour
@@ -2739,7 +2750,7 @@ Label(lblDone))
#define guard_set_armour_LENGTH 0x03
#define guard_set_armour(armour_value) \
guard_set_armour_ID, \
CharArrayFrom16(armour_value),
CharArrayFrom16Rev(armour_value),
/*=============================================================================
// name: guard_set_speed_rating
@@ -2895,7 +2906,7 @@ Label(lblDone))
#define objective_bitfield_set_on_LENGTH 0x05
#define objective_bitfield_set_on(bitfield) \
objective_bitfield_set_on_ID, \
CharArrayFrom32(bitfield)
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: objective_bitfield_set_off
@@ -2912,7 +2923,7 @@ Label(lblDone))
#define objective_bitfield_set_off_LENGTH 0x05
#define objective_bitfield_set_off(bitfield) \
objective_bitfield_set_off_ID, \
CharArrayFrom32(bitfield)
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: if_objective_bitfield_is_set_on
@@ -2925,7 +2936,7 @@ Label(lblDone))
#define if_objective_bitfield_is_set_on_LENGTH 0x06
#define if_objective_bitfield_is_set_on(bitfield, label) \
if_objective_bitfield_is_set_on_ID, \
CharArrayFrom32(bitfield), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -2941,7 +2952,7 @@ Label(lblDone))
#define guard_flags_set_on_LENGTH 0x05
#define guard_flags_set_on(bitfield) \
guard_flags_set_on_ID, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: guard_flags_set_off
@@ -2956,7 +2967,7 @@ Label(lblDone))
#define guard_flags_set_off_LENGTH 0x05
#define guard_flags_set_off(bitfield) \
guard_flags_set_off_ID, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: if_guard_flags_is_set_on
@@ -2971,7 +2982,7 @@ Label(lblDone))
#define if_guard_flags_is_set_on_LENGTH 0x06
#define if_guard_flags_is_set_on(bitfield, label) \
if_guard_flags_is_set_on_ID, \
CharArrayFrom32(bitfield), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -2987,7 +2998,7 @@ Label(lblDone))
#define chr_flags_set_on(chr_num, bitfield) \
chr_flags_set_on_ID, \
chr_num, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: chr_flags_set_off
@@ -3002,7 +3013,7 @@ Label(lblDone))
#define chr_flags_set_off(chr_num, bitfield) \
chr_flags_set_off_ID, \
chr_num, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: if_chr_flags_is_set_on
@@ -3017,7 +3028,7 @@ Label(lblDone))
#define if_chr_flags_is_set_on(chr_num, bitfield, label) \
if_chr_flags_is_set_on_ID, \
chr_num, \
CharArrayFrom32(bitfield), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -3032,7 +3043,7 @@ Label(lblDone))
#define object_flags_1_set_on(object_tag, bitfield) \
object_flags_1_set_on_ID, \
object_tag, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: object_flags_1_set_off
@@ -3046,7 +3057,7 @@ Label(lblDone))
#define object_flags_1_set_off(object_tag, bitfield) \
object_flags_1_set_off_ID, \
object_tag, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: if_object_flags_1_is_set_on
@@ -3060,7 +3071,7 @@ Label(lblDone))
#define if_object_flags_1_is_set_on(object_tag, bitfield, label) \
if_object_flags_1_is_set_on_ID, \
object_tag, \
CharArrayFrom32(bitfield), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -3075,7 +3086,7 @@ Label(lblDone))
#define object_flags_2_set_on(object_tag, bitfield) \
object_flags_2_set_on_ID, \
object_tag, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: object_flags_2_set_off
@@ -3089,7 +3100,7 @@ Label(lblDone))
#define object_flags_2_set_off(object_tag, bitfield) \
object_flags_2_set_off_ID, \
object_tag, \
CharArrayFrom32(bitfield),
CharArrayFrom32Rev(bitfield),
/*=============================================================================
// name: if_object_flags_2_is_set_on
@@ -3103,7 +3114,7 @@ Label(lblDone))
#define if_object_flags_2_is_set_on(object_tag, bitfield, label) \
if_object_flags_2_is_set_on_ID, \
object_tag, \
CharArrayFrom32(bitfield), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -3140,9 +3151,9 @@ Label(lblDone))
//===========================================================================*/
#define guard_set_pad_preset_ID 0xAB
#define guard_set_pad_preset_LENGTH 0x03
#define guard_set_pad_preset(chr_preset) \
#define guard_set_pad_preset(pad_preset) \
guard_set_pad_preset_ID, \
chrarray16(pad_preset),
CharArrayFrom16Rev(pad_preset),
/*=============================================================================
// name: chr_set_pad_preset
@@ -3151,10 +3162,10 @@ Label(lblDone))
//===========================================================================*/
#define chr_set_pad_preset_ID 0xAC
#define chr_set_pad_preset_LENGTH 0x04
#define chr_set_pad_preset(chr_num, chr_preset) \
#define chr_set_pad_preset(chr_num, pad_preset) \
chr_set_pad_preset_ID, \
chr_num, \
chrarray16(pad_preset),
CharArrayFrom16Rev(pad_preset),
/*=============================================================================
// name: debug_log
@@ -3246,7 +3257,7 @@ Label(lblDone))
#define if_local_timer_less_than_LENGTH 0x05
#define if_local_timer_less_than(time60, label) \
if_local_timer_less_than_ID, \
CharArrayFrom24(time60), \
CharArrayFrom24Rev(time60), \
label,
/*=============================================================================
@@ -3261,7 +3272,7 @@ Label(lblDone))
#define if_local_timer_greater_than_LENGTH 0x05
#define if_local_timer_greater_than(time60, label) \
if_local_timer_greater_than_ID, \
CharArrayFrom24(time60), \
CharArrayFrom24Rev(time60), \
label,
/*=============================================================================
@@ -3298,7 +3309,7 @@ Label(lblDone))
#define hud_countdown_set_LENGTH 0x03
#define hud_countdown_set(seconds) \
hud_countdown_set_ID, \
CharArrayFrom16(seconds),
CharArrayFrom16Rev(seconds),
/*=============================================================================
// name: hud_countdown_stop
@@ -3345,7 +3356,7 @@ Label(lblDone))
#define if_hud_countdown_less_than_LENGTH 0x04
#define if_hud_countdown_less_than(seconds, label) \
if_hud_countdown_less_than_ID, \
CharArrayFrom16(seconds), \
CharArrayFrom16Rev(seconds), \
label,
/*=============================================================================
@@ -3360,7 +3371,7 @@ Label(lblDone))
#define if_hud_countdown_greater_than_LENGTH 0x04
#define if_hud_countdown_greater_than(seconds, label) \
if_hud_countdown_greater_than_ID, \
CharArrayFrom16(seconds), \
CharArrayFrom16Rev(seconds), \
label,
/*=============================================================================
@@ -3377,9 +3388,9 @@ Label(lblDone))
chr_try_spawning_at_pad_ID, \
body_num, \
head_num, \
CharArrayFrom16(pad), \
CharArrayFrom16(ai_list), \
CharArrayFrom32(bitfield), \
CharArrayFrom16Rev(pad), \
CharArrayFrom16Rev(ai_list), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -3398,8 +3409,8 @@ Label(lblDone))
body_num, \
head_num, \
chr_num_target, \
CharArrayFrom16(ai_list), \
CharArrayFrom32(bitfield), \
CharArrayFrom16Rev(ai_list), \
CharArrayFrom32Rev(bitfield), \
label,
/*=============================================================================
@@ -3415,9 +3426,9 @@ Label(lblDone))
#define guard_try_spawning_item_LENGTH 0x09
#define guard_try_spawning_item(prop_num, item_num, prop_bitfield, label) \
guard_try_spawning_item_ID, \
CharArrayFrom16(prop_num), \
CharArrayFrom16Rev(prop_num), \
item_num, \
CharArrayFrom32(prop_bitfield), \
CharArrayFrom32Rev(prop_bitfield), \
label,
/*=============================================================================
@@ -3432,8 +3443,8 @@ Label(lblDone))
#define guard_try_spawning_hat_LENGTH 0x08
#define guard_try_spawning_hat(prop_num, prop_bitfield, label) \
guard_try_spawning_hat_ID, \
CharArrayFrom16(prop_num), \
CharArrayFrom32(prop_bitfield), \
CharArrayFrom16Rev(prop_num), \
CharArrayFrom32Rev(prop_bitfield), \
label,
/*=============================================================================
@@ -3449,7 +3460,7 @@ Label(lblDone))
#define chr_try_spawning_clone(chr_num, ai_list, label) \
chr_try_spawning_clone_ID, \
chr_num, \
CharArrayFrom16(ai_list), \
CharArrayFrom16Rev(ai_list), \
label,
/*=============================================================================
@@ -3464,7 +3475,7 @@ Label(lblDone))
#define text_print_bottom_LENGTH 0x03
#define text_print_bottom(text_slot) \
text_print_bottom_ID, \
chrarray16(text_slot),
CharArrayFrom16Rev(text_slot),
/*=============================================================================
// name: text_print_top
@@ -3478,7 +3489,7 @@ Label(lblDone))
#define text_print_top_LENGTH 0x03
#define text_print_top(text_slot) \
text_print_top_ID, \
chrarray16(text_slot),
CharArrayFrom16Rev(text_slot),
/*=============================================================================
// name: sfx_play
@@ -3495,7 +3506,7 @@ Label(lblDone))
#define sfx_play_LENGTH 0x04
#define sfx_play(sound_num, channel_num) \
sfx_play_ID, \
chrarray16(sound_num), \
CharArrayFrom16Rev(sound_num), \
channel_num,
/*=============================================================================
@@ -3512,7 +3523,7 @@ Label(lblDone))
sfx_emit_from_object_ID, \
channel_num, \
object_tag, \
CharArrayFrom16(vol_decay_time60),
CharArrayFrom16Rev(vol_decay_time60),
/*=============================================================================
// name: sfx_emit_from_pad
@@ -3527,8 +3538,8 @@ Label(lblDone))
#define sfx_emit_from_pad(channel_num, pad, vol_decay_time60) \
sfx_emit_from_pad_ID, \
channel_num, \
CharArrayFrom16(pad), \
CharArrayFrom16(vol_decay_time60),
CharArrayFrom16Rev(pad), \
CharArrayFrom16Rev(vol_decay_time60),
/*=============================================================================
// name: sfx_set_channel_volume
@@ -3543,8 +3554,8 @@ Label(lblDone))
#define sfx_set_channel_volume(channel_num, target_volume, transition_time60) \
sfx_set_channel_volume_ID, \
channel_num, \
CharArrayFrom16(target_volume), \
CharArrayFrom16(transition_time60),
CharArrayFrom16Rev(target_volume), \
CharArrayFrom16Rev(transition_time60),
/*=============================================================================
// name: sfx_fade_channel_volume
@@ -3559,8 +3570,8 @@ Label(lblDone))
#define sfx_fade_channel_volume(channel_num, fade_volume_percent, fade_time60) \
sfx_fade_channel_volume_ID, \
channel_num, \
CharArrayFrom16(fade_volume_percent), \
CharArrayFrom16(fade_time60),
CharArrayFrom16Rev(fade_volume_percent), \
CharArrayFrom16Rev(fade_time60),
/*=============================================================================
// name: sfx_stop_channel
@@ -3586,7 +3597,7 @@ Label(lblDone))
#define if_sfx_channel_volume_less_than(channel_num, volume, label) \
if_sfx_channel_volume_less_than_ID, \
channel_num, \
CharArrayFrom16(volume), \
CharArrayFrom16Rev(volume), \
label,
/*=============================================================================
@@ -3612,8 +3623,8 @@ Label(lblDone))
#define vehicle_speed_LENGTH 0x05
#define vehicle_speed(top_speed, acceleration_time60) \
vehicle_speed_ID, \
CharArrayFrom16(top_speed), \
CharArrayFrom16(acceleration_time60),
CharArrayFrom16Rev(top_speed), \
CharArrayFrom16Rev(acceleration_time60),
/*=============================================================================
// name: aircraft_rotor_speed
@@ -3627,8 +3638,8 @@ Label(lblDone))
#define aircraft_rotor_speed_LENGTH 0x05
#define aircraft_rotor_speed(rotor_speed, acceleration_time60) \
aircraft_rotor_speed_ID, \
CharArrayFrom16(rotor_speed), \
CharArrayFrom16(acceleration_time60),
CharArrayFrom16Rev(rotor_speed), \
CharArrayFrom16Rev(acceleration_time60),
/*=============================================================================
// name: if_camera_is_in_intro
@@ -3728,7 +3739,7 @@ Label(lblDone))
#define camera_look_at_bond_from_pad_LENGTH 0x03
#define camera_look_at_bond_from_pad(pad) \
camera_look_at_bond_from_pad_ID, \
CharArrayFrom16(pad),
CharArrayFrom16Rev(pad),
/*=============================================================================
// name: camera_switch
@@ -3747,8 +3758,8 @@ Label(lblDone))
#define camera_switch(object_tag, look_at_bond_flag, unused_flag) \
camera_switch_ID, \
object_tag, \
CharArrayFrom16(look_at_bond_flag), \
CharArrayFrom16(unused_flag),
CharArrayFrom16Rev(look_at_bond_flag), \
CharArrayFrom16Rev(unused_flag),
/*=============================================================================
// name: if_bond_y_pos_less_than
@@ -3763,7 +3774,7 @@ Label(lblDone))
#define if_bond_y_pos_less_than_LENGTH 0x04
#define if_bond_y_pos_less_than(y_pos, label) \
if_bond_y_pos_less_than_ID, \
CharArrayFrom16(y_pos), \
CharArrayFrom16Rev(y_pos), \
label,
/*=============================================================================
@@ -3807,7 +3818,7 @@ Label(lblDone))
#define chr_try_teleporting_to_pad(chr_num, pad, label) \
chr_try_teleporting_to_pad_ID, \
chr_num, \
chrarray16(pad), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -3979,7 +3990,7 @@ Label(lblDone))
#define if_object_in_room_with_pad(object_tag, pad, label) \
if_object_in_room_with_pad_ID, \
object_tag, \
chrarray16(pad), \
CharArrayFrom16Rev(pad), \
label,
/*=============================================================================
@@ -4012,10 +4023,10 @@ Label(lblDone))
// note: this command can't be stopped after executing. level must have a fog
// assigned or will crash!
//===========================================================================*/
#define gas_leak_and_switch_fog_ID 0xE9
#define gas_leak_and_switch_fog_LENGTH 0x01
#define gas_leak_and_switch_fog \
gas_leak_and_switch_fog_ID,
#define switch_fog_instantly_ID 0xE9
#define switch_fog_instantly_LENGTH 0x01
#define switch_fog_instantly \
switch_fog_instantly_ID,
/*=============================================================================
// name: trigger_fade_and_exit_level_on_button_press
@@ -4088,12 +4099,12 @@ Label(lblDone))
#define camera_orbit_pad_LENGTH 0x0D
#define camera_orbit_pad(lat_distance, vert_distance, orbit_speed60, pad, y_pos_offset, initial_rotation) \
camera_orbit_pad_ID, \
CharArrayFrom16(lat_distance), \
CharArrayFrom16(vert_distance), \
CharArrayFrom16(orbit_speed60), \
CharArrayFrom16(pad), \
CharArrayFrom16(y_pos_offset), \
CharArrayFrom16(initial_rotation),
CharArrayFrom16Rev(lat_distance), \
CharArrayFrom16Rev(vert_distance), \
CharArrayFrom16Rev(orbit_speed60), \
CharArrayFrom16Rev(pad), \
CharArrayFrom16Rev(y_pos_offset), \
CharArrayFrom16Rev(initial_rotation),
/*=============================================================================
// name: credits_roll
@@ -4293,3 +4304,5 @@ Label(lblDone))
#endif
#endif
+508 -226
View File
@@ -224,6 +224,27 @@ typedef enum CHRFLAG
CHRFLAG_80000000 = 0x80000000 // unknown
}CHRFLAG;
// collision detection types
typedef enum CDTYPE
{
CDTYPE_OBJS = 0x0001,
CDTYPE_DOORS = 0x0002,
CDTYPE_PLAYERS = 0x0004,
CDTYPE_CHRS = 0x0008,
CDTYPE_PATHBLOCKER = 0x0010, // glass and scenery with OBJFLAG_PATHBLOCKER
CDTYPE_BG = 0x0020,
CDTYPE_OBJSIMMUNETOGUNFIRE = 0x0080,
CDTYPE_AIOPAQUE = 0x0100, // exclude objects with OBJFLAG_AISEETHROUGH
CDTYPE_OBJSIMMUNETOEXPLOSIONS = 0x0200,
CDTYPE_OBJSNOTSAFEORHELI = 0x0400,
CDTYPE_DOORSWITHOUTFLAG = 0x0800,
CDTYPE_CLOSEDDOORS = 0x1000,
CDTYPE_OPENDOORS = 0x2000,
CDTYPE_AJARDOORS = 0x4000,
CDTYPE_DOORSLOCKEDTOAI = 0x8000,
CDTYPE_ALL = 0x003f
} CDTYPE;
typedef enum GUARD_SETUP_FLAG // u16
{
GUARD_SETUP_FLAG_NONE = 0,
@@ -260,82 +281,124 @@ BITFLAG(PS_FLAGS2,
// prop definition flags
typedef enum PROPFLAG
{
PROPFLAG_00000001 = 0x00000001, // unknown
PROPFLAG_ONSCREEN = 0x00000002, // onscreen
PROPFLAG_ENABLED = 0x00000004, // unknown
PROPFLAG_00000008 = 0x00000008, // unknown
PROPFLAG_00000010 = 0x00000010, // unknown
PROPFLAG_00000020 = 0x00000020, // unknown
PROPFLAG_00000040 = 0x00000040, // unknown
PROPFLAG_00000080 = 0x00000080, // unknown
PROPFLAG_00000100 = 0x00000100, // unknown
PROPFLAG_00000200 = 0x00000200, // unknown
PROPFLAG_RENDERPOSTBG = 0x00000001, // Fall to Ground
PROPFLAG_ONSCREEN = 0x00000002, // In Air Rotated 90 Deg Upside-Down
PROPFLAG_ENABLED = 0x00000004, // In Air Upside-Down
PROPFLAG_00000008 = 0x00000008, // In Air
PROPFLAG_00000010 = 0x00000010, // Scale to Pad Bounds
PROPFLAG_00000020 = 0x00000020, // Scale X to Pad Bounds
PROPFLAG_00000040 = 0x00000040, // Scale Y to Pad Bounds
PROPFLAG_00000080 = 0x00000080, // Scale Z to Pad Bounds
PROPFLAG_00000100 = 0x00000100, // Force Collisions
PROPFLAG_00000200 = 0x00000200, // Glass Env Mapping Style
PROPFLAG_ILLUMINATED = 0x00000400, /* ignore Stan Colour?*/
PROPFLAG_00000800 = 0x00000800, // unknown
PROPFLAG_00001000 = 0x00001000, // unknown
PROPFLAG_00000800 = 0x00000800, // Free Standing Glass
PROPFLAG_00001000 = 0x00001000, // Absolute Position
PROPFLAG_AIUNDROPPABLE = 0x00002000, /* Item Not Droppedz*/
PROPFLAG_ASSIGNEDTOCHR = 0x00004000, // unknown
PROPFLAG_00008000 = 0x00008000, // unknown
PROPFLAG_00010000 = 0x00010000, // unknown
PROPFLAG_00020000 = 0x00020000, // unknown
PROPFLAG_00040000 = 0x00040000, // unknown
PROPFLAG_00080000 = 0x00080000, // unknown
PROPFLAG_ASSIGNEDTOCHR = 0x00004000, // Assigned to Actor
PROPFLAG_INSIDEANOTHEROBJ = 0x00008000, // Embedded Object
PROPFLAG_FORCEMORTAL = 0x00010000, // unknown
PROPFLAG_INVINCIBLE = 0x00020000, // Invincible
PROPFLAG_00040000 = 0x00040000, // Allow Pickup (chr_type)
PROPFLAG_00080000 = 0x00080000, // Collect Object by Interaction Button Only
PROPFLAG_UNCOLLECTABLE = 0x00100000, /* Item Not Collectable*/
PROPFLAG_00200000 = 0x00200000, // unknown
PROPFLAG_00200000 = 0x00200000, // Bounce and Destroy If Shot
PROPFLAG_00400000 = 0x00400000, // unknown
PROPFLAG_00800000 = 0x00800000, // unknown
PROPFLAG_01000000 = 0x01000000, // unknown
PROPFLAG_02000000 = 0x02000000, // unknown
PROPFLAG_04000000 = 0x04000000, // unknown
PROPFLAG_08000000 = 0x08000000, // unknown
PROPFLAG_WEAPON_LEFTHANDED = 0x10000000, /* Left Handed*/
PROPFLAG_NO_AI_INTERACTION = 0x20000000, /* Concealed*/
PROPFLAG_40000000 = 0x40000000, /* No Ammo on pickup*/
PROPFLAG_80000000 = 0x80000000 // unknown
PROPFLAG_01000000 = 0x01000000, // Embedded Object
PROPFLAG_CANNOT_ACTIVATE = 0x02000000, // Cannot Activate Door/Object
PROPFLAG_04000000 = 0x04000000, // AI Sees Through Door/Object
PROPFLAG_DOOR_TWOWAY = 0x08000000, // Open Away From Player
PROPFLAG_WEAPON_LEFTHANDED = 0x10000000, /* Area Behind Door Invisible/Monitor Fixed/Left-Handed weapon/Disable security camera/drone gun*/
PROPFLAG_CULL_BEHIND_DOOR = 0x10000000,
PROPFLAG_FIXED_MONITOR = 0x10000000,
PROPFLAG_CCTV_DISABLED = 0x10000000,
PROPFLAG_IS_DRONE_GUN = 0x10000000,
PROPFLAG_DOOR_OPENTOFRONT = 0x20000000, /* Open Backwards/Special Function/Conceal Weapon*/
PROPFLAG_SPECIAL_FUNC = 0x20000000,
PROPFLAG_CONCEAL_GUN = 0x20000000,
PROPFLAG_MONITOR_RENDERPOSTBG = 0x40000000, /* No Ammo on pickup / Area Behind Door Visible*/
PROPFLAG_NO_PORTAL_CLOSE = 0x40000000,
PROPFLAG_NO_AMMO = 0x40000000,
PROPFLAG_80000000 = 0x80000000, // Open By Default/Weapon Paired for Player
PROPFLAG_IS_DOUBLE = 0x80000000
}PROPFLAG;
// prop definition flags
typedef enum PROPFLAG2
{
PROPFLAG2_00000001 = 0x00000001, // unknown
PROPFLAG2_00000002 = 0x00000002, // unknown
PROPFLAG2_00000004 = 0x00000004, // unknown
PROPFLAG2_00000008 = 0x00000008, // unknown
PROPFLAG2_00000010 = 0x00000010, // unknown
PROPFLAG2_00000020 = 0x00000020, // unknown
PROPFLAG2_00000040 = 0x00000040, // unknown
PROPFLAG2_00000080 = 0x00000080, // unknown
PROPFLAG2_00000100 = 0x00000100, // unknown
PROPFLAG2_00000200 = 0x00000200, // unknown
PROPFLAG2_00000400 = 0x00000400, // unknown
PROPFLAG2_00000800 = 0x00000800, // unknown
PROPFLAG2_00001000 = 0x00001000, // unknown
PROPFLAG2_00002000 = 0x00002000, // unknown
PROPFLAG2_00004000 = 0x00004000, // unknown
PROPFLAG2_00008000 = 0x00008000, // unknown
PROPFLAG2_00010000 = 0x00010000, // unknown
PROPFLAG2_00020000 = 0x00020000, // unknown
PROPFLAG2_00040000 = 0x00040000, // unknown
PROPFLAG2_00080000 = 0x00080000, // unknown
PROPFLAG2_00100000 = 0x00100000, // unknown
PROPFLAG2_00200000 = 0x00200000, // unknown
PROPFLAG2_00400000 = 0x00400000, // unknown
PROPFLAG2_00800000 = 0x00800000, // unknown
PROPFLAG2_01000000 = 0x01000000, // unknown
PROPFLAG2_02000000 = 0x02000000, // unknown
PROPFLAG2_04000000 = 0x04000000, // unknown
PROPFLAG2_08000000 = 0x08000000, // unknown
PROPFLAG2_10000000 = 0x10000000, // unknown
PROPFLAG2_20000000 = 0x20000000, // unknown
PROPFLAG2_40000000 = 0x40000000, // unknown
PROPFLAG2_80000000 = 0x80000000 // unknown
}PROPFLAG2;
PROPFLAG2_00000001 = 0x00000001, // Activate Drone Gun
PROPFLAG2_00000002 = 0x00000002, // lightweight (move when shot)
PROPFLAG2_00000004 = 0x00000004, // Interaction Text Not Shown for Doors
PROPFLAG2_00000008 = 0x00000008, // Don't Load in Multiplayer
PROPFLAG2_00000010 = 0x00000010, // Don't Load on Agent Mode
PROPFLAG2_00000020 = 0x00000020, // Don't Load on Secret Agent Mode
PROPFLAG2_00000040 = 0x00000040, // Don't Load on 00 Agent Mode
PROPFLAG2_00000080 = 0x00000080, // Don't Load on 007 Mode
PROPFLAG2_NOFALL = 0x00000100, // immobile
PROPFLAG2_FALLWITHOUTROTATION = 0x00000200, // used with mines
PROPFLAG2_LINKEDTOSAFE = 0x00000400, // unknown
PROPFLAG2_INTERACTCHECKLOS = 0x00000800, // Don't activate if stan gap Bond/Object
PROPFLAG2_00001000 = 0x00001000, // Watch Magnet Attract through Walls/Objects
PROPFLAG2_00002000 = 0x00002000, // Remove When Destroyed
PROPFLAG2_00004000 = 0x00004000, // Immune to Gunfire
PROPFLAG2_SHOOTTHROUGH = 0x00008000, // Can Shoot Through Object
PROPFLAG2_00010000 = 0x00010000, // Always Visible (in front)
PROPFLAG2_00020000 = 0x00020000, // unknown
PROPFLAG2_00040000 = 0x00040000, // Hide inventory item (for tagged armor/ammo/magazine)
PROPFLAG2_00080000 = 0x00080000, // Invincible Except to Explosions
PROPFLAG2_00100000 = 0x00100000, // Bulletproof Glass
PROPFLAG2_00200000 = 0x00200000, // Immune to Explosions
PROPFLAG2_00400000 = 0x00400000, // Don't load on 2P
PROPFLAG2_00800000 = 0x00800000, // Don't load on 3P
PROPFLAG2_01000000 = 0x01000000, // Don't load on 4P
PROPFLAG2_THROWTHROUGH = 0x02000000, // Rockets/Mines/Grenades Pass Through
PROPFLAG2_04000000 = 0x04000000, // unknown
PROPFLAG2_08000000 = 0x08000000, // One-Way Lock (Front)
PROPFLAG2_10000000 = 0x10000000, // One-Way Lock (Back)
PROPFLAG2_20000000 = 0x20000000, // Character AI Cannot Operate
PROPFLAG2_40000000 = 0x40000000, // Deactivate Special Feature
PROPFLAG2_DOOR_ALTCOORDSYSTEM = 0x80000000 // Massive Explosion (08 Type)/Rotating Disabled Drone Gun (0D Type)
} PROPFLAG2;
typedef enum DOORFLAG
{
DOORFLAG_100 = 0x00000100,
DOORFLAG_CANNOT_ACTIVATE = 0x02000000,
DOORFLAG_KEEPOPEN = 0x80000000
}DOORFLAG;
DOORFLAG_080 = 0x00000080,
DOORFLAG_100 = 0x00000100,
DOORFLAG_CANNOT_ACTIVATE = 0x02000000,
DOORFLAG_KEEPOPEN = 0x80000000
} DOORFLAG;
typedef enum DROPTYPE
{
DROPTYPE_DEFAULT = 1,
DROPTYPE_SURRENDER = 2,
DROPTYPE_THROWGRENADE = 3,
DROPTYPE_HAT = 4
} DROPTYPE;
typedef enum PROJECTILEFLAG
{
PROJECTILEFLAG_AIRBORNE = 0x00000001,
PROJECTILEFLAG_00000002 = 0x00000002,
PROJECTILEFLAG_STICKY = 0x00000004,
PROJECTILEFLAG_POWERED = 0x00000010,
PROJECTILEFLAG_00000020 = 0x00000020,
PROJECTILEFLAG_LAUNCHING = 0x00000080,
PROJECTILEFLAG_00000100 = 0x00000100,
PROJECTILEFLAG_FALLING = 0x00000400,
PROJECTILEFLAG_SLIDING = 0x00000800,
PROJECTILEFLAG_00001000 = 0x00001000,
PROJECTILEFLAG_00002000 = 0x00002000,
PROJECTILEFLAG_NOTIMELIMIT = 0x00004000,
PROJECTILEFLAG_INROOM = 0x00008000,
PROJECTILEFLAG_00010000 = 0x00010000,
PROJECTILEFLAG_LIGHTWEIGHT = 0x40000000,
PROJECTILEFLAG_FREE = 0x80000000
} PROJECTILE_FLAG;
// Might be the same flags as PROJECTILEFLAG
#define EMBEDMENTFLAG_FREE 0x00000001
/* door lock flags*/
BITFLAG(DOOR_LOCK,
@@ -371,23 +434,23 @@ BITFLAG(RUNTIMEBITFLAG,
00000001,
00000002,
REMOVE, /* removes object when set */
00000008,
ISRETICK,
00000010,
THROWING_KNIFE_RELATED,
00000040,
EMBEDDED,
DEPOSIT, /* depositted (thrown/launching) */
00000100,
BEENOPENED,
DESTROYED, /* only set with disabled or destroyed doors */
00000800,
00001000,
00002000,
PADLOCKEDDOOR,
ACTIVATED, /* activated */
00008000,
00010000,
00020000, /* owner 2bit (0-3) used to */
00040000, /* attribute kills to players */
00080000,
HASOWNER,
00100000,
00200000,
00400000,
@@ -405,6 +468,42 @@ BITFLAG(RUNTIMEBITFLAG,
#define RUNTIMEBITFLAG_OWNER 0x60000
#define RUNTIMEBITSHIFT_OWNER 0x11
BITFLAG(WEAPONSTATBITFLAG,
00000001,
SINGLE_USE_RELOAD, /* skip from fire to reload animation; item "disappears" after use, redrawn from off-screen like knives" */
BURST_FIRE, /* fire three round burst*/
HAS_AUTO_AIM, /* auto aim capable*/
CLICKY, /* if holding trigger, click if empty */
00000020,
00000040,
00000080,
ONLY_1_HANDED, /* requires HOLD_AS_GUN as well */
HOLD_AS_GUN, /* default 2 handed*/
MIRROR_DUAL, /* mirror double weapon, not copy */
SHOW_FIRST_PERSON, /* display 1st person model */
FIRST_SHOT_ACCURACY, /* for a single first shot, inaccuracy multiplied by 0.25 */
HIDE_FIRST_PERSON_HAND, /* hide first person model in hand */
HIDE_FIRST_PERSON_MENU, /* hide first person model in menu */
DISABLE_CROUCH, /* can not crouch */
PLAYER_STAT_HIT, /* count hits in player statistics */
USE_HOLD_TIME, /* increment hold time when used, to consider as weapon of choice */
HAS_AMMO,
HIDE_AMMO_DISPLAY, /* do not display ammo on screen */
CAN_DUAL_WIELD, /* capable of doubles */
AMMO_CLIP_LIMIT, /* limit ammo to assigned value on clip */
NO_CLIP_RELOADS, /* no ammo clip/reloads - draw straight from ammo supply (right of icon) */
00800000,
01000000,
02000000,
04000000,
08000000,
10000000,
20000000,
40000000,
80000000
)
#define OBJECTTYPE_00 0x00
#define OBJECTTYPE_01 0x01
#define OBJECTTYPE_02 0x02
@@ -458,6 +557,14 @@ BITFLAG(RUNTIMEBITFLAG,
#pragma region Constants
#define SP_BOOT_SZ 0x10
#define SP_RMON_SZ 0x300
#define SP_IDLE_SZ 0x40
#define SP_SHED_SZ 0x200
#define SP_MAIN_SZ 0x8000
#define SP_AUDI_SZ 0x1000
#define SP_DEBUG_SZ 0x6B0
/*
Enums Index by adding 1 to the list from the first value, unless this value
is not 0, it should not be set for every item
@@ -798,28 +905,103 @@ typedef enum CHEAT_IDS
typedef enum CONTROLLER_CONFIG
{
/* 1.1 */
CONTROLLER_CONFIG_HONEY,
/* 1.2 */
CONTROLLER_CONFIG_SOLITARE,
/* 1.3 */
CONTROLLER_CONFIG_KISSY,
/* 1.4 */
CONTROLLER_CONFIG_GOODNIGHT,
/* 2.1 */
CONTROLLER_CONFIG_PLENTY,
/* 2.2 */
CONTROLLER_CONFIG_GALORE,
/* 2.3 */
CONTROLLER_CONFIG_DOMINO,
/* 2.4 */
CONTROLLER_CONFIG_GOODHEAD,
CONTROLLER_CONFIG_CINEMA
} CONTROLLER_CONFIG;
enum WALLETBOND_SWITCHNAMES
{
SW_TABS,
SW_PAPER,
SW_EYESONLY,
SW_OHMSS,
SW_CONFIDENTIAL,
SW_CONFIDENTIAL2,
SW_CLASSIFIED,
SW_PHOTOBOND,
SW_BROSNAN,
SW_CONNERY,
SW_DALTON,
SW_MOORE,
SW_PHOTOBRIEF,
SW_COVER,
SW_PHOTOCOVER,
SW_BROSNANCOVER,
SW_CONNERYCOVER,
SW_DALTONCOVER,
SW_MOORECOVER,
SW_SLIDES,
SW_PICS,
GFXHIT0_PICS,
SW_BRIEF1,
SW_BRIEF2,
SW_BRIEF3,
SW_BRIEF4,
SW_BRIEF5,
SW_BRIEF6,
SW_BRIEF7,
SW_BRIEF8,
SW_BRIEF9,
SW_BRIEF10,
SW_BRIEF11,
SW_BRIEF12,
SW_BRIEF13,
SW_BRIEF14,
SW_BRIEF15,
SW_BRIEF16,
SW_BRIEF17,
SW_BRIEF18,
SW_BRIEF19,
SW_BRIEF20,
SW_BLANK
} ;
typedef enum GAMELENGTH
{
LEN_UNLIMITED,
LEN_5MIN,
LEN_10MIN,
LEN_20MIN,
LEN_5PT,
LEN_10PT,
LEN_20PT,
LEN_LAST
} GAMELENGTH;
typedef enum CUFF_TYPES
{
CUFF_BLUE,
CUFF_TUX,
CUFF_BROSNAN,
CUFF_JUNGLE,
CUFF_BOILER,
CUFF_SNOW,
CUFF_WHITE,
CUFF_TUX6,
CUFF_TUX7,
CUFF_TUX8
CUFF_CONNERY,
CUFF_DALTON,
CUFF_MOORE,
CUFF_FOLDER
} CUFF_TYPES;
typedef enum CREDITS_ALIGNMENT
@@ -918,6 +1100,7 @@ typedef enum DEBUG_OPTIONS
DEB_FOG
} DEBUG_MODES;
typedef enum DIFFICULTY
{
DIFFICULTY_MULTI = -1,
@@ -962,6 +1145,37 @@ typedef enum E_EXPLOSIONTYPE
E_EXPLOSIONTYPE_COUNT
} E_EXPLOSIONTYPE;
/* index into array_explosion_types.
* Is this the same as E_EXPLOSIONTYPE ?
* Some names are based on logic in chrobjWeaponTick method.
*/
typedef enum EXPLOSION_DEF
{
EXPLOSION_DEF_00,
EXPLOSION_DEF_01,
EXPLOSION_DEF_02,
EXPLOSION_DEF_03,
EXPLOSION_DEF_04,
EXPLOSION_DEF_05,
EXPLOSION_DEF_06,
EXPLOSION_DEF_07,
EXPLOSION_DEF_08,
EXPLOSION_DEF_09,
EXPLOSION_DEF_10,
EXPLOSION_DEF_11,
EXPLOSION_DEF_DRONE,
// used with grenades and mines
EXPLOSION_DEF_STANDARD,
EXPLOSION_DEF_14,
EXPLOSION_DEF_15,
EXPLOSION_DEF_16,
EXPLOSION_DEF_MASSIVE,
EXPLOSION_DEF_PLAYER,
EXPLOSION_DEF_FACILITY_REMOTE,
EXPLOSION_DEF_20,
EXPLOSION_DEF_21
} EXPLOSION_DEF;
typedef enum GAMEMODE
{
GAMEMODE_INTRO = -1,
@@ -977,29 +1191,25 @@ typedef enum GUNHAND //Canonical name
} GUNHAND;
#define HIT_TYPES(HIT) \
HIT DEFAULT \
HIT STONE \
HIT WOOD \
HIT METAL \
HIT GLASS \
HIT WATER \
HIT SNOW \
HIT DIRT \
HIT MUD \
HIT TILE \
HIT METALOBJ \
HIT CHR \
HIT GLASS_XLU
/*Hit Type for triangle (Canonical name)*/
typedef enum HIT_TYPE
{
CREATE_TYPES(ENUM, HIT, HIT_TYPES)
HIT_DEFAULT,
HIT_STONE,
HIT_WOOD,
HIT_METAL,
HIT_GLASS,
HIT_WATER,
HIT_SNOW,
HIT_DIRT,
HIT_MUD,
HIT_TILE,
HIT_METALOBJ,
HIT_CHR,
HIT_GLASS_XLU,
HIT_TYPE_COUNT
}HIT_TYPE;
#ifdef DEBUG
char *HIT_TYPE_ToString[] = { CREATE_TYPES(STRINGS, HIT, HIT_TYPES) };
#endif
} HIT_TYPE;
#define IMAGE(NAME, SZ, HS, HT, F3, F4, F5, F6) IMAGE_ ## NAME,
typedef enum IMAGEIDS
@@ -1064,7 +1274,12 @@ typedef enum LEVELID
LEVELID_WAX,
LEVELID_PAM,
LEVELID_MAX,
LEVELID_TITLE = 90
LEVELID_TITLE = 90,
LEVELID_BUNKER2_MP = LEVELID_BUNKER2 + ENVIRONMENTDATA_PLAYERS_4,
LEVELID_ARCHIVES_MP = LEVELID_ARCHIVES + ENVIRONMENTDATA_PLAYERS_4,
LEVELID_CAVERNS_MP = LEVELID_CAVERNS + ENVIRONMENTDATA_PLAYERS_4,
LEVELID_FACILITY_MP = LEVELID_FACILITY + ENVIRONMENTDATA_PLAYERS_4,
LEVELID_EGYPT_MP = LEVELID_EGYPT + ENVIRONMENTDATA_PLAYERS_4
} LEVELID;
typedef enum LEVEL_SOLO_SEQUENCE
@@ -1135,6 +1350,17 @@ typedef enum LEVEL_INDEX
LEVEL_INDEX_MAX = LEVEL_INDEX_X
} LEVEL_INDEX;
typedef enum TEXT_ALIGNMENT
{
LEFT_ALIGN,
CENTER_ALIGN,
RIGHT_ALIGN,
TOP_ALIGN = LEFT_ALIGN,
BOTTOM_ALIGN = RIGHT_ALIGN
} TEXT_ALIGNMENT;
typedef enum MENU
{
MENU_INVALID = -1,
@@ -1184,30 +1410,30 @@ typedef enum MISSION_BRIEFING
typedef enum MODELNODE_OPCODE
{
MODELNODE_OPCODE_NULL,
MODELNODE_OPCODE_HEADERRECORD,
MODELNODE_OPCODE_GROUPRECORD,
MODELNODE_OPCODE_UNUSED_03,
MODELNODE_OPCODE_DISPLAYLISTRECORD,
MODELNODE_OPCODE_UNUSED_05,
MODELNODE_OPCODE_UNUSED_06,
MODELNODE_OPCODE_OP07RECORD,
MODELNODE_OPCODE_LODRECORD,
MODELNODE_OPCODE_BSPRECORD,
MODELNODE_OPCODE_BOUNDINGBOXRECORD,
MODELNODE_OPCODE_OP11RECORD,
MODELNODE_OPCODE_GUNFIRERECORD,
MODELNODE_OPCODE_SHADOWRECORD,
MODELNODE_OPCODE_OP14RECORD,
MODELNODE_OPCODE_INTERLINKAGERECORD,
MODELNODE_OPCODE_OP16RECORD,
MODELNODE_OPCODE_UNUSED_17,
MODELNODE_OPCODE_SWITCHRECORD,
MODELNODE_OPCODE_UNUSED_19,
MODELNODE_OPCODE_UNUSED_20,
MODELNODE_OPCODE_GROUPSIMPLERECORD,
MODELNODE_OPCODE_DISPLAYLISTPRIMARYRECORD,
MODELNODE_OPCODE_HEADPLACEHOLDERRECORD,
MODELNODE_OPCODE_DISPLAYLIST_COLLISIONRECORD,
MODELNODE_OPCODE_HEADER,
MODELNODE_OPCODE_GROUP,
MODELNODE_OPCODE_OP03,
MODELNODE_OPCODE_DL,
MODELNODE_OPCODE_OP05,
MODELNODE_OPCODE_OP06,
MODELNODE_OPCODE_OP07,
MODELNODE_OPCODE_LOD,
MODELNODE_OPCODE_BSP,
MODELNODE_OPCODE_BBOX,
MODELNODE_OPCODE_OP11,
MODELNODE_OPCODE_GUNFIRE,
MODELNODE_OPCODE_SHADOW,
MODELNODE_OPCODE_OP14,
MODELNODE_OPCODE_INTERLINK,
MODELNODE_OPCODE_OP16,
MODELNODE_OPCODE_OP17,
MODELNODE_OPCODE_SWITCH,
MODELNODE_OPCODE_OP19,
MODELNODE_OPCODE_OP20,
MODELNODE_OPCODE_GROUPSIMPLE,
MODELNODE_OPCODE_DLPRIMARY,
MODELNODE_OPCODE_HEAD,
MODELNODE_OPCODE_DLCOLLISION,
MODELNODE_OPCODE_MAX
} MODELNODE_OPCODE;
@@ -1411,6 +1637,7 @@ typedef enum PLAYER_ID
} PLAYER_ID;
#define MAX_PLAYER_COUNT 4
#define MAX_FOLDER_COUNT 4
typedef enum RGBA_ENUM
{
@@ -2029,14 +2256,30 @@ typedef enum TEXTBANK_LEVEL_INDEX
LMISC /* Cheat options */
} TEXTBANK_LEVEL_INDEX;
#define GUNSIGHTREASON_1 0x01
#define GUNSIGHTREASON_NOTAIMING 0x02
#define GUNSIGHTREASON_NOCONTROL 0x04
#define GUNSIGHTREASON_DAMAGE 0x10
#define GUNAMMOREASON_OPTION 0x01
#define GUNAMMOREASON_NOCONTROL 0x02
#define GUNAMMOREASON_DAMAGE 0x08
typedef enum WATCH_ANIMATION_STATE_IDS {
WATCH_ANIMATION_0x0 = 0,
WATCH_ANIMATION_0x4 = 4,
WATCH_ANIMATION_0x5 = 5,
WATCH_ANIMATION_0x6 = 6,
WATCH_ANIMATION_0xc = 12
WATCH_ANIMATION_0x1,
WATCH_ANIMATION_0x2,
WATCH_ANIMATION_0x3,
WATCH_ANIMATION_0x4,
WATCH_ANIMATION_0x5,
WATCH_ANIMATION_0x6,
WATCH_ANIMATION_0x7,
WATCH_ANIMATION_0x8,
WATCH_ANIMATION_0x9,
WATCH_ANIMATION_0xa,
WATCH_ANIMATION_0xb,
WATCH_ANIMATION_0xc,
WATCH_ANIMATION_0xd
} WATCH_ANIMATION_STATE;
typedef enum WATCH_BRIEFING_PAGE
@@ -2097,6 +2340,26 @@ typedef enum SPSEGMENT
SPSEGMENT_BG_DL = 15
} SPSEGMENT;
typedef enum TVCMD
{
TVCMD_STOPSCROLL = 0x00,
TVCMD_SCROLLRELX = 0x01,
TVCMD_SCROLLRELY = 0x02,
TVCMD_SCROLLABSX = 0x03,
TVCMD_SCROLLABSY = 0x04,
TVCMD_SCALEABSX = 0x05,
TVCMD_SCALEABSY = 0x06,
TVCMD_SETTEXTURE = 0x07,
TVCMD_PAUSE = 0x08,
TVCMD_SETCMDLIST = 0x09,
TVCMD_RANDSETCMDLIST = 0x0a,
TVCMD_RESTART = 0x0b,
TVCMD_YIELD = 0x0c,
TVCMD_SETCOLOUR = 0x0d,
TVCMD_ROTATEABS = 0x0e,
TVCMD_ROTATEREL = 0x0f
} TVCMD;
#pragma region Object Instance Stuff
typedef enum BODIES
{
@@ -2105,7 +2368,12 @@ typedef enum SPSEGMENT
BODY_Russian_Soldier,
BODY_Russian_Infantry,
BODY_Janus_Special_Forces,
BODY_Tuxedo,
BODY_Brosnan_Tuxedo,
/*
BODY_Connery_Tuxedo,
BODY_Dalton_Tuxedo,
BODY_Moore_Tuxedo,
*/
BODY_Boris,
BODY_Ourumov,
BODY_Trevelyan_Janus,
@@ -2225,11 +2493,16 @@ typedef enum SPSEGMENT
HEAD_Female_Mandy,
HEAD_Female_Vivien,
HEAD_BOND_START,
HEAD_Male_Pierce_Bond_1 = HEAD_BOND_START,
HEAD_Male_Pierce_Bond_2,
HEAD_Male_Pierce_Bond_3,
HEAD_Male_Pierce_Bond_Parka,
HEAD_Male_Pierce_Bond_Tuxedo_DEFAULT,
HEAD_Male_Brosnan_Boiler = HEAD_BOND_START,
HEAD_Male_Brosnan_Default,
HEAD_Male_Brosnan_Jungle,
HEAD_Male_Brosnan_Parka,
HEAD_Male_Brosnan_Tuxedo,
/*
HEAD_Male_Connery_Tuxedo,
HEAD_Male_Dalton_Tuxedo,
HEAD_Male_Moore_Tuxedo,
*/
HEAD_Natalya_Jungle_Fatigues,
HEAD_END,
/*The following are some maybe helpfull counts (maybe GE doesnt need them, but thought Id ad while here)*/
@@ -2603,106 +2876,95 @@ typedef enum SPSEGMENT
} PROJECTILES;
/** For use in Prop Records (Not to be confused with Object (canonical - Prop Definition) Records which use PROPDEF (canonical Name)) */
#define PROP_TYPES(TYPE)\
TYPE NUL \
TYPE OBJ \
TYPE DOOR \
TYPE CHR \
TYPE WEAPON \
TYPE PLAYER \
TYPE VIEWER \
TYPE EXPLOSION \
TYPE SMOKE
typedef enum PROP_TYPE
{
CREATE_TYPES(ENUM, PROP_TYPE, PROP_TYPES)
PROP_TYPE_NUL,
PROP_TYPE_OBJ,
PROP_TYPE_DOOR,
PROP_TYPE_CHR,
PROP_TYPE_WEAPON,
PROP_TYPE_PLAYER,
PROP_TYPE_VIEWER,
PROP_TYPE_EXPLOSION,
PROP_TYPE_SMOKE,
PROP_TYPE_MAX
} PROP_TYPE;
#ifdef DEBUG
char *PROP_TYPE_ToString[] = { CREATE_TYPES(STRINGS, PROP_TYPE, PROP_TYPES) };
#endif
#pragma endregion
#pragma region PropDef stuff
// used by characters
/*Action Type to be performed by chr (canonical names)*/
#define ACT_STATUS(STATUS) \
STATUS NONE \
STATUS NORMAL \
STATUS COVERWAIT \
STATUS GRENADEWAIT \
STATUS WAITING \
STATUS COVERGOTO \
STATUS COVERBREAK \
STATUS COVERSEEN \
STATUS FLANKLEFT \
STATUS FLANKRIGHT \
STATUS DODGE \
STATUS GRENADE \
STATUS WAITSEEN \
STATUS WITHDRAW \
STATUS SHOOTING \
STATUS SYNCSHOOT \
STATUS WAITTIMEOUT \
STATUS COVERTIMEOUT \
STATUS TRACKING \
STATUS RETREAT \
STATUS SURRENDER \
STATUS TALKING \
STATUS LISTENING \
STATUS GOTOALARM \
STATUS BOTFRIENDFOLLOW \
STATUS BOTHIDE \
STATUS BOTPATH \
STATUS BOTINJURED \
STATUS BOTNORMAL \
STATUS BOTSHOOTING \
STATUS DRUGGED \
STATUS PANIC \
STATUS RUNFROMGRENADE \
STATUS UNARMEDATTACK
typedef enum ACT_STATUS
{
CREATE_TYPES(ENUM, , ACT_STATUS)
ACT_STATUS_MAX
ACT_STATUS_NONE,
ACT_STATUS_NORMAL,
ACT_STATUS_COVERWAIT,
ACT_STATUS_GRENADEWAIT,
ACT_STATUS_WAITING,
ACT_STATUS_COVERGOTO,
ACT_STATUS_COVERBREAK,
ACT_STATUS_COVERSEEN,
ACT_STATUS_FLANKLEFT,
ACT_STATUS_FLANKRIGHT,
ACT_STATUS_DODGE,
ACT_STATUS_GRENADE,
ACT_STATUS_WAITSEEN,
ACT_STATUS_WITHDRAW,
ACT_STATUS_SHOOTING,
ACT_STATUS_SYNCSHOOT,
ACT_STATUS_WAITTIMEOUT,
ACT_STATUS_COVERTIMEOUT,
ACT_STATUS_TRACKING,
ACT_STATUS_RETREAT,
ACT_STATUS_SURRENDER,
ACT_STATUS_TALKING,
ACT_STATUS_LISTENING,
ACT_STATUS_GOTOALARM,
ACT_STATUS_BOTFRIENDFOLLOW,
ACT_STATUS_BOTHIDE,
ACT_STATUS_BOTPATH,
ACT_STATUS_BOTINJURED,
ACT_STATUS_BOTNORMAL,
ACT_STATUS_BOTSHOOTING,
ACT_STATUS_DRUGGED,
ACT_STATUS_PANIC,
ACT_STATUS_RUNFROMGRENADE,
ACT_STATUS_UNARMEDATTACK,
ACT_STATUS_MAX
} ACT_STATUS;
#ifdef DEBUG
char *ACT_STATUS_ToString[] = {CREATE_TYPES(STRINGS, , ACT_STATUS)};
#endif
#define ACT_TYPES(ACT) \
ACT INIT \
ACT STAND \
ACT KNEEL \
ACT ANIM \
ACT DIE \
ACT DEAD \
ACT ARGH \
ACT PREARGH \
ACT ATTACK \
ACT ATTACKWALK \
ACT ATTACKROLL \
ACT SIDESTEP \
ACT JUMPOUT \
ACT RUNPOS \
ACT PATROL \
ACT GOPOS \
ACT SURRENDER \
ACT LOOKATTARGET \
ACT SURPRISED \
ACT STARTALARM \
ACT THROWGRENADE \
ACT TURNDIR \
ACT TEST \
ACT BONDINTRO \
ACT BONDDIE \
ACT BONDMULTI \
/* PD ONLY
/*Action Type to be performed by chr (canonical names)*/
typedef enum ACT_TYPE
{
ACT_INIT,
ACT_STAND,
ACT_KNEEL,
ACT_ANIM,
ACT_DIE,
ACT_DEAD,
ACT_ARGH,
ACT_PREARGH,
ACT_ATTACK,
ACT_ATTACKWALK,
ACT_ATTACKROLL,
ACT_SIDESTEP,
ACT_JUMPOUT,
ACT_RUNPOS,
ACT_PATROL,
ACT_GOPOS,
ACT_SURRENDER,
ACT_LOOKATTARGET,
ACT_SURPRISED,
ACT_STARTALARM,
ACT_THROWGRENADE,
ACT_TURNDIR,
ACT_TEST,
ACT_BONDINTRO,
ACT_BONDDIE,
ACT_BONDMULTI,
/* PD ONLY
ACT_BOT_ATTACKSTAND
ACT_BOT_ATTACKKNEEL
ACT_BOT_ATTACKSTRAFE
@@ -2713,18 +2975,10 @@ typedef enum SPSEGMENT
ACT_ROBOTATTACK
ACT_SKJUMP*
*/
/*Action Type to be performed by chr (canonical names)*/
typedef enum ACT_TYPE
{
CREATE_TYPES(ENUM, ACT, ACT_TYPES)
ACT_NULL,
ACT_TYPE_MAX
} ACT_TYPE;
#ifdef DEBUG
char *ACT_TYPE_ToString[] = {CREATE_TYPES(STRINGS, ACT, ACT_TYPES) "ACT_NULL"};
#endif
typedef enum AMMOTYPE
{
@@ -2941,6 +3195,12 @@ typedef enum SPSEGMENT
#pragma endregion
#pragma region Setup
/**
* enums were listed in a particular order, it appears the first few are associated with the start/intro
* of a level:
* if (g_CurrentPlayer->redbloodfinished && g_CurrentPlayer->deathanimfinished && (D_80036510 >= CAMERAMODE_SWIRL))
*/
typedef enum CAMERAMODE
{
CAMERAMODE_NONE,
@@ -2948,8 +3208,8 @@ typedef enum SPSEGMENT
CAMERAMODE_FADESWIRL,
CAMERAMODE_SWIRL,
CAMERAMODE_FP,
CAMERAMODE_UNK5,
CAMERAMODE_UNK6,
CAMERAMODE_DEATH_CAM_FIRST,
CAMERAMODE_DEATH_CAM_SECOND,
CAMERAMODE_POSEND,
CAMERAMODE_FP_NOINPUT,
CAMERAMODE_MP,
@@ -2989,6 +3249,13 @@ typedef enum SPSEGMENT
OBJECTIVESTATUS_FAILED
} OBJECTIVESTATUS;
typedef enum TANK_RUN_STATE
{
TANK_RUN_STATE_NOT_RUNNING = 0,
TANK_RUN_STATE_STARTING,
TANK_RUN_STATE_RUNNING
} TANK_RUN_STATE;
#pragma endregion
#pragma region VI
@@ -3057,15 +3324,21 @@ typedef enum SPSEGMENT
#define NUMBER_SHOTGUN_BULLETS 5
#ifdef VERSION_EU
#define NTSC 0
#define PAL 1
#define NTSC 0
#define PAL 1
#define TICKS_PER_SECOND 50
#define FRAMES_PER_SECOND 25
#else
#define NTSC 1
#define PAL 0
#define NTSC 1
#define PAL 0
#define TICKS_PER_SECOND 60
#define FRAMES_PER_SECOND 30
#endif
#pragma endregion
#define S32_MAX 2147483647
#define U32_MAX 4294967295
#pragma region Inline Macro Functions
#ifndef _MATH_EXT_H_
#define M_TAU_F 6.2831855f
@@ -3276,6 +3549,15 @@ typedef enum SPSEGMENT
#define ARRAYCOUNT(a) (s32)(sizeof(a) / sizeof(a[0]))
#define ALIGN8(val) (((val) + 0x7 | 0x7) ^ 0x7)
#define RANDOMFRAC() ((f32) randomGetNext() * 2.3283064e-10f)
#define MAXFLOAT ((float)3.40282346638528860e+38)
#define HUDHALIGN_RIGHT 0
#define HUDHALIGN_LEFT 1
#define HUDHALIGN_MIDDLE 2
#define HUDVALIGN_BOTTOM 0
#define HUDVALIGN_TOP 1
#define HUDVALIGN_MIDDLE 2
#pragma endregion
+13 -10
View File
@@ -1,6 +1,9 @@
#ifndef _BONDGAME_H_
#define _BONDGAME_H_
#include <ultra64.h>
//#include <bondaicommands.h> // game ai commands actually... this shouldnt be here as they are only needed by setups
#include <bondconstants.h> // game constants
#include <bondtypes.h> // game structs and types
extern u32 *_codeSegmentStart;
extern u32 *_codeSegmentEnd;
@@ -22,17 +25,17 @@ extern u32 *_gameSegmentVaddrEnd;
extern u32 *_gameSegmentRomStart;
extern u32 *_gameSegmentRomEnd;
extern u32* _alt_startSegmentRomStart;
extern u32* _alt_startSegmentStart;
extern u8 sp_boot[SP_BOOT_SZ];
extern u8 sp_rmon[SP_RMON_SZ];
extern u8 sp_idle[SP_IDLE_SZ];
extern u8 sp_shed[SP_SHED_SZ];
extern u8 sp_main[SP_MAIN_SZ];
extern u8 sp_audi[SP_AUDI_SZ];
extern u8 sp_debug[SP_DEBUG_SZ];
extern u8 sp_boot[];
extern u8 sp_rmon[];
extern u8 sp_idle[];
extern u8 sp_shed[];
extern u8 sp_main[];
extern u8 sp_audi[];
extern u8 sp_debug[];
//#include <bondaicommands.h> // game ai commands actually... this shouldnt be here as they are only needed by setups
#include <bondconstants.h> // game constants
#include <bondtypes.h> // game structs and types
#endif
+303 -214
View File
@@ -48,7 +48,7 @@
* then move bool to bondtypes.h
*/
typedef s32 bool; /* Boolean (TRUE/FALSE) */
typedef u32 romptr_t;
struct object_standard;
struct ChrRecord;
struct PropRecord;
@@ -255,7 +255,6 @@ typedef union
IF_ELSE(IS_EMPTY(y))(0)(y),\
IF_ELSE(IS_EMPTY(z))(0)(z) \
}
typedef f32 vec3[3]; //!depreciated
/**
16bit Co-Ordinate used for Integer co-ordinates eg, pumping straight to RSP.
@@ -359,6 +358,14 @@ typedef union
f32 f[8];
};
}rect4f;
struct rectbbox
{
f32 left;
f32 up;
f32 right;
f32 down;
};
#pragma endregion
#pragma endregion
@@ -1222,7 +1229,7 @@ typedef union
Gfx *Primary; /*0x0*/
Gfx *Secondary; /*0x4*/ // optional
Vertex *Vertices; /*0x8*/
u16 numVertices; /*0xC*/
s16 numVertices; /*0xC*/
s16 numCollisionVertices; /*0xE*/
Vertex *CollisionVertices; /*0x10 Table of vertices with unique point in space (UV's and Colour are disregarded). */
s16 *PointUsage; /*0x14*/
@@ -1408,25 +1415,22 @@ typedef union
f32 unk5c;
};
struct modeldata_unk_pos {
s32 unk00;
f32 p1[2];
f32 p2[2];
f32 p3[2];
};
/**
* I beleve that "datas" is actually " struct modeldata_root" and that
* unk1c is the model node data array
*/
typedef struct Model
{
u8 unk00; /*0x00*/ // init_standard_object() indicates that unk00 is a s16...
s16 Type; /*0x01*/ // but sub_GAME_7F075F68() indicates that Type is a s16...
u8 unk00; /*0x00*/ // objInit() indicates that unk00 is a s16...
s16 Type; /*0x01*/ // but modelInit() indicates that Type is a s16...
// not sure which is correct.
struct ChrRecord *chr; /*0x04*/
ModelFileHeader *obj; /*0x08 GE Name confirmed*/
/**
* List of length model->obj->numMatrices dynamically allocated.
*/
RenderPosView *render_pos; /*0x0c*/
union ModelRwData **datas; // array of pointers to modeldata structs /*0x10*/
@@ -1458,7 +1462,7 @@ typedef union
s16 frameb;
s32 unk34;
s32 unk38;
f32 unk3c;
f32 endframe;
f32 speed; /*0x40*/
f32 newspeed; /*0x44*/
@@ -1468,7 +1472,7 @@ typedef union
ModelAnimation *anim2;
s32 unk58;
f32 unk58;
f32 unk5c;
/**
@@ -1487,7 +1491,7 @@ typedef union
s32 unk68;
f32 unk6c;
// 0x70
f32 unk70;
f32 speed2;
s32 unk74;
s32 unk78;
f32 unk7c;
@@ -1508,7 +1512,7 @@ typedef union
s32 unk9c;
// 0xa0
s32 unka0;
f32 unka4; // used by ACT_STAND in chrlv
f32 playspeed; // used by ACT_STAND in chrlv
f32 animrate;
f32 unkac;
// 0xb0
@@ -1698,14 +1702,14 @@ typedef union
struct act_stand
{
s32 unk02c; /*0x2c*/
s32 prestand; /*0x2c*/
s32 face_entitytype; /*0x30*/
s32 face_entityid; /*0x34*/
s32 unk038; /*0x38*/
s32 unk03c; /*0x3c*/
u32 unk040; /*0x40*/
s32 unk044; /*0x44*/
f32 unk048; /*0x48*/
s32 reaim; /*0x38*/
s32 turning; /*0x3c*/
u32 checkfacingwall; /*0x40*/
s32 wallcount; /*0x44*/
f32 mergetime; /*0x48*/
s8 face_target; /*0x4c*/
};
@@ -2210,7 +2214,7 @@ typedef union
/**
* Offset 0x10
*/
vec3 delta;
struct coord3d delta;
f32 unk1c;
f32 unk20;
@@ -2218,78 +2222,6 @@ typedef union
f32 unk28;
} ChrRecord_f180;
typedef struct ObjectRecord_f6c
{
u32 flags;
coord3d pos;
/**
* Offset 0x10
*/
vec3d vec;
u32 padding;
/*
{{1, 0, 0, 0},
{0, 1, 0, 0},
{0, 0, 1, 0},
{0, 0, 0, 1}};
This is probably not a matrix, only 8 vals are read
Offset 0x20.
*/
Mtxf m;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6c;
u32 unk70;
u32 unk74;
u32 unk78;
u32 unk7c;
u32 unk80;
u32 unk84;
// used by sub_GAME_7F05EB0C
PropRecord *prop;
f32 unk8c;
u32 unk90;
f32 unk94;
ALSoundState *unk98[2];
//ALSoundState * unk9c;
u32 unka0;
u32 unka4;
u32 animrate;
u32 unkac;
f32 unkb0; // runtime y position?
f32 unkb4; // previous pos.y?
u32 unkb8;
u32 refreshrate;
u32 unkc0;
u32 unkc4;
u32 unkc8;
u32 unkcc;
u32 unkd0;
u32 unkd4;
u32 unkd8;
u32 unkdc;
u32 unke0;
/**
* Offset 0xe4.
*/
struct ObjectRecord *parent;
u32 unke8;
u32 unkec;
} ObjectRecord_f6c;
typedef struct PropDefHeaderRecord
{
@@ -2454,7 +2386,7 @@ typedef union
/* 0x0180 */
/**
* Method chrlvFireWeaponRelated calls sub_GAME_7F061948, and passes an address
* Method chrlvFireWeaponRelated calls CapBeamLengthAndDecideIfRendered, and passes an address
* which makes it look like this is an array at ChrRecord offset 180.
*/
ChrRecord_f180 unk180[2];
@@ -2486,6 +2418,63 @@ typedef union
f32 unk48;
};
typedef struct Projectile {
u32 flags;
coord3d speed;
coord3d unk10;
f32 unk1C;
Mtxf mtx; // 0x20-0x5c
f32 unk60;
f32 unk64;
f32 unk68[4];
f32 unk78[4];
struct PropRecord* ownerprop; // 0x88
f32 unk8C;
u32 unk90;
f32 unk94;
struct ALSoundState* sound1; // 0x98
struct ALSoundState* sound2; // 0x9C
u32 unkA0;
u32 unkA4;
u32 unkA8;
u32 unkAC;
f32 unkB0; // runtime y position?
f32 unkB4; // previous pos.y?
DROPTYPE droptype; // 0xB8
u32 refreshrate; // 0xBC;
f32 unkC0;
f32 unkC4;
f32 unkC8;
u8 unkCC;
u8 unkCD;
u8 unkCE;
u8 unkCF;
u32 unkD0;
f32 unkd4; // probably struct coord3d
u32 unkD8;
u32 unkDC;
u32 unkE0;
struct ObjectRecord* obj; // 0xE4;
s32 unkE8;
} Projectile;
typedef struct Embedment {
/*0x000*/ s32 flags;
/*0x004*/ Mtxf matrix;
/*0x044*/ struct Projectile *projectile;
} Embedment;
/**
* Object (Prop Definition) Record holds common data such as pad and health.
*/
@@ -2668,15 +2657,15 @@ typedef union
};
struct collision_data *ptr_allocated_collisiondata_block;
ObjectRecord_f6c *unk6C; //pointer somewhere at least 0x44 long and the pointer at 0 and 0x44 is also at least 0xb8 long
union {
struct Projectile *projectile; // 0x6c
struct Embedment *embedment; // 0x6c
};
f32 maxdamage;
f32 damage;
rgba_u8 field_78;
char field_7C;
char field_7D;
char field_7E;
char field_7F;
f32 maxdamage; // 0x70
f32 damage; // 0x74
rgba_u8 shadecol; // 0x78
rgba_u8 nextcol; // 0x7C
} ObjectRecord;
#define New_ObjectRecord(pad) \
{ \
@@ -2832,9 +2821,9 @@ typedef union
u8 unkbd; /*0xbd*/
// something related to rendering
s16 unkbe; /*0xbe*/
s32 unkc0; /*0xc0*/
s16 unkc4; /*0xc4*/
s16 calculatedopacity; /*0xbe*/
s32 TintDist; /*0xc0*/
s16 CullDist; /*0xc4*/
s8 soundType; /*0xc6*/
s8 fadeTime60; /*0xc7*/
@@ -2844,11 +2833,9 @@ typedef union
*/
struct DoorRecord *linkedDoor;
u8 laserFade; /*0xcc*/
u8 unkcd;
s16 unkce;
Vertex* unkcc; /*0xcc*/
// maybe struct modeldata_unk_pos *
// maybe struct ModelRoData_BoundingBoxRecord *
u32 unkd0;
u32 unkd4;
@@ -2936,15 +2923,24 @@ typedef union
New_PropDefHeaderRecord(5), 0, pad + 0 \
}
struct beam {
/*0x00*/ s8 age;
/*0x01*/ s8 weaponnum;
/*0x04*/ struct coord3d from;
/*0x10*/ struct coord3d dir;
/*0x1c*/ f32 maxdist;
/*0x20*/ f32 speed;
/*0x24*/ f32 mindist;
/*0x28*/ f32 dist;
};
typedef struct AutogunRecord
{
inherits ObjectRecord;
s16 unk80; /*0x80*/
u16 lookpad; /*0x82*/
s32 padID; // 0x80
// Units seem to be radians.
f32 rot_related;
f32 rot_related; // 0x84
// Units seem to be radians.
f32 unk88;
@@ -2958,6 +2954,7 @@ typedef union
// changes when active/firing
f32 unk94;
f32 unk98;
// changes when active/firing
f32 unk9C;
@@ -2965,75 +2962,61 @@ typedef union
f32 unkA0;
// How fast the gun turns. Runway default is around 0.01f.
f32 speed;
f32 speed; // 0xA4
/**
* Distance before deactivating.
* Default (on Runway at least): 7500.0f
* Offset 0xa0.
*/
f32 aimdist;
u32 unkAC;
f32 aimdist; // 0xA8
s32 unkAC;
// changes when active/firing
s32 unkB0;
f32 unkB0;
// changes when active/firing
f32 unkB4;
f32 unkB8;
s32 unkB8;
s32 unkBC;
s32 unkC0;
void *unkC4;
void *unkC8;
void *unkCC;
ALSoundState *unkC4;
ALSoundState *unkC8;
struct beam *beam;
/**
* Offset 0xd0.
* Used in object_interaction, setting to zero won't disable.
*/
f32 is_active;
s32 is_active; // 0xD0
// changes when active/firing
u32 unkD8;
//////////////////////////////////////////////////////
// Previously:
// u8 firing;
// u8 firecount;
// u16 unk64; /*0x84*/
// s16 yzero; /*0x88 */
// s16 ymaxleft; /*0x8a how far gun can rotate from center. 0 = free rotate*/
// s16 ymaxright; /*0x8c */
// s16 yrot; /*0x8e how far gun can rotate from center. 0 = free rotate*/
// u32 yspeed; /*0xa0*/
// u16 unk98; /*0xa4*/
// u16 Speed; /*0xa6 how fast the gun turns*/
// u16 aimdist; /*0xa8 distance before deactivating.*/
// u16 unkaa; /*0xaa*/
// u32 unkac;
f32 unkD4;
} AutogunRecord;
// PROPDEF_CCTV (6)
typedef struct CCTVRecord
{
inherits AutogunRecord;
// needs camrotm 40byte matrix to go in here somewhere
s16 UpMax; /*0xcc = 0 Camera cannot move vertically*/
s16 LeftMax; /*0xce how far camera can rotate from center. 0 = free rotate*/
s16 DownMax; /*0xd0 = -1 Camera cannot move vertically*/
s16 RightMax; /*0xd2 how far camera can rotate from center. 0 = free
rotate*/
u32 unkd4; /*0xd4*/
u32 unk98; /*0xd8*/
u16 unkdc; /*0xdc*/
u16 Speed; /*0xde how fast the camera turns*/
u32 unka0; /*0xe0*/
u32 unka4; /*0xe4*/
s16 VerticalDetectionAngle; /*0xe8 detection arc up/down from current
position. default = -1*/
s16 HorizontalDetectionAngle; /*0xeA detection arc left/right from current
position. default = -100*/
struct ObjectRecord;
s32 unk80;
Mtxf unk84;
f32 unkC4;
f32 unkC8;
f32 unkCC;
f32 unkD0;
s32 unkD4;
f32 unkD8;
f32 unkDC;
s32 timer; // 0xe0
s32 unkE4;
f32 unkE8;
s32 unkEC;
s32 unkF0;
s32 unkF4;
s32 unkF8;
} CCTVRecord;
#define New_CCTVRecord(pad) \
@@ -3045,7 +3028,7 @@ typedef union
typedef struct AmmoCrateRecord
{
inherits ObjectRecord;
u32 type; //Use AMMOTYPE /*0x80*/
AMMOTYPE ammoType; /*0x80*/
} AmmoCrateRecord;
#define New_AmmoCrateRecord(pad) \
@@ -3110,10 +3093,10 @@ typedef union
//[This struct uses original names]
typedef struct MonitorRecord
{
s32 image; // 0x80 4 image pointer for this monitor
u32 *cmdlist; // 0x80 4 image pointer for this monitor
u16 offset; // 0x84 2 [runtime] cur. #commands from start of routine
u16 pause60; // 0x86 2 [runtime] loop counter
void *unk88; //0x88 4 [runtime] monitor image# or p->image header
s16 pause60; // 0x86 2 [runtime] loop counter
struct sImageTableEntry *tconfig; //0x88 4 [runtime] monitor image# or p->image header
f32 rot; // 0x8C 4 [runtime][float] rotation
f32 xscale; // 0x90 4 [runtime] [float] cur. horizontal zoom
f32 xscalefrac; // 0x94 4 [runtime] [float] cur. h.zoom time
@@ -3156,9 +3139,9 @@ typedef union
{
inherits ObjectRecord;
MonitorRecord Monitor;
u32 nextstep; // 0xF4 4 backward monitor link
u32 forwards; // 0xF8 4 forward monitor link
u32 turnspeed; // 0xFC 4 animation#
s32 OwnerOffset;
s32 OwnerPart;
s32 ImageNum;
} MonitorObjRecord;
#define New_MonitorObjRecord(pad) \
{ \
@@ -3166,16 +3149,13 @@ typedef union
}
// PROPDEF_MULTI_MONITOR (11)
typedef struct multimonitorobj
typedef struct MultiMonitorObjRecord
{
inherits ObjectRecord;
MonitorRecord Monitor[4];
/* Some stuff here then 0x101414 at 0x250*/
u32 nextstep; // 0xF4 4 backward monitor link
u32 forwards; // 0xF8 4 forward monitor link
u32 turnspeed; // 0xFC 4 animation#
} multimonitorobj;
#define New_multimonitorobj(pad) \
u8 ImageNums[4];
} MultiMonitorObjRecord;
#define New_MultiMonitorObjRecord(pad) \
{ \
New_PropDefHeaderRecord(11), 0, pad + 0 \
}
@@ -3187,7 +3167,6 @@ typedef union
}
// PROPDEF_AUTOGUN (13)
#define New_AutogunRecord(pad) \
{ \
New_PropDefHeaderRecord(13), 0, pad + 0 \
@@ -3208,6 +3187,10 @@ typedef union
//Types 15,16 missing?
// PROPDEF_HAT (17)
typedef struct HatRecord
{
inherits ObjectRecord;
} HatRecord;
// PROPDEF_GUARD_ATTRIBUTE (18)
typedef struct GuardAttributeRecord
@@ -3430,6 +3413,9 @@ typedef union
typedef struct LockDoorRecord
{
inherits PropDefHeaderRecord;
struct DoorRecord* door;
struct ObjectRecord* lock;
struct LockDoorRecord* next;
//u16 TagID;
} LockDoorRecord;
#define New_RenameObjectRecord(TagID) \
@@ -3446,16 +3432,16 @@ typedef union
AIRecord * ailist; /*0x80*/
u16 aioffset; /*0x84*/
s16 aireturnlist; /*0x86*/
u32 speed; /*0x88 ?*/
u32 wheelxrot; /*0x8c ? changes when onscreen*/
u32 wheelyrot; /*0x90 ?*/
f32 speed; /*0x88 ?*/
f32 wheelxrot; /*0x8c ? changes when onscreen*/
f32 wheelyrot; /*0x90 ?*/
f32 speedaim; /*0x94 CONFIRNMED*/
f32 speedtime60; /*0x98 CONFIRNMED*/
u32 turnrot60; /*0x9c*/
u32 roty; /*0xa0*/
f32 turnrot60; /*0x9c*/
f32 roty; /*0xa0*/
PathRecord *path; /*0xa4*/
s32 nextstep; /*0xa8*/
void * Sound; /*0xac*/
struct ALSoundState *Sound; /*0xac*/
} VehichleRecord;
// VehichleRecord *pVehichleData;//not Global, local to Object or function
// VehichleRecord *pAircraftData;//not Global, local to Object or function
@@ -3469,21 +3455,21 @@ typedef union
// [This struct uses original names]
typedef struct AircraftRecord
{
inherits ObjectRecord;
AIRecord * ailist; /*0x80*/
u16 aioffset; /*0x84*/
s16 aireturnlist; /*0x86*/
u32 rotoryrot; /*0x88 changes when onscreen even after destruction*/
f32 rotaryspeed; /*0x8c*/
f32 rotaryspeedaim; /*0x90 CONFIRMED*/
f32 rotaryspeedtime; /*0x94 CONFIRMED*/
f32 speed; /*0x98*/
f32 speedaim; /*0x9c*/
f32 speedtime60; /*0xa0*/
u32 yrot; /*0xa4*/
u32 nextstep; /*0xa8*/
PathRecord *path; /*0xac*/
void * Sound; /*0xb0 CONFIRMED*/
inherits ObjectRecord;
AIRecord * ailist; /*0x80*/
u16 aioffset; /*0x84*/
s16 aireturnlist; /*0x86*/
f32 rotoryrot; /*0x88 changes when onscreen even after destruction*/
f32 rotaryspeed; /*0x8c*/
f32 rotaryspeedaim; /*0x90 CONFIRMED*/
f32 rotaryspeedtime; /*0x94 CONFIRMED*/
f32 speed; /*0x98*/
f32 speedaim; /*0x9c*/
f32 speedtime60; /*0xa0*/
f32 yrot; /*0xa4*/
f32 nextstep; /*0xa8*/
PathRecord *path; /*0xac*/
struct ALSoundState *Sound; /*0xb0*/
} AircraftRecord;
#define New_AircraftRecord(pad) \
{ \
@@ -3509,8 +3495,11 @@ typedef union
//PROPDEF_SAFE_ITEM (42)
typedef struct SafeObjectRecord
{
inherits ObjectRecord;
coord3d normal;
u32 unk00;
struct ObjectRecord *item;
struct SafeRecord *safe;
struct DoorRecord *door;
struct SafeObjectRecord *next;
} SafeObjectRecord;
// PROPDEF_TANK (45)
@@ -3518,15 +3507,15 @@ typedef union
typedef struct TankRecord
{
inherits ObjectRecord;
s32 unk80;
struct rect4f *rect; /*0x84*/
s32 unk88;
s32 unk8C;
s32 unk90;
s32 unk94;
s32 unk98;
s32 unk9C;
s32 unkA0;
struct collision_data *unk80;
struct rect4f rect; /*0x84*/
//s32 unk88;
//s32 unk8C;
//s32 unk90;
//s32 unk94;
//s32 unk98;
//s32 unk9C;
//s32 unkA0;
s32 unkA4;
s32 unkA8;
s32 unkAC;
@@ -3540,7 +3529,7 @@ typedef union
f32 turret_orientation_angle;
f32 unkD0;
f32 stan_y;
f32 unkD8;
s32 unkD8; // ammo related
f32 tank_orientation_angle;
} TankRecord;
#define New_TankRecord(pad) \
@@ -3552,12 +3541,10 @@ typedef union
typedef struct CutsceneRecord
{
inherits PropDefHeaderRecord;
s32 x; //4
s32 y; //8
s32 z; //c
s32 theta; //10
s32 verta; //14
u32 pad; //18
struct coord3d pos;
f32 theta; //10
f32 verta; //14
s32 pad; //18
} CutsceneRecord;
#define New_CutsceneRecord(pad) \
{ \
@@ -3570,7 +3557,7 @@ typedef union
inherits ObjectRecord;
s32 TintDist;
s32 CullDist;
s32 unk88;
s32 calculatedopacity;
s32 unk8c;
f32 unk90;
} TintedGlassRecord;
@@ -3893,9 +3880,111 @@ typedef struct object_weapon {
} object_weapon;
struct MoveData {
// 0x0, bondviewProcessInput sp120
s32 analogWalk; // sp120 ?
s32 analogStrafe; // sp124 ?
s32 analogPitch; // sp128 ?
s32 analogTurn; // sp12C ?
// 0x10
s32 controlStickYRaw;
s32 controlStickXRaw;
s32 controlStickYSafe;
s32 controlStickXSafe;
// 0x20
s32 disableLookAhead;
s32 invertPitch;
s32 canAutoAim;
s32 detonating;
// 0x30
s32 rLeanRight;
s32 rLeanLeft;
s32 crouchUp;
s32 crouchDown;
// 0x40, bondviewProcessInput sp160
f32 zoomInFovPersec;
// sp164
f32 zoomOutFovPersec;
s32 zooming;
s32 aiming;
// 0x50
s32 weaponForwardOffset;
s32 weaponBackOffset;
f32 aimTurnRightSpeed;
f32 aimTurnLeftSpeed;
// 0x60
f32 speedVertaUp;
f32 speedVertaDown;
f32 tankTurnRightSpeed;
f32 tankTurnLeftSpeed;
// 0x70
s32 digitalStepRight;
s32 digitalStepLeft;
s32 digitalStepBack;
s32 digitalStepForward;
// 0x80
s32 canNaturalPitch;
s32 canNaturalTurn;
s32 canTurnTank;
s32 canLookAhead;
// 0x90
s32 btap;
s32 triggerOn;
s32 canManualAim;
// sp1BC
s32 canSwivelGun;
};
struct unkown_gun_struct
{
union
{
u32 arr[2];
struct
{
s32 unk00;
s32 unk04;
};
};
};
/* matches Perfect Dark */
struct criteria_roomentered {
u32 unk00;
u32 pad;
u32 status;
struct criteria_roomentered *next;
};
/* completely made up */
struct criteria_deposit {
s32 unk00;
s32 weaponnum;
s32 padid;
s32 flag;
struct criteria_deposit *next;
};
struct PortalMetric {
struct coord3d normal;
f32 min;
f32 max;
};
struct FolderSelect {
s32 unk00;
s32 unk04;
s32 unk08;
};
#endif
+38 -680
View File
@@ -115,12 +115,12 @@ struct memallocstring memallocstringtable[] = {
{ LEVELID_BASEMENT, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"},
{ LEVELID_STACK, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma100"},
{ LEVELID_CAVES, "-ml0 -me0 -mgfx130 -mvtx100 -mt400 -ma300"},
{ 0x1AB, "-ml0 -me0 -mgfx130 -mvtx100 -mt550 -ma170"},
{ 0x1A8, "-ml0 -me0 -mgfx80 -mvtx100 -mt550 -ma250"},
{ 0x1B7, "-ml0 -me0 -mgfx130 -mvtx100 -mt440 -ma220"},
{ 0x1B2, "-ml0 -me0 -mgfx90 -mvtx100 -mt550 -ma230"},
{ 0x1B0, "-ml0 -me0 -mgfx110 -mvtx100 -mt350 -ma400"},
{ 0x0, "-ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"},
{ LEVELID_BUNKER2_MP , "-ml0 -me0 -mgfx130 -mvtx100 -mt550 -ma170"},
{ LEVELID_ARCHIVES_MP , "-ml0 -me0 -mgfx80 -mvtx100 -mt550 -ma250"},
{ LEVELID_CAVERNS_MP , "-ml0 -me0 -mgfx130 -mvtx100 -mt440 -ma220"},
{ LEVELID_FACILITY_MP , "-ml0 -me0 -mgfx90 -mvtx100 -mt550 -ma230"},
{ LEVELID_EGYPT_MP , "-ml0 -me0 -mgfx110 -mvtx100 -mt350 -ma400"},
{ 0x0, "-ml0 -me0 -mgfx100 -mvtx50 -mt700 -ma400"},
{ 0x0, },
{ 0x0, },
{ 0x0, }
@@ -154,16 +154,16 @@ void bossInitMainthreadData(void)
romCreateMesgQueue();
tlbmanageEstablishManagementTable();
image_entries_load();
mempInitDebugNoticeList();
mempInit();
memaInit();
bgInitDebugNoticeList();
viInitDebugNoticeList();
bgInit();
viInit();
viInitVideoSettings();
indycommInit();
g_DebugAndUpdateStageFlag = rmonGetToken();
obInitDebugNoticeList();
rspInitDebugNoticeList();
dynInitDebugNoticeList();
obInit();
rspInit();
dynInit();
joyInit();
osCreateMesgQueue(&bossmq, &bossmsg, 1);
@@ -186,8 +186,8 @@ void bossInitMainthreadData(void)
g_DebugAndUpdateStageFlag = 1;
}
stanInitDebugNoticeList();
gameInitDebugNoticeList();
stanInit();
gameInit();
if (g_DebugAndUpdateStageFlag != 0)
{
@@ -201,10 +201,10 @@ void bossInitMainthreadData(void)
temp_s0 = (osVirtualToPhysical(&room_model_buffer) | 0x80000000);
mempCheckMemflagTokens(temp_s0, ((u32)tlbmanageGetTlbAllocatedBlock() - (u32)temp_s0));
mempResetBank(6);
init_LnameX();
lvInitDebugNoticeList();
bossInitDebugNoticeList();
mempResetBank(MEMPOOL_PERMANENT);
langInit();
lvInit();
bossInit();
textrelatedInit_REMOVED();
debmenu7000ADA8();
default_player_perspective_and_height();
@@ -254,7 +254,6 @@ void bossEntry(void) {
}
}
#if defined(LEFTOVERDEBUG)
/**
* Main program loop.
*
@@ -399,14 +398,14 @@ void bossMainloop(void)
tokenSetString(memallocstringtable[stringIndex].string);
}
mempResetBank(4);
obBlankResourcesLoadedInBank(4);
mempResetBank(MEMPOOL_STAGE);
obBlankResourcesLoadedInBank(MEMPOOL_STAGE);
if (tokenFind(1, "-ma"))
{
g_CurentMaMallocValue = (s32) (strtol(tokenFind(1, "-ma"), NULL, 0) * 1024);
}
memaSetBuffer(mempAllocBytesInBank(g_CurentMaMallocValue, 4), g_CurentMaMallocValue);
memaReset(mempAllocBytesInBank(g_CurentMaMallocValue, MEMPOOL_STAGE), g_CurentMaMallocValue);
reset_play_data_ptrs();
localSelectedNumPlayers = 0;
@@ -428,18 +427,16 @@ void bossMainloop(void)
sub_GAME_7F0C0B4C();
speedGraphVideoRelated_2();
// The following 4 empty blocks are to make s2/s3 match.
if(1){} // regalloc
do{}while(0); // regalloc
if(1); // regalloc
if(1);
while (osRecvMesg(&gfxFrameMsgQ, (OSMesg *)&localGfxFrameMsg, OS_MESG_NOBLOCK) == 0)
{
// empty
}
if(1){} // regalloc
do{}while(0); // regalloc
if(1); // regalloc
if(1);
while (g_MainStageNum < 0 || pendingGfx != 0)
{
@@ -525,7 +522,7 @@ void bossMainloop(void)
localPlayer = g_CurrentPlayer;
viSetViewPosition(localPlayer->viewleft, localPlayer->viewtop);
lvlUpdateMpPlayerData();
lvlViewMoveTick();
}
}
@@ -610,14 +607,15 @@ void bossMainloop(void)
rspGfxTaskStart(firstGdl, gdl, 0, (s32*)rspReplyMsg);
pendingGfx++;
memaIterateAndMerge();
memaSingleDefragPass();
#ifdef VERSION_EU
eu_sub_7f0c00a4();
#endif
toggleFlag ^= 1;
#if defined(VERSION_EU)
speedGraphDisplay(1);
speedGraphDisplay(0x10000);
if(1);
#else
profileSetMarker(0x10000);
#endif
@@ -630,16 +628,20 @@ void bossMainloop(void)
pendingGfx--;
break;
case 5:
case OS_SC_PRE_NMI_MSG:
pendingGfx = 4U;
break;
}
}
lvlUnloadStageTextData();
stop_demo_playback();
mempNullNextEntryInBank(4);
obBlankResourcesLoadedInBank(4);
mempNullNextEntryInBank(MEMPOOL_STAGE);
obBlankResourcesLoadedInBank(MEMPOOL_STAGE);
#if defined(VERSION_EU)
if(1);
#endif
g_StageNum = g_MainStageNum;
g_MainStageNum = LEVELID_NONE;
@@ -653,650 +655,6 @@ void bossMainloop(void)
sub_GAME_7F0D1A7C();
}
#endif
#if !defined(LEFTOVERDEBUG)
GLOBAL_ASM(
.rdata
glabel aLevel__0
.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/
glabel aLevel__1
.word 0x2d6c6576, 0x656c5f00 /*"-level_"*/
glabel aHard
.word 0x2d686172, 0x64000000 /*"-hard"*/
glabel aHard_1
.word 0x2d686172, 0x64000000 /*"-hard"*/
glabel aHard_2
.word 0x2d686172, 0x64000000 /*"-hard"*/
glabel aMa
.word 0x2d6d6100 /*"-ma"*/
glabel aMa_0
.word 0x2d6d6100 /*"-ma"*/
glabel aU64_taskgrab_D_core
.word 0x7536342e, 0x7461736b, 0x67726162, 0x2e25642e, 0x636f7265, 0x00000000 /*"u64.taskgrab.%d.core"*/
.data
glabel taskgrab_ramdump_num
.word 0x1
.text
glabel bossMainloop
/* 006080 70005480 27BDFE20 */ addiu $sp, $sp, -0x1e0
/* 006084 70005484 AFBF003C */ sw $ra, 0x3c($sp)
/* 006088 70005488 AFBE0038 */ sw $fp, 0x38($sp)
/* 00608C 7000548C AFB70034 */ sw $s7, 0x34($sp)
/* 006090 70005490 AFB60030 */ sw $s6, 0x30($sp)
/* 006094 70005494 AFB5002C */ sw $s5, 0x2c($sp)
/* 006098 70005498 AFB40028 */ sw $s4, 0x28($sp)
/* 00609C 7000549C AFB30024 */ sw $s3, 0x24($sp)
/* 0060A0 700054A0 AFB20020 */ sw $s2, 0x20($sp)
/* 0060A4 700054A4 AFB1001C */ sw $s1, 0x1c($sp)
/* 0060A8 700054A8 AFB00018 */ sw $s0, 0x18($sp)
/* 0060AC 700054AC 0FC343DB */ jal reset_mem_bank_5
/* 0060B0 700054B0 AFA001DC */ sw $zero, 0x1dc($sp)
/* 0060B4 700054B4 3C058002 */ lui $a1, %hi(aLevel__0) # $a1, 0x8002
/* 0060B8 700054B8 24A547D4 */ addiu $a1, %lo(aLevel__0) # addiu $a1, $a1, 0x47d4
/* 0060BC 700054BC 0C0026C0 */ jal tokenFind
/* 0060C0 700054C0 24040001 */ li $a0, 1
/* 0060C4 700054C4 1040000D */ beqz $v0, .L700054FC
/* 0060C8 700054C8 24040001 */ li $a0, 1
/* 0060CC 700054CC 3C058002 */ lui $a1, %hi(aLevel__1) # $a1, 0x8002
/* 0060D0 700054D0 0C0026C0 */ jal tokenFind
/* 0060D4 700054D4 24A547DC */ addiu $a1, %lo(aLevel__1) # addiu $a1, $a1, 0x47dc
/* 0060D8 700054D8 904F0000 */ lbu $t7, ($v0)
/* 0060DC 700054DC 904E0001 */ lbu $t6, 1($v0)
/* 0060E0 700054E0 3C018002 */ lui $at, %hi(g_StageNum) # $at, 0x8002
/* 0060E4 700054E4 000FC080 */ sll $t8, $t7, 2
/* 0060E8 700054E8 030FC021 */ addu $t8, $t8, $t7
/* 0060EC 700054EC 0018C040 */ sll $t8, $t8, 1
/* 0060F0 700054F0 01D8C821 */ addu $t9, $t6, $t8
/* 0060F4 700054F4 2728FDF0 */ addiu $t0, $t9, -0x210
/* 0060F8 700054F8 AC282038 */ sw $t0, %lo(g_StageNum)($at)
.L700054FC:
/* 0060FC 700054FC 3C098002 */ lui $t1, %hi(g_StageNum) # $t1, 0x8002
/* 006100 70005500 8D292038 */ lw $t1, %lo(g_StageNum)($t1)
/* 006104 70005504 2401005A */ li $at, 90
/* 006108 70005508 1121001D */ beq $t1, $at, .L70005580
/* 00610C 7000550C 00000000 */ nop
/* 006110 70005510 0FC0777C */ jal fileValidateSaves
/* 006114 70005514 00000000 */ nop
/* 006118 70005518 0FC074F9 */ jal set_selected_folder_num
/* 00611C 7000551C 00002025 */ move $a0, $zero
/* 006120 70005520 0FC074FC */ jal set_selected_difficulty
/* 006124 70005524 00002025 */ move $a0, $zero
/* 006128 70005528 3C048002 */ lui $a0, %hi(g_StageNum) # $a0, 0x8002
/* 00612C 7000552C 0FC07510 */ jal set_solo_and_ptr_briefing
/* 006130 70005530 8C842038 */ lw $a0, %lo(g_StageNum)($a0)
/* 006134 70005534 3C058002 */ lui $a1, %hi(aHard) # $a1, 0x8002
/* 006138 70005538 24A547E4 */ addiu $a1, %lo(aHard) # addiu $a1, $a1, 0x47e4
/* 00613C 7000553C 0C0026C0 */ jal tokenFind
/* 006140 70005540 24040001 */ li $a0, 1
/* 006144 70005544 1040000E */ beqz $v0, .L70005580
/* 006148 70005548 24040001 */ li $a0, 1
/* 00614C 7000554C 3C058002 */ lui $a1, %hi(aHard_1) # $a1, 0x8002
/* 006150 70005550 0C0026C0 */ jal tokenFind
/* 006154 70005554 24A547EC */ addiu $a1, %lo(aHard_1) # addiu $a1, $a1, 0x47ec
/* 006158 70005558 90440000 */ lbu $a0, ($v0)
/* 00615C 7000555C 0FC074FC */ jal set_selected_difficulty
/* 006160 70005560 2484FFD0 */ addiu $a0, $a0, -0x30
/* 006164 70005564 3C058002 */ lui $a1, %hi(aHard_2) # $a1, 0x8002
/* 006168 70005568 24A547F4 */ addiu $a1, %lo(aHard_2) # addiu $a1, $a1, 0x47f4
/* 00616C 7000556C 0C0026C0 */ jal tokenFind
/* 006170 70005570 24040001 */ li $a0, 1
/* 006174 70005574 90440000 */ lbu $a0, ($v0)
/* 006178 70005578 0FC2FC24 */ jal lvlSetSelectedDifficulty
/* 00617C 7000557C 2484FFD0 */ addiu $a0, $a0, -0x30
.L70005580:
/* 006180 70005580 0C003190 */ jal osGetCount
/* 006184 70005584 00000000 */ nop
/* 006188 70005588 0C00263E */ jal randomSetSeed
/* 00618C 7000558C 00402025 */ move $a0, $v0
/* 006190 70005590 3C168002 */ lui $s6, %hi(aU64_taskgrab_D_core) # $s6, 0x8002
/* 006194 70005594 3C158007 */ lui $s5, %hi(g_CurrentPlayer) # $s5, 0x8007
/* 006198 70005598 26B58BC0 */ addiu $s5, %lo(g_CurrentPlayer) # addiu $s5, $s5, -0x7440
/* 00619C 7000559C 26D64804 */ addiu $s6, %lo(aU64_taskgrab_D_core) # addiu $s6, $s6, 0x4804
/* 0061A0 700055A0 27B70058 */ addiu $s7, $sp, 0x58
/* 0061A4 700055A4 27B4005C */ addiu $s4, $sp, 0x5c
/* 0061A8 700055A8 8FB301A8 */ lw $s3, 0x1a8($sp)
.L700055AC:
/* 0061AC 700055AC 3C0B8002 */ lui $t3, %hi(g_bossGfxDoneMsg) # $t3, 0x8002
/* 0061B0 700055B0 AFA001D4 */ sw $zero, 0x1d4($sp)
/* 0061B4 700055B4 256B2194 */ addiu $t3, %lo(g_bossGfxDoneMsg) # addiu $t3, $t3, 0x2194
/* 0061B8 700055B8 8D610000 */ lw $at, ($t3)
/* 0061BC 700055BC 8D6F0004 */ lw $t7, 4($t3)
/* 0061C0 700055C0 27AA01B4 */ addiu $t2, $sp, 0x1b4
/* 0061C4 700055C4 AD410000 */ sw $at, ($t2)
/* 0061C8 700055C8 AD4F0004 */ sw $t7, 4($t2)
/* 0061CC 700055CC 8D6F000C */ lw $t7, 0xc($t3)
/* 0061D0 700055D0 8D610008 */ lw $at, 8($t3)
/* 0061D4 700055D4 0000F025 */ move $fp, $zero
/* 0061D8 700055D8 AD4F000C */ sw $t7, 0xc($t2)
/* 0061DC 700055DC AD410008 */ sw $at, 8($t2)
/* 0061E0 700055E0 8D610010 */ lw $at, 0x10($t3)
/* 0061E4 700055E4 8D6F0014 */ lw $t7, 0x14($t3)
/* 0061E8 700055E8 00008825 */ move $s1, $zero
/* 0061EC 700055EC AD410010 */ sw $at, 0x10($t2)
/* 0061F0 700055F0 AD4F0014 */ sw $t7, 0x14($t2)
/* 0061F4 700055F4 8D6F001C */ lw $t7, 0x1c($t3)
/* 0061F8 700055F8 8D610018 */ lw $at, 0x18($t3)
/* 0061FC 700055FC AD4F001C */ sw $t7, 0x1c($t2)
/* 006200 70005600 AD410018 */ sw $at, 0x18($t2)
/* 006204 70005604 0FC2FC21 */ jal lvlGetSelectedDifficulty
/* 006208 70005608 AFA001AC */ sw $zero, 0x1ac($sp)
/* 00620C 7000560C 3C048002 */ lui $a0, %hi(g_StageNum) # $a0, 0x8002
/* 006210 70005610 8C842038 */ lw $a0, %lo(g_StageNum)($a0)
/* 006214 70005614 0FC2FEB0 */ jal test_if_recording_demos_this_stage_load
/* 006218 70005618 00402825 */ move $a1, $v0
/* 00621C 7000561C 3C0E8002 */ lui $t6, %hi(g_DebugAndUpdateStageFlag) # $t6, 0x8002
/* 006220 70005620 8DCE2034 */ lw $t6, %lo(g_DebugAndUpdateStageFlag)($t6)
/* 006224 70005624 3C188002 */ lui $t8, %hi(g_StageNum) # $t8, 0x8002
/* 006228 70005628 11C00038 */ beqz $t6, .L7000570C
/* 00622C 7000562C 00000000 */ nop
/* 006230 70005630 8F182038 */ lw $t8, %lo(g_StageNum)($t8)
/* 006234 70005634 2401005A */ li $at, 90
/* 006238 70005638 2410FFFF */ li $s0, -1
/* 00623C 7000563C 1301001D */ beq $t8, $at, .L700056B4
/* 006240 70005640 00000000 */ nop
/* 006244 70005644 0FC04060 */ jal get_selected_num_players
/* 006248 70005648 00000000 */ nop
/* 00624C 7000564C 28410002 */ slti $at, $v0, 2
/* 006250 70005650 14200018 */ bnez $at, .L700056B4
/* 006254 70005654 3C058002 */ lui $a1, %hi(memallocstringtable) # $a1, 0x8002
/* 006258 70005658 24A5204C */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x204c
/* 00625C 7000565C 8CB90000 */ lw $t9, ($a1)
/* 006260 70005660 00008025 */ move $s0, $zero
/* 006264 70005664 3C048002 */ lui $a0, %hi(g_StageNum) # $a0, 0x8002
/* 006268 70005668 1320000C */ beqz $t9, .L7000569C
/* 00626C 7000566C 3C088002 */ lui $t0, %hi(memallocstringtable) # $t0, 0x8002
/* 006270 70005670 8C842038 */ lw $a0, %lo(g_StageNum)($a0)
/* 006274 70005674 2502204C */ addiu $v0, $t0, %lo(memallocstringtable) # addiu $v0, $t0, 0x204C
/* 006278 70005678 8C430000 */ lw $v1, ($v0)
/* 00627C 7000567C 24840190 */ addiu $a0, $a0, 0x190
.L70005680:
/* 006280 70005680 50830007 */ beql $a0, $v1, .L700056A0
/* 006284 70005684 001048C0 */ sll $t1, $s0, 3
/* 006288 70005688 8C430008 */ lw $v1, 8($v0)
/* 00628C 7000568C 26100001 */ addiu $s0, $s0, 1
/* 006290 70005690 24420008 */ addiu $v0, $v0, 8
/* 006294 70005694 1460FFFA */ bnez $v1, .L70005680
/* 006298 70005698 00000000 */ nop
.L7000569C:
/* 00629C 7000569C 001048C0 */ sll $t1, $s0, 3
.L700056A0:
/* 0062A0 700056A0 00A96821 */ addu $t5, $a1, $t1
/* 0062A4 700056A4 8DAC0000 */ lw $t4, ($t5)
/* 0062A8 700056A8 15800002 */ bnez $t4, .L700056B4
/* 0062AC 700056AC 00000000 */ nop
/* 0062B0 700056B0 2410FFFF */ li $s0, -1
.L700056B4:
/* 0062B4 700056B4 3C058002 */ lui $a1, %hi(memallocstringtable) # $a1, 0x8002
/* 0062B8 700056B8 06010010 */ bgez $s0, .L700056FC
/* 0062BC 700056BC 24A5204C */ addiu $a1, %lo(memallocstringtable) # addiu $a1, $a1, 0x204c
/* 0062C0 700056C0 8CAA0000 */ lw $t2, ($a1)
/* 0062C4 700056C4 00008025 */ move $s0, $zero
/* 0062C8 700056C8 3C048002 */ lui $a0, %hi(g_StageNum) # $a0, 0x8002
/* 0062CC 700056CC 1140000B */ beqz $t2, .L700056FC
/* 0062D0 700056D0 3C0B8002 */ lui $t3, 0x8002
/* 0062D4 700056D4 2562204C */ addiu $v0, $t3, 0x204c
/* 0062D8 700056D8 8C430000 */ lw $v1, ($v0)
/* 0062DC 700056DC 8C842038 */ lw $a0, %lo(g_StageNum)($a0)
.L700056E0:
/* 0062E0 700056E0 50830007 */ beql $a0, $v1, .L70005700
/* 0062E4 700056E4 001078C0 */ sll $t7, $s0, 3
/* 0062E8 700056E8 8C430008 */ lw $v1, 8($v0)
/* 0062EC 700056EC 26100001 */ addiu $s0, $s0, 1
/* 0062F0 700056F0 24420008 */ addiu $v0, $v0, 8
/* 0062F4 700056F4 1460FFFA */ bnez $v1, .L700056E0
/* 0062F8 700056F8 00000000 */ nop
.L700056FC:
/* 0062FC 700056FC 001078C0 */ sll $t7, $s0, 3
.L70005700:
/* 006300 70005700 00AF7021 */ addu $t6, $a1, $t7
/* 006304 70005704 0C00267B */ jal tokenSetString
/* 006308 70005708 8DC40004 */ lw $a0, 4($t6)
.L7000570C:
/* 00630C 7000570C 0C00237F */ jal mempResetBank
/* 006310 70005710 24040004 */ li $a0, 4
/* 006314 70005714 0FC2F15D */ jal obBlankResourcesLoadedInBank
/* 006318 70005718 24040004 */ li $a0, 4
/* 00631C 7000571C 3C058002 */ lui $a1, %hi(aMa) # $a1, 0x8002
/* 006320 70005720 24A547FC */ addiu $a1, %lo(aMa) # addiu $a1, $a1, 0x47fc
/* 006324 70005724 0C0026C0 */ jal tokenFind
/* 006328 70005728 24040001 */ li $a0, 1
/* 00632C 7000572C 1040000B */ beqz $v0, .L7000575C
/* 006330 70005730 24040001 */ li $a0, 1
/* 006334 70005734 3C058002 */ lui $a1, %hi(aMa_0) # $a1, 0x8002
/* 006338 70005738 0C0026C0 */ jal tokenFind
/* 00633C 7000573C 24A54800 */ addiu $a1, %lo(aMa_0) # addiu $a1, $a1, 0x4800
/* 006340 70005740 00402025 */ move $a0, $v0
/* 006344 70005744 00002825 */ move $a1, $zero
/* 006348 70005748 0C002790 */ jal strtol
/* 00634C 7000574C 00003025 */ move $a2, $zero
/* 006350 70005750 0002C280 */ sll $t8, $v0, 0xa
/* 006354 70005754 3C018002 */ lui $at, %hi(g_CurentMaMallocValue) # $at, 0x8002
/* 006358 70005758 AC382040 */ sw $t8, %lo(g_CurentMaMallocValue)($at)
.L7000575C:
/* 00635C 7000575C 3C048002 */ lui $a0, %hi(g_CurentMaMallocValue) # $a0, 0x8002
/* 006360 70005760 8C842040 */ lw $a0, %lo(g_CurentMaMallocValue)($a0)
/* 006364 70005764 0C0022E0 */ jal mempAllocBytesInBank
/* 006368 70005768 24050004 */ li $a1, 4
/* 00636C 7000576C 3C058002 */ lui $a1, %hi(g_CurentMaMallocValue) # $a1, 0x8002
/* 006370 70005770 8CA52040 */ lw $a1, %lo(g_CurentMaMallocValue)($a1)
/* 006374 70005774 0C00247E */ jal memaSetBuffer
/* 006378 70005778 00402025 */ move $a0, $v0
/* 00637C 7000577C 0FC2661B */ jal reset_play_data_ptrs
/* 006380 70005780 00000000 */ nop
/* 006384 70005784 3C198002 */ lui $t9, %hi(g_StageNum) # $t9, 0x8002
/* 006388 70005788 8F392038 */ lw $t9, %lo(g_StageNum)($t9)
/* 00638C 7000578C 2401005A */ li $at, 90
/* 006390 70005790 13210009 */ beq $t9, $at, .L700057B8
/* 006394 70005794 00000000 */ nop
/* 006398 70005798 0FC04060 */ jal get_selected_num_players
/* 00639C 7000579C 24110001 */ li $s1, 1
/* 0063A0 700057A0 28410002 */ slti $at, $v0, 2
/* 0063A4 700057A4 14200004 */ bnez $at, .L700057B8
/* 0063A8 700057A8 00000000 */ nop
/* 0063AC 700057AC 0FC04060 */ jal get_selected_num_players
/* 0063B0 700057B0 00000000 */ nop
/* 0063B4 700057B4 00408825 */ move $s1, $v0
.L700057B8:
/* 0063B8 700057B8 0FC26633 */ jal init_player_data_ptrs_construct_viewports
/* 0063BC 700057BC 02202025 */ move $a0, $s1
/* 0063C0 700057C0 0FC2F20F */ jal dynInitMemory
/* 0063C4 700057C4 00000000 */ nop
/* 0063C8 700057C8 0C0028F3 */ jal joyCheckStatusThreadSafe
/* 0063CC 700057CC 00000000 */ nop
/* 0063D0 700057D0 3C048002 */ lui $a0, %hi(g_StageNum) # $a0, 0x8002
/* 0063D4 700057D4 0FC2F398 */ jal lvlStageLoad
/* 0063D8 700057D8 8C842038 */ lw $a0, %lo(g_StageNum)($a0)
/* 0063DC 700057DC 0C000B26 */ jal viInitBuffers
/* 0063E0 700057E0 00000000 */ nop
/* 0063E4 700057E4 0C00287A */ jal debmenuInit
/* 0063E8 700057E8 00000000 */ nop
/* 0063EC 700057EC 0FC30001 */ jal sub_GAME_7F0C0B4C
/* 0063F0 700057F0 00000000 */ nop
/* 0063F4 700057F4 0C000AEC */ jal speedGraphVideoRelated_2
/* 0063F8 700057F8 00000000 */ nop
/* 0063FC 700057FC 3C048005 */ lui $a0, %hi(gfxFrameMsgQ) # $a0, 0x8005
/* 006400 70005800 24841D60 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, 0x1d60
/* 006404 70005804 27A501D4 */ addiu $a1, $sp, 0x1d4
/* 006408 70005808 0C0031F4 */ jal osRecvMesg
/* 00640C 7000580C 00003025 */ move $a2, $zero
/* 006410 70005810 14400007 */ bnez $v0, .L70005830
.L70005814:
/* 006414 70005814 3C048005 */ lui $a0, %hi(gfxFrameMsgQ) # $a0, 0x8005
/* 006418 70005818 24841D60 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, 0x1d60
/* 00641C 7000581C 27A501D4 */ addiu $a1, $sp, 0x1d4
/* 006420 70005820 0C0031F4 */ jal osRecvMesg
/* 006424 70005824 00003025 */ move $a2, $zero
/* 006428 70005828 1040FFFA */ beqz $v0, .L70005814
/* 00642C 7000582C 00000000 */ nop
.L70005830:
/* 006430 70005830 3C088002 */ lui $t0, %hi(g_MainStageNum) # $t0, 0x8002
/* 006434 70005834 8D08218C */ lw $t0, %lo(g_MainStageNum)($t0)
/* 006438 70005838 05010130 */ bgez $t0, .L70005CFC
.L7000583C:
/* 00643C 7000583C 3C048005 */ lui $a0, %hi(gfxFrameMsgQ) # $a0, 0x8005
/* 006440 70005840 24841D60 */ addiu $a0, %lo(gfxFrameMsgQ) # addiu $a0, $a0, 0x1d60
/* 006444 70005844 27A501D4 */ addiu $a1, $sp, 0x1d4
/* 006448 70005848 0C0031F4 */ jal osRecvMesg
/* 00644C 7000584C 24060001 */ li $a2, 1
/* 006450 70005850 8FA901D4 */ lw $t1, 0x1d4($sp)
/* 006454 70005854 24010001 */ li $at, 1
/* 006458 70005858 85230000 */ lh $v1, ($t1)
/* 00645C 7000585C 10610009 */ beq $v1, $at, .L70005884
/* 006460 70005860 24010002 */ li $at, 2
/* 006464 70005864 1061011C */ beq $v1, $at, .L70005CD8
/* 006468 70005868 3C028002 */ lui $v0, 0x8002
/* 00646C 7000586C 24010005 */ li $at, 5
/* 006470 70005870 1061011C */ beq $v1, $at, .L70005CE4
/* 006474 70005874 3C028002 */ lui $v0, 0x8002
/* 006478 70005878 3C028002 */ lui $v0, %hi(g_MainStageNum) # $v0, 0x8002
/* 00647C 7000587C 1000011B */ b .L70005CEC
/* 006480 70005880 8C42218C */ lw $v0, %lo(g_MainStageNum)($v0)
.L70005884:
/* 006484 70005884 0C003190 */ jal osGetCount
/* 006488 70005888 00000000 */ nop
/* 00648C 7000588C 3C0C8004 */ lui $t4, %hi(D_800484B4) # $t4, 0x8004
/* 006490 70005890 8D8C113C */ lw $t4, %lo(D_800484B4)($t4)
/* 006494 70005894 3C01000E */ lui $at, (0x000E34EA >> 16) # lui $at, 0xe
/* 006498 70005898 342134EA */ ori $at, (0x000E34EA & 0xFFFF) # ori $at, $at, 0x34ea
/* 00649C 7000589C 01810019 */ multu $t4, $at
/* 0064A0 700058A0 3C0D8004 */ lui $t5, %hi(copy_of_osgetcount_value_1) # $t5, 0x8004
/* 0064A4 700058A4 8DAD1138 */ lw $t5, %lo(copy_of_osgetcount_value_1)($t5)
/* 0064A8 700058A8 3C01FFF8 */ lui $at, (0xFFF8E58B >> 16) # lui $at, 0xfff8
/* 0064AC 700058AC 3421E58B */ ori $at, (0xFFF8E58B & 0xFFFF) # ori $at, $at, 0xe58b
/* 0064B0 700058B0 004D1823 */ subu $v1, $v0, $t5
/* 0064B4 700058B4 3C028002 */ lui $v0, 0x8002
/* 0064B8 700058B8 00005012 */ mflo $t2
/* 0064BC 700058BC 01415821 */ addu $t3, $t2, $at
/* 0064C0 700058C0 006B082B */ sltu $at, $v1, $t3
/* 0064C4 700058C4 10200004 */ beqz $at, .L700058D8
/* 0064C8 700058C8 00000000 */ nop
/* 0064CC 700058CC 3C028002 */ lui $v0, %hi(g_MainStageNum) # $v0, 0x8002
/* 0064D0 700058D0 10000106 */ b .L70005CEC
/* 0064D4 700058D4 8C42218C */ lw $v0, %lo(g_MainStageNum)($v0)
.L700058D8:
/* 0064D8 700058D8 8C42218C */ lw $v0, 0x218c($v0)
/* 0064DC 700058DC 2FC10002 */ sltiu $at, $fp, 2
/* 0064E0 700058E0 04410102 */ bgez $v0, .L70005CEC
/* 0064E4 700058E4 00000000 */ nop
/* 0064E8 700058E8 10200100 */ beqz $at, .L70005CEC
/* 0064EC 700058EC 27AF01B4 */ addiu $t7, $sp, 0x1b4
/* 0064F0 700058F0 0FC2FC43 */ jal get_is_ramrom_flag
/* 0064F4 700058F4 AFAF0048 */ sw $t7, 0x48($sp)
/* 0064F8 700058F8 10400005 */ beqz $v0, .L70005910
/* 0064FC 700058FC 00000000 */ nop
/* 006500 70005900 0FC2FDBA */ jal iterate_ramrom_entries_handle_camera_out
/* 006504 70005904 00000000 */ nop
/* 006508 70005908 10000003 */ b .L70005918
/* 00650C 7000590C 00000000 */ nop
.L70005910:
/* 006510 70005910 0FC30001 */ jal sub_GAME_7F0C0B4C
/* 006514 70005914 00000000 */ nop
.L70005918:
/* 006518 70005918 0C000AEE */ jal profileSetMarker
/* 00651C 7000591C 00000000 */ nop
/* 006520 70005920 0C000AEC */ jal speedGraphVideoRelated_2
/* 006524 70005924 00000000 */ nop
/* 006528 70005928 0C000AF0 */ jal speedGraphDisplay
/* 00652C 7000592C 3C040002 */ lui $a0, %hi(0x20004) # $a0, 2
/* 006530 70005930 0C002AA0 */ jal joyConsumeSamplesWrapper
/* 006534 70005934 00000000 */ nop
/* 006538 70005938 0C000262 */ jal permit_stderr
/* 00653C 7000593C 00002025 */ move $a0, $zero
/* 006540 70005940 0FC2F289 */ jal dynGetMasterDisplayList
/* 006544 70005944 00000000 */ nop
/* 006548 70005948 3C0E8002 */ lui $t6, %hi(g_BossIsDebugMenuOpen) # $t6, 0x8002
/* 00654C 7000594C 8DCE2190 */ lw $t6, %lo(g_BossIsDebugMenuOpen)($t6)
/* 006550 70005950 AFA201A4 */ sw $v0, 0x1a4($sp)
/* 006554 70005954 00409825 */ move $s3, $v0
/* 006558 70005958 11C0001D */ beqz $t6, .L700059D0
/* 00655C 7000595C 00000000 */ nop
/* 006560 70005960 0C002B98 */ jal joyGetStickX
/* 006564 70005964 00002025 */ move $a0, $zero
/* 006568 70005968 00028600 */ sll $s0, $v0, 0x18
/* 00656C 7000596C 0010C603 */ sra $t8, $s0, 0x18
/* 006570 70005970 03008025 */ move $s0, $t8
/* 006574 70005974 0C002BDC */ jal joyGetStickY
/* 006578 70005978 00002025 */ move $a0, $zero
/* 00657C 7000597C 00028E00 */ sll $s1, $v0, 0x18
/* 006580 70005980 0011CE03 */ sra $t9, $s1, 0x18
/* 006584 70005984 03208825 */ move $s1, $t9
/* 006588 70005988 00002025 */ move $a0, $zero
/* 00658C 7000598C 0C002C20 */ jal joyGetButtons
/* 006590 70005990 3405FFFF */ li $a1, 65535
/* 006594 70005994 3052FFFF */ andi $s2, $v0, 0xffff
/* 006598 70005998 00002025 */ move $a0, $zero
/* 00659C 7000599C 0C002C48 */ jal joyGetButtonsPressedThisFrame
/* 0065A0 700059A0 3405FFFF */ li $a1, 65535
/* 0065A4 700059A4 00102600 */ sll $a0, $s0, 0x18
/* 0065A8 700059A8 00112E00 */ sll $a1, $s1, 0x18
/* 0065AC 700059AC 00054E03 */ sra $t1, $a1, 0x18
/* 0065B0 700059B0 00044603 */ sra $t0, $a0, 0x18
/* 0065B4 700059B4 01002025 */ move $a0, $t0
/* 0065B8 700059B8 01202825 */ move $a1, $t1
/* 0065BC 700059BC 3246FFFF */ andi $a2, $s2, 0xffff
/* 0065C0 700059C0 0FC240F2 */ jal debug_menu_processor
/* 0065C4 700059C4 3047FFFF */ andi $a3, $v0, 0xffff
/* 0065C8 700059C8 3C018002 */ lui $at, %hi(g_BossIsDebugMenuOpen) # $at, 0x8002
/* 0065CC 700059CC AC222190 */ sw $v0, %lo(g_BossIsDebugMenuOpen)($at)
.L700059D0:
/* 0065D0 700059D0 0FC2F7EB */ jal lvlManageMpGame
/* 0065D4 700059D4 00000000 */ nop
/* 0065D8 700059D8 0FC26A57 */ jal shuffle_player_ids
/* 0065DC 700059DC 00000000 */ nop
/* 0065E0 700059E0 3C0D8002 */ lui $t5, %hi(g_StageNum) # $t5, 0x8002
/* 0065E4 700059E4 8DAD2038 */ lw $t5, %lo(g_StageNum)($t5)
/* 0065E8 700059E8 2401005A */ li $at, 90
/* 0065EC 700059EC 11A10018 */ beq $t5, $at, .L70005A50
/* 0065F0 700059F0 00000000 */ nop
/* 0065F4 700059F4 0FC26669 */ jal getPlayerCount
/* 0065F8 700059F8 00008825 */ move $s1, $zero
/* 0065FC 700059FC 18400014 */ blez $v0, .L70005A50
/* 006600 70005A00 00000000 */ nop
.L70005A04:
/* 006604 70005A04 0FC26A9A */ jal get_nth_player_from_shuffled
/* 006608 70005A08 02202025 */ move $a0, $s1
/* 00660C 70005A0C 0FC26993 */ jal set_cur_player
/* 006610 70005A10 00402025 */ move $a0, $v0
/* 006614 70005A14 8EB00000 */ lw $s0, ($s5)
/* 006618 70005A18 860407F0 */ lh $a0, 0x7f0($s0)
/* 00661C 70005A1C 0C000FA3 */ jal viSetViewSize
/* 006620 70005A20 860507F2 */ lh $a1, 0x7f2($s0)
/* 006624 70005A24 8EB00000 */ lw $s0, ($s5)
/* 006628 70005A28 860407F4 */ lh $a0, 0x7f4($s0)
/* 00662C 70005A2C 0C000FC3 */ jal viSetViewPosition
/* 006630 70005A30 860507F6 */ lh $a1, 0x7f6($s0)
/* 006634 70005A34 0FC2FB11 */ jal lvlUpdateMpPlayerData
/* 006638 70005A38 00000000 */ nop
/* 00663C 70005A3C 0FC26669 */ jal getPlayerCount
/* 006640 70005A40 26310001 */ addiu $s1, $s1, 1
/* 006644 70005A44 0222082A */ slt $at, $s1, $v0
/* 006648 70005A48 1420FFEE */ bnez $at, .L70005A04
/* 00664C 70005A4C 00000000 */ nop
.L70005A50:
/* 006650 70005A50 0FC2F5B3 */ jal lvlRender
/* 006654 70005A54 02602025 */ move $a0, $s3
/* 006658 70005A58 0FC2411C */ jal get_debug_VisCVG_flag
/* 00665C 70005A5C 00409825 */ move $s3, $v0
/* 006660 70005A60 10400037 */ beqz $v0, .L70005B40 /*NOP this so vis-cvg are always drawn*/
/* 006664 70005A64 2407FFFF */ li $a3, -1
/* 006668 70005A68 02601025 */ move $v0, $s3
/* 00666C 70005A6C 26730008 */ addiu $s3, $s3, 8
/* 006670 70005A70 3C0CE700 */ lui $t4, 0xe700
/* 006674 70005A74 02601825 */ move $v1, $s3
/* 006678 70005A78 AC4C0000 */ sw $t4, ($v0)
/* 00667C 70005A7C AC400004 */ sw $zero, 4($v0)
/* 006680 70005A80 26730008 */ addiu $s3, $s3, 8
/* 006684 70005A84 3C0ABA00 */ lui $t2, (0xBA001402 >> 16) # lui $t2, 0xba00
/* 006688 70005A88 02602025 */ move $a0, $s3
/* 00668C 70005A8C 354A1402 */ ori $t2, (0xBA001402 & 0xFFFF) # ori $t2, $t2, 0x1402
/* 006690 70005A90 26730008 */ addiu $s3, $s3, 8
/* 006694 70005A94 AC6A0000 */ sw $t2, ($v1)
/* 006698 70005A98 AC600004 */ sw $zero, 4($v1)
/* 00669C 70005A9C 02602825 */ move $a1, $s3
/* 0066A0 70005AA0 3C0BF900 */ lui $t3, 0xf900
/* 0066A4 70005AA4 26730008 */ addiu $s3, $s3, 8
/* 0066A8 70005AA8 AC8B0000 */ sw $t3, ($a0)
/* 0066AC 70005AAC AC870004 */ sw $a3, %lo(0x20004)($a0)
/* 0066B0 70005AB0 02603025 */ move $a2, $s3
/* 0066B4 70005AB4 3C0FEE00 */ lui $t7, 0xee00
/* 0066B8 70005AB8 26730008 */ addiu $s3, $s3, 8
/* 0066BC 70005ABC ACAF0000 */ sw $t7, ($a1)
/* 0066C0 70005AC0 ACA70004 */ sw $a3, 4($a1)
/* 0066C4 70005AC4 3C0EB900 */ lui $t6, (0xB9000201 >> 16) # lui $t6, 0xb900
/* 0066C8 70005AC8 02601025 */ move $v0, $s3
/* 0066CC 70005ACC 35CE0201 */ ori $t6, (0xB9000201 & 0xFFFF) # ori $t6, $t6, 0x201
/* 0066D0 70005AD0 24180004 */ li $t8, 4
/* 0066D4 70005AD4 26730008 */ addiu $s3, $s3, 8
/* 0066D8 70005AD8 3C19B900 */ lui $t9, (0xB900031D >> 16) # lui $t9, 0xb900
/* 0066DC 70005ADC 3C080FA5 */ lui $t0, (0x0FA54040 >> 16) # lui $t0, 0xfa5
/* 0066E0 70005AE0 ACD80004 */ sw $t8, 4($a2)
/* 0066E4 70005AE4 ACCE0000 */ sw $t6, ($a2)
/* 0066E8 70005AE8 35084040 */ ori $t0, (0x0FA54040 & 0xFFFF) # ori $t0, $t0, 0x4040
/* 0066EC 70005AEC 3739031D */ ori $t9, (0xB900031D & 0xFFFF) # ori $t9, $t9, 0x31d
/* 0066F0 70005AF0 02608025 */ move $s0, $s3
/* 0066F4 70005AF4 AC590000 */ sw $t9, ($v0)
/* 0066F8 70005AF8 AC480004 */ sw $t0, 4($v0)
/* 0066FC 70005AFC 0C000F9B */ jal viGetX
/* 006700 70005B00 26730008 */ addiu $s3, $s3, 8
/* 006704 70005B04 00028C00 */ sll $s1, $v0, 0x10
/* 006708 70005B08 00114C03 */ sra $t1, $s1, 0x10
/* 00670C 70005B0C 0C000F9F */ jal viGetY
/* 006710 70005B10 01208825 */ move $s1, $t1
/* 006714 70005B14 244DFFFF */ addiu $t5, $v0, -1
/* 006718 70005B18 31AC03FF */ andi $t4, $t5, 0x3ff
/* 00671C 70005B1C 262FFFFF */ addiu $t7, $s1, -1
/* 006720 70005B20 31EE03FF */ andi $t6, $t7, 0x3ff
/* 006724 70005B24 000C5080 */ sll $t2, $t4, 2
/* 006728 70005B28 3C01F600 */ lui $at, 0xf600
/* 00672C 70005B2C 01415825 */ or $t3, $t2, $at
/* 006730 70005B30 000EC380 */ sll $t8, $t6, 0xe
/* 006734 70005B34 0178C825 */ or $t9, $t3, $t8
/* 006738 70005B38 AE190000 */ sw $t9, ($s0)/*NOP this so vis_cvg are always drawn*/
/* 00673C 70005B3C AE000004 */ sw $zero, 4($s0)/*NOP this so vis_cvg are always drawn*/
.L70005B40:
/* 006740 70005B40 0C00289B */ jal debmenuDraw
/* 006744 70005B44 02602025 */ move $a0, $s3
/* 006748 70005B48 0FC24100 */ jal get_memusage_display_flag
/* 00674C 70005B4C 00409825 */ move $s3, $v0
/* 006750 70005B50 10400004 */ beqz $v0, .L70005B64
/* 006754 70005B54 00000000 */ nop
/* 006758 70005B58 0C000AF2 */ jal video_DL_related_4
/* 00675C 70005B5C 02602025 */ move $a0, $s3
/* 006760 70005B60 00409825 */ move $s3, $v0
.L70005B64:
/* 006764 70005B64 3C088002 */ lui $t0, %hi(g_BossIsDebugMenuOpen) # $t0, 0x8002
/* 006768 70005B68 8D082190 */ lw $t0, %lo(g_BossIsDebugMenuOpen)($t0)
/* 00676C 70005B6C 51000007 */ beql $t0, $zero, .L70005B8C
/* 006770 70005B70 02601025 */ move $v0, $s3
/* 006774 70005B74 0FC240F0 */ jal debugmenuUpdate
/* 006778 70005B78 00000000 */ nop
/* 00677C 70005B7C 0FC240DE */ jal debugmenuRender
/* 006780 70005B80 02602025 */ move $a0, $s3
/* 006784 70005B84 00409825 */ move $s3, $v0
/* 006788 70005B88 02601025 */ move $v0, $s3
.L70005B8C:
/* 00678C 70005B8C 26730008 */ addiu $s3, $s3, 8
/* 006790 70005B90 3C09E900 */ lui $t1, 0xe900
/* 006794 70005B94 AC490000 */ sw $t1, ($v0)
/* 006798 70005B98 AC400004 */ sw $zero, 4($v0)
/* 00679C 70005B9C 02601825 */ move $v1, $s3
/* 0067A0 70005BA0 3C0DB800 */ lui $t5, 0xb800
/* 0067A4 70005BA4 AC6D0000 */ sw $t5, ($v1)
/* 0067A8 70005BA8 AC600004 */ sw $zero, 4($v1)
/* 0067AC 70005BAC 3C0C8002 */ lui $t4, %hi(g_ShowMemUseFlag) # $t4, 0x8002
/* 0067B0 70005BB0 8D8C2044 */ lw $t4, %lo(g_ShowMemUseFlag)($t4)
/* 0067B4 70005BB4 26730008 */ addiu $s3, $s3, 8
/* 0067B8 70005BB8 1180000B */ beqz $t4, .L70005BE8
/* 0067BC 70005BBC 00000000 */ nop
/* 0067C0 70005BC0 0C002354 */ jal nulled_mempLoopAllMemBanks
/* 0067C4 70005BC4 00000000 */ nop
/* 0067C8 70005BC8 0C0025BF */ jal memaDumpPrePostMerge
/* 0067CC 70005BCC 00000000 */ nop
/* 0067D0 70005BD0 0FC2F2C9 */ jal dynRemovedFunc
/* 0067D4 70005BD4 02602025 */ move $a0, $s3
/* 0067D8 70005BD8 0FC316DC */ jal nullsub_41
/* 0067DC 70005BDC 00002025 */ move $a0, $zero
/* 0067E0 70005BE0 3C018002 */ lui $at, %hi(g_ShowMemUseFlag) # $at, 0x8002
/* 0067E4 70005BE4 AC202044 */ sw $zero, %lo(g_ShowMemUseFlag)($at)
.L70005BE8:
/* 0067E8 70005BE8 3C0A8002 */ lui $t2, %hi(g_ShowMemBarsFlag) # $t2, 0x8002
/* 0067EC 70005BEC 8D4A2048 */ lw $t2, %lo(g_ShowMemBarsFlag)($t2)
/* 0067F0 70005BF0 11400003 */ beqz $t2, .L70005C00
/* 0067F4 70005BF4 00000000 */ nop
/* 0067F8 70005BF8 0FC2F2F0 */ jal dynDrawMembars
/* 0067FC 70005BFC 02602025 */ move $a0, $s3
.L70005C00:
/* 006800 70005C00 0FC2F293 */ jal dynGetFreeGfx2
/* 006804 70005C04 02602025 */ move $a0, $s3
/* 006808 70005C08 0FC2F2BA */ jal dynSwapBuffers
/* 00680C 70005C0C 00000000 */ nop
/* 006810 70005C10 0C000B83 */ jal video_related_8
/* 006814 70005C14 00000000 */ nop
/* 006818 70005C18 0FC2412E */ jal get_debug_taskgrab_val
/* 00681C 70005C1C 00000000 */ nop
/* 006820 70005C20 1040001C */ beqz $v0, .L70005C94
/* 006824 70005C24 00002025 */ move $a0, $zero
/* 006828 70005C28 0C002C48 */ jal joyGetButtonsPressedThisFrame
/* 00682C 70005C2C 3405C000 */ li $a1, 49152
/* 006830 70005C30 10400018 */ beqz $v0, .L70005C94
/* 006834 70005C34 00002025 */ move $a0, $zero
/* 006838 70005C38 0C002C20 */ jal joyGetButtons
/* 00683C 70005C3C 3405C000 */ li $a1, 49152
/* 006840 70005C40 3401C000 */ li $at, 49152
/* 006844 70005C44 14410013 */ bne $v0, $at, .L70005C94
.L70005C48:
/* 006848 70005C48 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) # $a2, 0x8002
/* 00684C 70005C4C 8CC621B4 */ lw $a2, %lo(taskgrab_ramdump_num)($a2)
/* 006850 70005C50 02802025 */ move $a0, $s4
/* 006854 70005C54 0C00283D */ jal sprintf
/* 006858 70005C58 02C02825 */ move $a1, $s6
/* 00685C 70005C5C 02802025 */ move $a0, $s4
/* 006860 70005C60 0FC33D6E */ jal indycommHostCheckFileExists
/* 006864 70005C64 02E02825 */ move $a1, $s7
/* 006868 70005C68 10400006 */ beqz $v0, .L70005C84
/* 00686C 70005C6C 3C068002 */ lui $a2, %hi(taskgrab_ramdump_num) # $a2, 0x8002
/* 006870 70005C70 8CC621B4 */ lw $a2, %lo(taskgrab_ramdump_num)($a2)
/* 006874 70005C74 3C018002 */ lui $at, %hi(taskgrab_ramdump_num) # $at, 0x8002
/* 006878 70005C78 24C60001 */ addiu $a2, $a2, 1
/* 00687C 70005C7C 1000FFF2 */ b .L70005C48
/* 006880 70005C80 AC2621B4 */ sw $a2, %lo(taskgrab_ramdump_num)($at)
.L70005C84:
/* 006884 70005C84 02802025 */ move $a0, $s4
/* 006888 70005C88 3C058000 */ lui $a1, 0x8000
/* 00688C 70005C8C 0FC33D40 */ jal indycommHostSendDump
/* 006890 70005C90 3C060040 */ lui $a2, 0x40
.L70005C94:
/* 006894 70005C94 8FA401A4 */ lw $a0, 0x1a4($sp)
/* 006898 70005C98 02602825 */ move $a1, $s3
/* 00689C 70005C9C 00003025 */ move $a2, $zero
/* 0068A0 70005CA0 0FC33CCE */ jal rspGfxTaskStart
/* 0068A4 70005CA4 8FA70048 */ lw $a3, 0x48($sp)
/* 0068A8 70005CA8 0C00249C */ jal memaIterateAndMerge
/* 0068AC 70005CAC 27DE0001 */ addiu $fp, $fp, 1
/* 0068B0 70005CB0 0FC30029 */ jal eu_sub_7f0c00a4
/* 0068B4 70005CB4 00000000 */ nop
/* 0068B8 70005CB8 8FAF01AC */ lw $t7, 0x1ac($sp)
/* 0068BC 70005CBC 3C040001 */ lui $a0, 1
/* 0068C0 70005CC0 39EE0001 */ xori $t6, $t7, 1
/* 0068C4 70005CC4 0C000AF0 */ jal speedGraphDisplay
/* 0068C8 70005CC8 AFAE01AC */ sw $t6, 0x1ac($sp)
/* 0068CC 70005CCC 3C028002 */ lui $v0, %hi(g_MainStageNum) # $v0, 0x8002
/* 0068D0 70005CD0 10000006 */ b .L70005CEC
/* 0068D4 70005CD4 8C42218C */ lw $v0, %lo(g_MainStageNum)($v0)
.L70005CD8:
/* 0068D8 70005CD8 27DEFFFF */ addiu $fp, $fp, -1
/* 0068DC 70005CDC 10000003 */ b .L70005CEC
/* 0068E0 70005CE0 8C42218C */ lw $v0, 0x218c($v0)
.L70005CE4:
/* 0068E4 70005CE4 241E0004 */ li $fp, 4
/* 0068E8 70005CE8 8C42218C */ lw $v0, 0x218c($v0)
.L70005CEC:
/* 0068EC 70005CEC 0440FED3 */ bltz $v0, .L7000583C
/* 0068F0 70005CF0 00000000 */ nop
/* 0068F4 70005CF4 17C0FED1 */ bnez $fp, .L7000583C
/* 0068F8 70005CF8 00000000 */ nop
.L70005CFC:
/* 0068FC 70005CFC 0FC2FBD9 */ jal lvlUnloadStageTextData
/* 006900 70005D00 00000000 */ nop
/* 006904 70005D04 0FC2FF5F */ jal stop_demo_playback
/* 006908 70005D08 00000000 */ nop
/* 00690C 70005D0C 0C002389 */ jal mempNullNextEntryInBank
/* 006910 70005D10 24040004 */ li $a0, 4
/* 006914 70005D14 0FC2F15D */ jal obBlankResourcesLoadedInBank
/* 006918 70005D18 24040004 */ li $a0, 4
/* 00691C 70005D1C 3C028002 */ lui $v0, %hi(g_MainStageNum) # $v0, 0x8002
/* 006920 70005D20 2442218C */ addiu $v0, %lo(g_MainStageNum) # addiu $v0, $v0, 0x218c
/* 006924 70005D24 8C4B0000 */ lw $t3, ($v0)
/* 006928 70005D28 8FB901DC */ lw $t9, 0x1dc($sp)
/* 00692C 70005D2C 3C018002 */ lui $at, %hi(g_StageNum) # $at, 0x8002
/* 006930 70005D30 2418FFFF */ li $t8, -1
/* 006934 70005D34 AC2B2038 */ sw $t3, %lo(g_StageNum)($at)
/* 006938 70005D38 1320FE1C */ beqz $t9, .L700055AC
/* 00693C 70005D3C AC580000 */ sw $t8, ($v0)
/* 006940 70005D40 0FC343E7 */ jal sub_GAME_7F0D1A7C
/* 006944 70005D44 AFB301A8 */ sw $s3, 0x1a8($sp)
/* 006948 70005D48 8FBF003C */ lw $ra, 0x3c($sp)
/* 00694C 70005D4C 8FB00018 */ lw $s0, 0x18($sp)
/* 006950 70005D50 8FB1001C */ lw $s1, 0x1c($sp)
/* 006954 70005D54 8FB20020 */ lw $s2, 0x20($sp)
/* 006958 70005D58 8FB30024 */ lw $s3, 0x24($sp)
/* 00695C 70005D5C 8FB40028 */ lw $s4, 0x28($sp)
/* 006960 70005D60 8FB5002C */ lw $s5, 0x2c($sp)
/* 006964 70005D64 8FB60030 */ lw $s6, 0x30($sp)
/* 006968 70005D68 8FB70034 */ lw $s7, 0x34($sp)
/* 00696C 70005D6C 8FBE0038 */ lw $fp, 0x38($sp)
/* 006970 70005D70 03E00008 */ jr $ra
/* 006974 70005D74 27BD01E0 */ addiu $sp, $sp, 0x1e0
)
#endif
/**
* 7530 70006930
@@ -1354,6 +712,6 @@ s32 bossGetDebugParseFlag(void) {
* 75C0 700069C0
* V0= p->debug.notice.list entry for boss_c_debug using data at 800241A0
*/
void bossInitDebugNoticeList(void) {
void bossInit(void) {
debTryAdd(&g_BossDebugNoticeEntry, "boss_c_debug");
}
+1 -1
View File
@@ -11,7 +11,7 @@ struct memallocstring
LEVELID bossGetStageNum();
void bossSetLoadedStage(LEVELID stage);
void bossInitDebugNoticeList(void);
void bossInit(void);
void bossEnableShowMemUseFlag(void);
void bossMemBarsFlagToggle(void);
void bossRunTitleStage(void);
+20 -29
View File
@@ -140,7 +140,7 @@
// bss - TLB section
OSThread g_tlbThread;
u8 g_tlbUnused[0x500];
u8 g_CrashMessage[0x500];
char g_tlbStack[0x2300];
OSMesgQueue g_faultMesgQ;
OSMesg *g_faultMesgBuf;
@@ -150,7 +150,7 @@ OSMesg *g_faultMesgBuf;
*/
// Padding
u32 D_80023300 = 0;
u32 g_CrashEnabled = FALSE;
//The following regDesc's are similar to PR/Tools/Gload/Server.c
/*
@@ -313,6 +313,7 @@ u32 D_80024184[4] = {0};
void crashMain(void* arg0);
void crashPrintDescription(u32 mask, char *label, struct regDesc_t *description);
// end forward declarations
/**
@@ -605,45 +606,35 @@ u8 *crashIndyFileGetAddressSubsequentData(u8 *arg0)
*/
s32 crashIndyScanLoadResourceIdFromBuffer(u32 arg0)
{
u32 *temp_v1;
u8 *phi_s0 = (u8 *)0xE00004;
u8 *v0;
u32 a0 = arg0;
u8 *phi_s3;
u32 this = 0x00e00004;
u32 prev = 0x00e00004;
phi_s3 = phi_s0;
while (TRUE) {
u32 next = crashIndyFileGetAddressSubsequentData(this);
while (1)
{
v0 = crashIndyFileGetAddressSubsequentData(phi_s0);
if (arg0 >= (u32)g_indyCurrentReadBufferResourceId) {
prev = this;
temp_v1 = g_indyCurrentReadBufferResourceId;
if (g_indyCurrentReadBufferResourceId == 0) {
return FALSE;
}
if (a0 < (u32)temp_v1)
{
break;
}
this = next;
} else {
break;
}
}
phi_s3 = phi_s0;
crashIndyFileGetAddressSubsequentData(prev);
if (temp_v1 == NULL)
{
return 0;
}
phi_s0 = v0;
}
crashIndyFileGetAddressSubsequentData(phi_s3);
return 1;
return TRUE;
}
/**
* 5FC8 700053C8
* V0= TRUE if valid indy.read.buf.resourceID [matches 826475BE]
*/
u32 crashIidyIsValidReadBufferResourceId(void)
u32 crashIndyIsValidReadBufferResourceId(void)
{
crashIndyFileGetAddressSubsequentData((u8*)0xe00000);
return ((u32)g_indyCurrentReadBufferResourceId ^ 0x826475be) == 0;
+1 -1
View File
@@ -7,7 +7,7 @@
#define STACK_POINTER_COUNT 5
typedef struct
typedef struct regDesc_t
{
u32 mask;
u32 value;
+101 -335
View File
@@ -119,6 +119,7 @@ Gfx g_DebugMenuEndDisplayList = gsSPEndDisplayList();
Gfx g_DebugMenuNoOp = gsDPNoOp();
Gfx g_DebugMenuPrimitiveColor = gsDPSetPrimColor(0, 0, 255, 255, 255, 0);
Gfx g_DebugMenuEnvironmentColor = gsDPSetEnvColor(0, 0, 0, 0);
u32 g_DebugMenuPercentage = 0xFF; // Static?
#endif
/**
@@ -214,89 +215,33 @@ void debmenu7000AF84(s32 x1, s32 y1, s32 x2, s32 y2) {
}
#endif
#ifdef NONMATCHING
#ifndef LEFTOVERDEBUG
void debmenu7000AF98(s32 height)
{
s32 x; s32 y;
#ifdef LEFTOVERDEBUG
s32 x;
s32 y;
for (y = 33, height = height + 33; y != 0; y--, height--)
for (y = 34, height += y - 1; y--; height-- )
{
if ((height >= 0) && (height < 35)) {
if ((height >= 0) && (height < 35))
{
for ( x = 0; x != 80; x++)
{
debmenu7000AF84(x, height, x, y);
}
} else {
}
else
{
for (x = 0; x != 80; x++)
{
debmenuWriteCharAtPos(x, y, 0);
}
}
}
}
}
#endif
#else
#ifndef LEFTOVERDEBUG
s32 debmenu7000AF98(s32 height) {
}
}
#else
GLOBAL_ASM(
.text
glabel debmenu7000AF98
/* 00BB98 7000AF98 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 00BB9C 7000AF9C AFB30020 */ sw $s3, 0x20($sp)
/* 00BBA0 7000AFA0 AFB2001C */ sw $s2, 0x1c($sp)
/* 00BBA4 7000AFA4 AFB10018 */ sw $s1, 0x18($sp)
/* 00BBA8 7000AFA8 AFBF0024 */ sw $ra, 0x24($sp)
/* 00BBAC 7000AFAC AFB00014 */ sw $s0, 0x14($sp)
/* 00BBB0 7000AFB0 24110021 */ li $s1, 33
/* 00BBB4 7000AFB4 24120050 */ li $s2, 80
/* 00BBB8 7000AFB8 24930021 */ addiu $s3, $a0, 0x21
.L7000AFBC:
/* 00BBBC 7000AFBC 0660000D */ bltz $s3, .L7000AFF4
/* 00BBC0 7000AFC0 2A610023 */ slti $at, $s3, 0x23
/* 00BBC4 7000AFC4 1020000B */ beqz $at, .L7000AFF4
/* 00BBC8 7000AFC8 00008025 */ move $s0, $zero
/* 00BBCC 7000AFCC 02002025 */ move $a0, $s0
.L7000AFD0:
/* 00BBD0 7000AFD0 02602825 */ move $a1, $s3
/* 00BBD4 7000AFD4 02003025 */ move $a2, $s0
/* 00BBD8 7000AFD8 0C002BE1 */ jal debmenu7000AF84
/* 00BBDC 7000AFDC 02203825 */ move $a3, $s1
/* 00BBE0 7000AFE0 26100001 */ addiu $s0, $s0, 1
/* 00BBE4 7000AFE4 5612FFFA */ bnel $s0, $s2, .L7000AFD0
/* 00BBE8 7000AFE8 02002025 */ move $a0, $s0
/* 00BBEC 7000AFEC 1000000A */ b .L7000B018
/* 00BBF0 7000AFF0 02201025 */ move $v0, $s1
.L7000AFF4:
/* 00BBF4 7000AFF4 00008025 */ move $s0, $zero
/* 00BBF8 7000AFF8 02002025 */ move $a0, $s0
.L7000AFFC:
/* 00BBFC 7000AFFC 02202825 */ move $a1, $s1
/* 00BC00 7000B000 0C002B74 */ jal debmenuWriteCharAtPos
/* 00BC04 7000B004 00003025 */ move $a2, $zero
/* 00BC08 7000B008 26100001 */ addiu $s0, $s0, 1
/* 00BC0C 7000B00C 5612FFFB */ bnel $s0, $s2, .L7000AFFC
/* 00BC10 7000B010 02002025 */ move $a0, $s0
/* 00BC14 7000B014 02201025 */ move $v0, $s1
.L7000B018:
/* 00BC18 7000B018 2673FFFF */ addiu $s3, $s3, -1
/* 00BC1C 7000B01C 1620FFE7 */ bnez $s1, .L7000AFBC
/* 00BC20 7000B020 2631FFFF */ addiu $s1, $s1, -1
/* 00BC24 7000B024 8FBF0024 */ lw $ra, 0x24($sp)
/* 00BC28 7000B028 8FB00014 */ lw $s0, 0x14($sp)
/* 00BC2C 7000B02C 8FB10018 */ lw $s1, 0x18($sp)
/* 00BC30 7000B030 8FB2001C */ lw $s2, 0x1c($sp)
/* 00BC34 7000B034 8FB30020 */ lw $s3, 0x20($sp)
/* 00BC38 7000B038 03E00008 */ jr $ra
/* 00BC3C 7000B03C 27BD0028 */ addiu $sp, $sp, 0x28
)
#endif
#endif
void debmenuSetPos(s32 x, s32 y) {
#ifdef LEFTOVERDEBUG
@@ -362,320 +307,141 @@ void debmenuSetPositionAndWriteString(s32 x, s32 y, const unsigned char *str) {
#endif
}
//hacky hack for DEBUGMENU until properly decompiled
#if !defined(DEBUGMENU) && defined(LEFTOVERDEBUG)
u32 percentage = 0xFF; // Static?
#endif
#ifdef DEBUGMENU
u32 get_random_value(void);
// very close gSPTextureRectangle has some reordering issues
Gfx *debmenuDraw(Gfx *gdl)
{
#if defined(LEFTOVERDEBUG)
s32 x;
#if defined(LEFTOVERDEBUG)
s32 y;
s32 x;
s32 appliedpaletteindex;
s32 available;
s32 needed;
s32 available;
Gfx *gdl2;
static u32 percentage = 255;
// Calculate how much space is needed in the display list
// based on the number of characters to draw and the number
// of times the colours will be changed.
gdl2 = gdl;
appliedpaletteindex = -1;
for (y = 0; y < 35; y++) {
for (x = 0; x < 80; x++) {
for (y = 0; y < 35; y++)
{
for (x = 0; x < 80; x++)
{
u32 c = g_DebugMenuTextBuffer[x][y].chr;
s32 paletteindex = g_DebugMenuTextBuffer[x][y].color;
if (c != '\0') {
if (paletteindex != appliedpaletteindex) {
if (c != '\0')
{
if (paletteindex != appliedpaletteindex)
{
gdl2 += 2;
appliedpaletteindex = paletteindex;
}
if (1);
gdl2 += 3;
if (1)
{
gdl2 += 3;
}
}
}
}
// Make sure there'll be a least 256 GBI commands free (2KB)
available = dynGetFreeGfx(gdl) - 256 * sizeof(Gfx);
needed = (u32)gdl2 - (u32)gdl;
if (needed <= 0) { // shouldn't be possible
return gdl;
}
if(1)
{
s32 x;
s32 appliedpaletteindex = -1;
// Write a "percentage" (out of 255) into a global variable
// Write a "g_DebugMenuPercentage" (out of 255) into a global variable
// which shows how much of the displaylist will be committed,
// provided 2KB is kept free.
if (available <= 0) {
// provided 2KB is kept free.
if (available <= 0)
{
// There's already less than 2KB free in the display list
percentage = 0;
} else if (needed > available) {
g_DebugMenuPercentage = 0;
}
else if (needed > available)
{
// The display list would end with less than 2KB free,
// so calculate the percentage
percentage = available * 255 / needed;
} else {
// so calculate the g_DebugMenuPercentage
g_DebugMenuPercentage = available * 255 / needed;
}
else
{
// The display list would end with at least 2KB free,
// so the displaylist can be committed in full
percentage = 256;
g_DebugMenuPercentage = 256;
}
gSPDisplayList(gdl++, g_DebugMenuTextureDisplayList);
// Build the display list for real this time.
// Build the display list for real this time.
// Regardless of the availability checks above, just stop when
// there's less than 1KB of free space... sort of. It still writes
// the colour change commands, but the debug HUD doesn't exactly
// draw rainbows so it's no big deal.
for (y = 0; y < 35; y++) {
for (x = 0; x < 80; x++) {
for (y = 0; y < 35; y++)
{
s32 x;
for (x = 0; x < 80; x++)
{
u32 c = g_DebugMenuTextBuffer[x][y].chr;
s32 paletteindex = g_DebugMenuTextBuffer[x][y].color;
if (c != '\0') {
if (paletteindex != appliedpaletteindex) {
*gdl = g_DHudFgGbiPtrs[paletteindex]; gdl++;
*gdl = g_DHudBgGbiPtrs[paletteindex]; gdl++;
if(x == 80);
if (c != '\0')
{
if (paletteindex != appliedpaletteindex)
{
*gdl = g_DHudFgGbiPtrs[paletteindex];
gdl++;
*gdl = g_DHudBgGbiPtrs[paletteindex];
gdl++;
appliedpaletteindex = paletteindex;
}
#ifndef DEBUGMENU
if ((randomGetNext() & 0xFF) < percentage) {
#else
if(1) {
#endif
if (dynGetFreeGfx(gdl) >= 1024) {
#ifndef DEBUGMENU
if ((randomGetNext() & 0xFF) < g_DebugMenuPercentage )
#else
if(1)
#endif
{
if (dynGetFreeGfx(gdl) >= 1024)
{
gSPTextureRectangle(gdl++,
// Screen coords to draw at
x * 4 * 4,
y * 7 * 4,
x * 4 * 4 + 4 * 4,
y * 7 * 4 + 7 * 4,
0,
// Sprite X and Y positions
((c - ' ') % 32) * 4 * 32,
((s32)(c - ' ') >> 5) * 7 * 32,
1024, 1024);
// Screen coords to draw at
x * 4 * 4,
y * 7 * 4,
x * 4 * 4 + 4 * 4,
y * 7 * 4 + 7 * 4,
G_TX_RENDERTILE,
// Sprite X and Y positions
((c - ' ') % 32) * 4 * 32,
((s32)(c - ' ') >> 5) * 7 * 32,
1024,
1024);
}
}
}
if (appliedpaletteindex == 1);
if(y);
}
}
}
#endif
#endif // defined(LEFTOVERDEBUG)
return gdl;
}
#else
#ifndef VERSION_EU
GLOBAL_ASM(
.text
glabel debmenuDraw
/* 00BE7C 7000B27C 27BDFF78 */ addiu $sp, $sp, -0x88
/* 00BE80 7000B280 AFB5002C */ sw $s5, 0x2c($sp)
/* 00BE84 7000B284 AFB1001C */ sw $s1, 0x1c($sp)
/* 00BE88 7000B288 AFB00018 */ sw $s0, 0x18($sp)
/* 00BE8C 7000B28C 3C078002 */ lui $a3, %hi(g_DHudFgGbiPtrs)
/* 00BE90 7000B290 00808025 */ move $s0, $a0
/* 00BE94 7000B294 AFBF003C */ sw $ra, 0x3c($sp)
/* 00BE98 7000B298 AFBE0038 */ sw $fp, 0x38($sp)
/* 00BE9C 7000B29C AFB70034 */ sw $s7, 0x34($sp)
/* 00BEA0 7000B2A0 AFB60030 */ sw $s6, 0x30($sp)
/* 00BEA4 7000B2A4 AFB40028 */ sw $s4, 0x28($sp)
/* 00BEA8 7000B2A8 AFB30024 */ sw $s3, 0x24($sp)
/* 00BEAC 7000B2AC AFB20020 */ sw $s2, 0x20($sp)
/* 00BEB0 7000B2B0 00808825 */ move $s1, $a0
/* 00BEB4 7000B2B4 2406FFFF */ li $a2, -1
/* 00BEB8 7000B2B8 24E76610 */ addiu $a3, %lo(g_DHudFgGbiPtrs) # addiu $a3, $a3, 0x6610
/* 00BEBC 7000B2BC 0000A825 */ move $s5, $zero
/* 00BEC0 7000B2C0 00004025 */ move $t0, $zero
.L7000B2C4:
/* 00BEC4 7000B2C4 3C0E8002 */ lui $t6, %hi(g_DebugMenuTextBuffer)
/* 00BEC8 7000B2C8 25C55030 */ addiu $a1, $t6, %lo(g_DebugMenuTextBuffer)
/* 00BECC 7000B2CC 01052021 */ addu $a0, $t0, $a1
.L7000B2D0:
/* 00BED0 7000B2D0 90820000 */ lbu $v0, ($a0)
/* 00BED4 7000B2D4 24A50046 */ addiu $a1, $a1, 0x46
/* 00BED8 7000B2D8 90830001 */ lbu $v1, 1($a0)
/* 00BEDC 7000B2DC 10400006 */ beqz $v0, .L7000B2F8
/* 00BEE0 7000B2E0 00000000 */ nop
/* 00BEE4 7000B2E4 50660004 */ beql $v1, $a2, .L7000B2F8
/* 00BEE8 7000B2E8 26310018 */ addiu $s1, $s1, 0x18
/* 00BEEC 7000B2EC 26310010 */ addiu $s1, $s1, 0x10
/* 00BEF0 7000B2F0 00603025 */ move $a2, $v1
/* 00BEF4 7000B2F4 26310018 */ addiu $s1, $s1, 0x18
.L7000B2F8:
/* 00BEF8 7000B2F8 14A7FFF5 */ bne $a1, $a3, .L7000B2D0
/* 00BEFC 7000B2FC 24840046 */ addiu $a0, $a0, 0x46
/* 00BF00 7000B300 25080002 */ addiu $t0, $t0, 2
/* 00BF04 7000B304 29010046 */ slti $at, $t0, 0x46
/* 00BF08 7000B308 1420FFEE */ bnez $at, .L7000B2C4
/* 00BF0C 7000B30C 00000000 */ nop
/* 00BF10 7000B310 0FC2F5DF */ jal dynGetFreeGfx
/* 00BF14 7000B314 02002025 */ move $a0, $s0
/* 00BF18 7000B318 02302023 */ subu $a0, $s1, $s0
/* 00BF1C 7000B31C 1C800003 */ bgtz $a0, .L7000B32C
/* 00BF20 7000B320 2443F800 */ addiu $v1, $v0, -0x800
/* 00BF24 7000B324 10000080 */ b .L7000B528
/* 00BF28 7000B328 02001025 */ move $v0, $s0
.L7000B32C:
/* 00BF2C 7000B32C 1C600004 */ bgtz $v1, .L7000B340
/* 00BF30 7000B330 2414FFFF */ li $s4, -1
/* 00BF34 7000B334 3C018002 */ lui $at, %hi(percentage)
/* 00BF38 7000B338 10000017 */ b .L7000B398
/* 00BF3C 7000B33C AC2068B8 */ sw $zero, %lo(percentage)($at)
.L7000B340:
/* 00BF40 7000B340 0064082A */ slt $at, $v1, $a0
/* 00BF44 7000B344 10200011 */ beqz $at, .L7000B38C
/* 00BF48 7000B348 00037A00 */ sll $t7, $v1, 8
/* 00BF4C 7000B34C 01E37823 */ subu $t7, $t7, $v1
/* 00BF50 7000B350 01E4001A */ div $zero, $t7, $a0
/* 00BF54 7000B354 14800002 */ bnez $a0, .L7000B360
/* 00BF58 7000B358 00000000 */ nop
/* 00BF5C 7000B35C 0007000D */ break 7
.L7000B360:
/* 00BF60 7000B360 2401FFFF */ li $at, -1
/* 00BF64 7000B364 14810004 */ bne $a0, $at, .L7000B378
/* 00BF68 7000B368 3C018000 */ lui $at, 0x8000
/* 00BF6C 7000B36C 15E10002 */ bne $t7, $at, .L7000B378
/* 00BF70 7000B370 00000000 */ nop
/* 00BF74 7000B374 0006000D */ break 6
.L7000B378:
/* 00BF78 7000B378 3C018002 */ lui $at, %hi(percentage)
/* 00BF7C 7000B37C 0000C012 */ mflo $t8
/* 00BF80 7000B380 AC3868B8 */ sw $t8, %lo(percentage)($at)
/* 00BF84 7000B384 10000005 */ b .L7000B39C
/* 00BF88 7000B388 02001025 */ move $v0, $s0
.L7000B38C:
/* 00BF8C 7000B38C 24190100 */ li $t9, 256
/* 00BF90 7000B390 3C018002 */ lui $at, %hi(percentage)
/* 00BF94 7000B394 AC3968B8 */ sw $t9, %lo(percentage)($at)
.L7000B398:
/* 00BF98 7000B398 02001025 */ move $v0, $s0
.L7000B39C:
/* 00BF9C 7000B39C 3C0A8002 */ lui $t2, %hi(g_DebugMenuTextureDisplayList)
/* 00BFA0 7000B3A0 254A4FB0 */ addiu $t2, %lo(g_DebugMenuTextureDisplayList) # addiu $t2, $t2, 0x4fb0
/* 00BFA4 7000B3A4 3C090600 */ lui $t1, 0x600
/* 00BFA8 7000B3A8 AC490000 */ sw $t1, ($v0)
/* 00BFAC 7000B3AC AC4A0004 */ sw $t2, 4($v0)
/* 00BFB0 7000B3B0 3C1E8002 */ lui $fp, %hi(g_DHudBgGbiPtrs)
/* 00BFB4 7000B3B4 3C178002 */ lui $s7, %hi(g_DHudFgGbiPtrs)
/* 00BFB8 7000B3B8 26100008 */ addiu $s0, $s0, 8
/* 00BFBC 7000B3BC 26F76610 */ addiu $s7, %lo(g_DHudFgGbiPtrs) # addiu $s7, $s7, 0x6610
/* 00BFC0 7000B3C0 27DE6710 */ addiu $fp, %lo(g_DHudBgGbiPtrs) # addiu $fp, $fp, 0x6710
/* 00BFC4 7000B3C4 AFA00040 */ sw $zero, 0x40($sp)
/* 00BFC8 7000B3C8 0000A825 */ move $s5, $zero
/* 00BFCC 7000B3CC 24160050 */ li $s6, 80
.L7000B3D0:
/* 00BFD0 7000B3D0 8FAB0040 */ lw $t3, 0x40($sp)
/* 00BFD4 7000B3D4 3C0C8002 */ lui $t4, %hi(g_DebugMenuTextBuffer)
/* 00BFD8 7000B3D8 258C5030 */ addiu $t4, %lo(g_DebugMenuTextBuffer) # addiu $t4, $t4, 0x5030
/* 00BFDC 7000B3DC 00008825 */ move $s1, $zero
/* 00BFE0 7000B3E0 016C9021 */ addu $s2, $t3, $t4
.L7000B3E4:
/* 00BFE4 7000B3E4 92530000 */ lbu $s3, ($s2)
/* 00BFE8 7000B3E8 92430001 */ lbu $v1, 1($s2)
/* 00BFEC 7000B3EC 52600045 */ beql $s3, $zero, .L7000B504
/* 00BFF0 7000B3F0 26310001 */ addiu $s1, $s1, 1
/* 00BFF4 7000B3F4 1074000D */ beq $v1, $s4, .L7000B42C
/* 00BFF8 7000B3F8 000310C0 */ sll $v0, $v1, 3
/* 00BFFC 7000B3FC 02E26821 */ addu $t5, $s7, $v0
/* 00C000 7000B400 8DA10000 */ lw $at, ($t5)
/* 00C004 7000B404 03C2C021 */ addu $t8, $fp, $v0
/* 00C008 7000B408 26100010 */ addiu $s0, $s0, 0x10
/* 00C00C 7000B40C AE01FFF0 */ sw $at, -0x10($s0)
/* 00C010 7000B410 8DAF0004 */ lw $t7, 4($t5)
/* 00C014 7000B414 0060A025 */ move $s4, $v1
/* 00C018 7000B418 AE0FFFF4 */ sw $t7, -0xc($s0)
/* 00C01C 7000B41C 8F010000 */ lw $at, ($t8)
/* 00C020 7000B420 AE01FFF8 */ sw $at, -8($s0)
/* 00C024 7000B424 8F090004 */ lw $t1, 4($t8)
/* 00C028 7000B428 AE09FFFC */ sw $t1, -4($s0)
.L7000B42C:
/* 00C02C 7000B42C 0C002914 */ jal randomGetNext
/* 00C030 7000B430 00000000 */ nop
/* 00C034 7000B434 3C0B8002 */ lui $t3, %hi(percentage)
/* 00C038 7000B438 8D6B68B8 */ lw $t3, %lo(percentage)($t3)
/* 00C03C 7000B43C 304A00FF */ andi $t2, $v0, 0xff
/* 00C040 7000B440 014B082B */ sltu $at, $t2, $t3
/* 00C044 7000B444 5020002F */ beql $at, $zero, .L7000B504
/* 00C048 7000B448 26310001 */ addiu $s1, $s1, 1
/* 00C04C 7000B44C 0FC2F5DF */ jal dynGetFreeGfx
/* 00C050 7000B450 02002025 */ move $a0, $s0
/* 00C054 7000B454 28410400 */ slti $at, $v0, 0x400
/* 00C058 7000B458 14200029 */ bnez $at, .L7000B500
/* 00C05C 7000B45C 02001025 */ move $v0, $s0
/* 00C060 7000B460 00111900 */ sll $v1, $s1, 4
/* 00C064 7000B464 001520C0 */ sll $a0, $s5, 3
/* 00C068 7000B468 00952023 */ subu $a0, $a0, $s5
/* 00C06C 7000B46C 246C0010 */ addiu $t4, $v1, 0x10
/* 00C070 7000B470 318E0FFF */ andi $t6, $t4, 0xfff
/* 00C074 7000B474 00042080 */ sll $a0, $a0, 2
/* 00C078 7000B478 306A0FFF */ andi $t2, $v1, 0xfff
/* 00C07C 7000B47C 000A5B00 */ sll $t3, $t2, 0xc
/* 00C080 7000B480 000E6B00 */ sll $t5, $t6, 0xc
/* 00C084 7000B484 2499001C */ addiu $t9, $a0, 0x1c
/* 00C088 7000B488 308C0FFF */ andi $t4, $a0, 0xfff
/* 00C08C 7000B48C 3C01E400 */ lui $at, 0xe400
/* 00C090 7000B490 2666FFE0 */ addiu $a2, $s3, -0x20
/* 00C094 7000B494 00065143 */ sra $t2, $a2, 5
/* 00C098 7000B498 01A17825 */ or $t7, $t5, $at
/* 00C09C 7000B49C 016C7025 */ or $t6, $t3, $t4
/* 00C0A0 7000B4A0 33380FFF */ andi $t8, $t9, 0xfff
/* 00C0A4 7000B4A4 01F84825 */ or $t1, $t7, $t8
/* 00C0A8 7000B4A8 000A58C0 */ sll $t3, $t2, 3
/* 00C0AC 7000B4AC 016A5823 */ subu $t3, $t3, $t2
/* 00C0B0 7000B4B0 26100008 */ addiu $s0, $s0, 8
/* 00C0B4 7000B4B4 02002825 */ move $a1, $s0
/* 00C0B8 7000B4B8 000B5940 */ sll $t3, $t3, 5
/* 00C0BC 7000B4BC AC490000 */ sw $t1, ($v0)
/* 00C0C0 7000B4C0 30D8001F */ andi $t8, $a2, 0x1f
/* 00C0C4 7000B4C4 AC4E0004 */ sw $t6, 4($v0)
/* 00C0C8 7000B4C8 00184DC0 */ sll $t1, $t8, 0x17
/* 00C0CC 7000B4CC 316CFFFF */ andi $t4, $t3, 0xffff
/* 00C0D0 7000B4D0 26100008 */ addiu $s0, $s0, 8
/* 00C0D4 7000B4D4 3C0DB400 */ lui $t5, 0xb400
/* 00C0D8 7000B4D8 ACAD0000 */ sw $t5, ($a1)
/* 00C0DC 7000B4DC 02003825 */ move $a3, $s0
/* 00C0E0 7000B4E0 012C7025 */ or $t6, $t1, $t4
/* 00C0E4 7000B4E4 ACAE0004 */ sw $t6, 4($a1)
/* 00C0E8 7000B4E8 3C190400 */ lui $t9, (0x04000400 >> 16) # lui $t9, 0x400
/* 00C0EC 7000B4EC 37390400 */ ori $t9, (0x04000400 & 0xFFFF) # ori $t9, $t9, 0x400
/* 00C0F0 7000B4F0 3C0DB300 */ lui $t5, 0xb300
/* 00C0F4 7000B4F4 ACED0000 */ sw $t5, ($a3)
/* 00C0F8 7000B4F8 ACF90004 */ sw $t9, 4($a3)
/* 00C0FC 7000B4FC 26100008 */ addiu $s0, $s0, 8
.L7000B500:
/* 00C100 7000B500 26310001 */ addiu $s1, $s1, 1
.L7000B504:
/* 00C104 7000B504 1636FFB7 */ bne $s1, $s6, .L7000B3E4
/* 00C108 7000B508 26520046 */ addiu $s2, $s2, 0x46
/* 00C10C 7000B50C 8FAF0040 */ lw $t7, 0x40($sp)
/* 00C110 7000B510 26B50001 */ addiu $s5, $s5, 1
/* 00C114 7000B514 24010023 */ li $at, 35
/* 00C118 7000B518 25F80002 */ addiu $t8, $t7, 2
/* 00C11C 7000B51C 16A1FFAC */ bne $s5, $at, .L7000B3D0
/* 00C120 7000B520 AFB80040 */ sw $t8, 0x40($sp)
/* 00C124 7000B524 02001025 */ move $v0, $s0
.L7000B528:
/* 00C128 7000B528 8FBF003C */ lw $ra, 0x3c($sp)
/* 00C12C 7000B52C 8FB00018 */ lw $s0, 0x18($sp)
/* 00C130 7000B530 8FB1001C */ lw $s1, 0x1c($sp)
/* 00C134 7000B534 8FB20020 */ lw $s2, 0x20($sp)
/* 00C138 7000B538 8FB30024 */ lw $s3, 0x24($sp)
/* 00C13C 7000B53C 8FB40028 */ lw $s4, 0x28($sp)
/* 00C140 7000B540 8FB5002C */ lw $s5, 0x2c($sp)
/* 00C144 7000B544 8FB60030 */ lw $s6, 0x30($sp)
/* 00C148 7000B548 8FB70034 */ lw $s7, 0x34($sp)
/* 00C14C 7000B54C 8FBE0038 */ lw $fp, 0x38($sp)
/* 00C150 7000B550 03E00008 */ jr $ra
/* 00C154 7000B554 27BD0088 */ addiu $sp, $sp, 0x88
)
#else
Gfx *debmenuDraw(Gfx *gdl)
{
return gdl;
}
#endif
#endif
}
+18 -37
View File
@@ -57,8 +57,8 @@ struct VideoSettings_s g_ViDataArray[NUM_VIDEO_SETTINGS] =
#else
struct VideoSettings_s g_ViDataArray[NUM_VIDEO_SETTINGS] =
{
{0, 0, 0, 0, 320, 240, 60.0f, 1.3333334f, 30.0f, 10000.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 320, 240, 0, 0, 1, NULL},
{0, 0, 0, 0, 320, 240, 60.0f, 1.3333334f, 30.0f, 10000.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 320, 240, 0, 0, 1, NULL}
{0, 0, 0, 0, 320, 240, 60.0f, ASPECT_RATIO_SD, 30.0f, 10000.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 320, 240, 0, 0, 1, NULL},
{0, 0, 0, 0, 320, 240, 60.0f, ASPECT_RATIO_SD, 30.0f, 10000.0f, SCREEN_WIDTH, SCREEN_HEIGHT, 320, 240, 0, 0, 1, NULL}
};
#endif
@@ -284,6 +284,8 @@ void viVsyncRelated(void)
* 3E98 70003298
* Some code (and defines) based on n64devkit\ultra\usr\src\pr\demos\blockmonkey\block.c
*
* https://decomp.me/scratch/0yXle 98.52%
*
* decomp status:
* - compiles: yes
* - stack resize: ok
@@ -492,11 +494,9 @@ void video_related_8(void)
g_ViFrontIndex = (g_ViFrontIndex + 1) % NUM_VIDEO_SETTINGS;
g_ViBackIndex = (g_ViBackIndex + 1) % NUM_VIDEO_SETTINGS;
// first li 44, needs to be signed. (sizeof(VideoSettings) == 44)
g_ViFrontData = (VideoSettings*)((u8*)&g_ViDataArray + (g_ViFrontIndex * (s32)sizeof(VideoSettings)));
g_ViBackData = (VideoSettings*)((u8*)&g_ViDataArray + (g_ViBackIndex * (s32)sizeof(VideoSettings)));
g_ViFrontData = g_ViDataArray + g_ViFrontIndex;
g_ViBackData = g_ViDataArray + g_ViBackIndex;
// second li 44, can be signed or unsigned.
bcopy(settings, g_ViBackData, sizeof(VideoSettings));
g_ViBackData->framebuf = cfb_16[g_ViBackIndex];
}
@@ -1114,7 +1114,7 @@ glabel video_related_8
/* 003A44 70002E44 3C188002 */ lui $t8, %hi(g_viColorOutputMode) # $t8, 0x8002
/* 003A48 70002E48 24010002 */ li $at, 2
/* 003A4C 70002E4C 10610043 */ beq $v1, $at, .L70002F5C
/* 003A50 70002E50 3C0E8002 */ lui $t6, 0x8002
/* 003A50 70002E50 3C0E8002 */ lui $t6, 0x8002 # fixme?
/* 003A54 70002E54 10000050 */ b .L70002F98
/* 003A58 70002E58 00000000 */ nop
.L70002E5C:
@@ -1227,7 +1227,7 @@ glabel video_related_8
/* 003BE4 70002FE4 3C0D8002 */ lui $t5, %hi(g_viColorOutputMode) # $t5, 0x8002
/* 003BE8 70002FE8 340AFFFF */ li $t2, 65535
/* 003BEC 70002FEC 468084A0 */ cvt.s.w $f18, $f16
/* 003BF0 70002FF0 3C088002 */ lui $t0, 0x8002
/* 003BF0 70002FF0 3C088002 */ lui $t0, %hi(D_800232A0)
/* 003BF4 70002FF4 46802220 */ cvt.s.w $f8, $f4
/* 003BF8 70002FF8 460A3083 */ div.s $f2, $f6, $f10
/* 003BFC 70002FFC 14600003 */ bnez $v1, .L7000300C
@@ -1236,22 +1236,22 @@ glabel video_related_8
/* 003C08 70003008 00000000 */ nop
.L7000300C:
/* 003C0C 7000300C 8FFF1160 */ lw $ra, %lo(D_800232C0)($ra)
/* 003C10 70003010 3C018002 */ lui $at, 0x8002
/* 003C10 70003010 3C018002 */ lui $at, %hi(g_ViXScales)
/* 003C14 70003014 001F6080 */ sll $t4, $ra, 2
/* 003C18 70003018 002C0821 */ addu $at, $at, $t4
/* 003C1C 7000301C E4220F74 */ swc1 $f2, 0xf74($at)
/* 003C20 70003020 3C018002 */ lui $at, 0x8002
/* 003C1C 7000301C E4220F74 */ swc1 $f2, %lo(g_ViXScales)($at)
/* 003C20 70003020 3C018002 */ lui $at, %hi(g_ViYScales)
/* 003C24 70003024 002C0821 */ addu $at, $at, $t4
/* 003C28 70003028 E4200F7C */ swc1 $f0, 0xf7c($at)
/* 003C28 70003028 E4200F7C */ swc1 $f0, %lo(g_ViYScales)($at)
/* 003C2C 7000302C 90EE0000 */ lbu $t6, ($a3)
/* 003C30 70003030 24010001 */ li $at, 1
/* 003C34 70003034 15C100F2 */ bne $t6, $at, .L70003400
/* 003C38 70003038 00000000 */ nop
/* 003C3C 7000303C 8DAD114C */ lw $t5, %lo(g_viColorOutputMode)($t5)
/* 003C40 70003040 3C018005 */ lui $at, 0x8005
/* 003C40 70003040 3C018005 */ lui $at, %hi(g_ViModePtrs)
/* 003C44 70003044 002C0821 */ addu $at, $at, $t4
/* 003C48 70003048 11A00019 */ beqz $t5, .L700030B0
/* 003C4C 7000304C AC391FA0 */ sw $t9, 0x1fa0($at)
/* 003C4C 7000304C AC391FA0 */ sw $t9, %lo(g_ViModePtrs)($at)
/* 003C50 70003050 001FC080 */ sll $t8, $ra, 2
/* 003C54 70003054 031FC021 */ addu $t8, $t8, $ra
/* 003C58 70003058 3C0F8005 */ lui $t7, %hi(g_ViModes) # $t7, 0x8005
@@ -1415,7 +1415,7 @@ glabel video_related_8
/* 003E94 70003294 10000001 */ b .L7000329C
/* 003E98 70003298 2403000E */ li $v1, 14
.L7000329C:
/* 003E9C 7000329C 8D081140 */ lw $t0, 0x1140($t0)
/* 003E9C 7000329C 8D081140 */ lw $t0, %lo(D_800232A0)($t0)
/* 003EA0 700032A0 30D8FFFF */ andi $t8, $a2, 0xffff
/* 003EA4 700032A4 00787821 */ addu $t7, $v1, $t8
/* 003EA8 700032A8 01E87021 */ addu $t6, $t7, $t0
@@ -1937,7 +1937,6 @@ Gfx *viSetFillColor(Gfx *gdl, s32 r, s32 g, s32 b)
void indyGrabJpg16bit(void)
{
#ifdef LEFTOVERDEBUG
#ifndef ENABLE_USB
s32 *pgrabnum = &g_indyJpg16BitGrabnum;
char buffer[250];
s32 filesize;
@@ -1970,10 +1969,6 @@ void indyGrabJpg16bit(void)
sprintf(buffer, "imgview grab.%d.jpeg", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
//msg.msgtype
usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY() * 2));
#endif
#endif
}
@@ -1984,7 +1979,6 @@ usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY(
void indyGrabJpg32bit(void)
{
#if defined(LEFTOVERDEBUG)
#if !defined(ENABLE_USB)
s32 *pgrabnum = &g_indyJpg32BitGrabnum;
char buffer[250];
s32 filesize;
@@ -2017,9 +2011,6 @@ void indyGrabJpg32bit(void)
sprintf(buffer, "imgview grab.%d.jpeg", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4));
#endif
#endif
}
@@ -2029,8 +2020,7 @@ usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4));
*/
void indyGrabRgb16bit(void)
{
#if defined(LEFTOVERDEBUG)
#if !defined(ENABLE_USB)
#if defined(LEFTOVERDEBUG)
s32 *pgrabnum = &g_indyRgb16BitGrabnum;
char buffer[250];
s32 filesize;
@@ -2060,11 +2050,7 @@ void indyGrabRgb16bit(void)
sprintf(buffer, "imgview grab.%d.rgb", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
//msg.msgtype
usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY() * 2));
#endif
#endif
#endif
}
/**
@@ -2073,8 +2059,7 @@ usb_write(DATATYPE_RAWBINARY , (u8*)g_ViBackData->framebuf, (viGetX() * viGetY(
*/
void indyGrabRgb32bit(void)
{
#if defined(LEFTOVERDEBUG)
#if !defined(ENABLE_USB)
#if defined(LEFTOVERDEBUG)
s32 *pgrabnum = &g_indyRgb32BitGrabnum;
char buffer[250];
s32 filesize;
@@ -2104,9 +2089,5 @@ void indyGrabRgb32bit(void)
sprintf(buffer, "imgview grab.%d.rgb", *pgrabnum);
indycommHostSendCmd((u8*)&buffer);
#else
//msg.msgtype
usb_write(DATATYPE_RAWBINARY , (u8*)&cfb_16, (viGetX() * viGetY() * 4));
#endif
#endif
}
+17 -1
View File
@@ -24,6 +24,8 @@
#define VIEWPORT_WIDTH_WIDESCREEN SCREEN_WIDTH_320
#define VIEWPORT_WIDTH_CINEMA SCREEN_WIDTH_320
#define SCREEN_HALF_WIDTH (SCREEN_WIDTH_320 / 2)
/* 304 = 320 - 16 ?? */
#define VIEWPORT_HEIGHT_FULLSCREEN 304
#define VIEWPORT_HEIGHT_WIDESCREEN 248
@@ -84,6 +86,14 @@
#define Z_BUFFER_4_3_HEIGHT 330
#define Z_BUFFER_4_3_WIDTH 440
// 4:3
#define ASPECT_RATIO_SD (1.3333334f)
#define ASPECT_RATIO_PAL (1.1764706f)
#define ASPECT_RATIO_EU_400_330 (1.5873016119f)
#define ASPECT_RATIO_EU_320_272 (1.40056025982f)
#if defined(VERSION_EU)
/* PAL */
#define SCREEN_HEIGHT SCREEN_HEIGHT_272
@@ -99,6 +109,7 @@
#define VIEWPORT_ULY_4P_PLAYER_34 VIEWPORT_ULY_4P_PLAYER_34_PAL
#define VIEWPORT_ULY_WIDESCREEN_OFFSET VIEWPORT_ULY_WIDESCREEN_OFFSET_PAL
#define Z_BUFFER_HEIGHT Z_BUFFER_HEIGHT_PAL
#define ASPECT_RATIO ASPECT_RATIO_PAL
#else
/* NTSC */
#define SCREEN_HEIGHT SCREEN_HEIGHT_240
@@ -114,13 +125,17 @@
#define VIEWPORT_ULY_4P_PLAYER_34 VIEWPORT_ULY_4P_PLAYER_34_NTSC
#define VIEWPORT_ULY_WIDESCREEN_OFFSET VIEWPORT_ULY_WIDESCREEN_OFFSET_NTSC
#define Z_BUFFER_HEIGHT Z_BUFFER_HEIGHT_NTSC
#define ASPECT_RATIO ASPECT_RATIO_SD
#endif
#define SCREEN_WIDTH SCREEN_WIDTH_320
#define XSCALE_MAX 0x400
#define YSCALE_MAX 0x800
#define FOV_Y_F 60.0f
typedef struct VideoSettings_s {
/**
* enum VIDEOMODE.
@@ -187,7 +202,8 @@ s32 viGetHorizontalOffset(void);
void video_related_8(void);
void viSetBuf(s16 x, s16 y);
void viSetXY(s16 x, s16 y);
Gfx *viSetFillColor(Gfx *gdl, s32 r, s32 g, s32 b);
Gfx *viFillScreen(Gfx *gdl);
Gfx *viSetupScreensForNumPlayers(Gfx *gdl);
void indyGrabJpg16bit(void);
+375 -807
View File
File diff suppressed because it is too large. Load diff
+5 -3
View File
@@ -109,14 +109,14 @@ extern bg_room_data * ptr_bgdata_room_fileposition_list;
extern s_room_info array_room_info[];
void bgInitDebugNoticeList(void);
void bgInit(void);
// sub_GAME_7F033B38 requres arg be s32
s32 sub_GAME_7F0B8FD0(s32 roomA, u8 roomB);
//f32 sub_GAME_7F0B4F9C(s32 room); // u8 not s32 for sub_GAME_7F0B2FE0
u32 bgDecompress(u8* source, u8 *target);
void sub_GAME_7F0B65C4(s32 roomID);
void delete_room_data(s32 roomID);
void load_bg_file(LEVEL_INDEX stagenum);
s32 bgDebugRemoved7F0B9DE4(s32 arg0, s32 arg1, s32 arg2);
@@ -140,6 +140,8 @@ s32 bgGet2dBboxByRoomId(s32 room_id, struct bbox2d *result);
f32 bgGetLevelVisibilityScale(void);
void sub_GAME_7F0B5CC0(struct bbox2d *a, struct bbox2d *b);
f32 get_room_data_float2(void);
s32 sub_GAME_7F0B9CC8(s32 arg0, s32 arg1, struct coord3d *arg2, struct coord3d *arg3);
void sub_GAME_7F0B96CC(s32 arg0, struct PortalMetric *arg1);
void bgLoadFromDynamicCCRMLUT(s32 arg0, s32 arg1, s32 arg2);
#endif
+7 -7
View File
@@ -33,11 +33,11 @@ u32 sub_GAME_7F0BA5C0(u32 arg0, u32 arg1) {
phi_v0 = arg0;
loop_2:
// Node 2
if (FogDL_primary_80044940 != 0)
if (DL_LUT_PRIMARY_ADDFOG != 0)
{
// Node 3
phi_a0 = FogDL_primary_80044940;
phi_v1 = &FogDL_primary_80044940;
phi_a0 = DL_LUT_PRIMARY_ADDFOG;
phi_v1 = &DL_LUT_PRIMARY_ADDFOG;
loop_4:
// Node 4
if (*phi_v0 == phi_a0)
@@ -77,12 +77,12 @@ glabel sub_GAME_7F0BA5C0
/* 0EF0F0 7F0BA5C0 0085082B */ sltu $at, $a0, $a1
/* 0EF0F4 7F0BA5C4 1020001C */ beqz $at, .L7F0BA638
/* 0EF0F8 7F0BA5C8 00801025 */ move $v0, $a0
/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(FogDL_primary_80044940)
/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(FogDL_primary_80044940) # addiu $a2, $a2, 0x4940
/* 0EF0FC 7F0BA5CC 3C068004 */ lui $a2, %hi(DL_LUT_PRIMARY_ADDFOG)
/* 0EF100 7F0BA5D0 24C64940 */ addiu $a2, %lo(DL_LUT_PRIMARY_ADDFOG) # addiu $a2, $a2, 0x4940
/* 0EF104 7F0BA5D4 8CCE0000 */ lw $t6, ($a2)
.L7F0BA5D8:
/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(FogDL_primary_80044940)
/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(FogDL_primary_80044940) # addiu $t7, $t7, 0x4940
/* 0EF108 7F0BA5D8 3C0F8004 */ lui $t7, %hi(DL_LUT_PRIMARY_ADDFOG)
/* 0EF10C 7F0BA5DC 25EF4940 */ addiu $t7, %lo(DL_LUT_PRIMARY_ADDFOG) # addiu $t7, $t7, 0x4940
/* 0EF110 7F0BA5E0 11C00011 */ beqz $t6, .L7F0BA628
/* 0EF114 7F0BA5E4 00C01825 */ move $v1, $a2
/* 0EF118 7F0BA5E8 8DE40000 */ lw $a0, ($t7)
+169 -500
View File
@@ -1,138 +1,71 @@
#include "blood_decrypt.h"
#ifdef NONMATCHING
u8 *decrypt_bleeding_animation_data(u8*, s32, s32, u8*, s8*) {
// address 0x7F01CAE0 NTSC
u8 *decrypt_bleeding_animation_data(u8 *arg0, u8 arg1, u8 arg2, u8 *arg3, u8 *arg4)
{
u8 var_a2;
u8 var_a3;
u8 temp_v0;
u8 var_v1;
u8 next;
temp_v0 = *arg0++;
*arg4 = temp_v0;
do
{
s32 unused;
var_v1 = *arg0++;
unused = var_v1;
var_a2 = 0xFF;
if (var_v1 == 0xFF)
{
var_a3 = 0;
for (var_v1 = *arg0++; var_v1 != 0xFF; var_a2 ^= 0xff, var_v1 = *arg0++ )
{
var_a3 += var_v1;
while (var_v1-- > 0)
{
*arg3++ = var_a2;
}
}
while (var_a3++ < arg1)
{
*arg3++ = var_a2;
}
arg2--;
}
else
{
var_a3 = temp_v0 + (var_v1 & 0x1f);
var_v1 = (var_v1 >> 5) + 1;
arg2 -= var_v1;
do
{
var_a2 = var_a3;
while (var_a2-- > 0)
{
*arg3++ = 0xff;
}
var_a2 = arg1 - var_a3;
while (var_a2-- > 0)
{
*arg3++ = 0;
}
} while (--var_v1 > 0);
}
} while (arg2 > 0);
return arg0;
}
#else
GLOBAL_ASM(
.text
glabel decrypt_bleeding_animation_data
/* 051610 7F01CAE0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 051614 7F01CAE4 AFB30014 */ sw $s3, 0x14($sp)
/* 051618 7F01CAE8 AFB20010 */ sw $s2, 0x10($sp)
/* 05161C 7F01CAEC AFB1000C */ sw $s1, 0xc($sp)
/* 051620 7F01CAF0 AFB00008 */ sw $s0, 8($sp)
/* 051624 7F01CAF4 AFA5001C */ sw $a1, 0x1c($sp)
/* 051628 7F01CAF8 AFA60020 */ sw $a2, 0x20($sp)
/* 05162C 7F01CAFC 90820000 */ lbu $v0, ($a0)
/* 051630 7F01CB00 8FAF0028 */ lw $t7, 0x28($sp)
/* 051634 7F01CB04 00E08025 */ move $s0, $a3
/* 051638 7F01CB08 30D100FF */ andi $s1, $a2, 0xff
/* 05163C 7F01CB0C 30A900FF */ andi $t1, $a1, 0xff
/* 051640 7F01CB10 24840001 */ addiu $a0, $a0, 1
/* 051644 7F01CB14 241200FF */ li $s2, 255
/* 051648 7F01CB18 241300FF */ li $s3, 255
/* 05164C 7F01CB1C A1E20000 */ sb $v0, ($t7)
/* 051650 7F01CB20 90850000 */ lbu $a1, ($a0)
.L7F01CB24:
/* 051654 7F01CB24 24840001 */ addiu $a0, $a0, 1
/* 051658 7F01CB28 326600FF */ andi $a2, $s3, 0xff
/* 05165C 7F01CB2C 1645002B */ bne $s2, $a1, .L7F01CBDC
/* 051660 7F01CB30 30B8001F */ andi $t8, $a1, 0x1f
/* 051664 7F01CB34 90830000 */ lbu $v1, ($a0)
/* 051668 7F01CB38 00003825 */ move $a3, $zero
/* 05166C 7F01CB3C 24840001 */ addiu $a0, $a0, 1
/* 051670 7F01CB40 12430016 */ beq $s2, $v1, .L7F01CB9C
/* 051674 7F01CB44 00602825 */ move $a1, $v1
.L7F01CB48:
/* 051678 7F01CB48 00E53821 */ addu $a3, $a3, $a1
/* 05167C 7F01CB4C 2463FFFF */ addiu $v1, $v1, -1
/* 051680 7F01CB50 30F800FF */ andi $t8, $a3, 0xff
/* 051684 7F01CB54 307900FF */ andi $t9, $v1, 0xff
/* 051688 7F01CB58 0005402A */ slt $t0, $zero, $a1
/* 05168C 7F01CB5C 03003825 */ move $a3, $t8
/* 051690 7F01CB60 11000008 */ beqz $t0, .L7F01CB84
/* 051694 7F01CB64 03201825 */ move $v1, $t9
.L7F01CB68:
/* 051698 7F01CB68 0003402A */ slt $t0, $zero, $v1
/* 05169C 7F01CB6C 2463FFFF */ addiu $v1, $v1, -1
/* 0516A0 7F01CB70 306E00FF */ andi $t6, $v1, 0xff
/* 0516A4 7F01CB74 01C01825 */ move $v1, $t6
/* 0516A8 7F01CB78 A2060000 */ sb $a2, ($s0)
/* 0516AC 7F01CB7C 1500FFFA */ bnez $t0, .L7F01CB68
/* 0516B0 7F01CB80 26100001 */ addiu $s0, $s0, 1
.L7F01CB84:
/* 0516B4 7F01CB84 90830000 */ lbu $v1, ($a0)
/* 0516B8 7F01CB88 38CF00FF */ xori $t7, $a2, 0xff
/* 0516BC 7F01CB8C 31E600FF */ andi $a2, $t7, 0xff
/* 0516C0 7F01CB90 24840001 */ addiu $a0, $a0, 1
/* 0516C4 7F01CB94 1643FFEC */ bne $s2, $v1, .L7F01CB48
/* 0516C8 7F01CB98 00602825 */ move $a1, $v1
.L7F01CB9C:
/* 0516CC 7F01CB9C 00E9402A */ slt $t0, $a3, $t1
/* 0516D0 7F01CBA0 24E70001 */ addiu $a3, $a3, 1
/* 0516D4 7F01CBA4 30F900FF */ andi $t9, $a3, 0xff
/* 0516D8 7F01CBA8 11000008 */ beqz $t0, .L7F01CBCC
/* 0516DC 7F01CBAC 03203825 */ move $a3, $t9
.L7F01CBB0:
/* 0516E0 7F01CBB0 00E9402A */ slt $t0, $a3, $t1
/* 0516E4 7F01CBB4 24E70001 */ addiu $a3, $a3, 1
/* 0516E8 7F01CBB8 30EE00FF */ andi $t6, $a3, 0xff
/* 0516EC 7F01CBBC 01C03825 */ move $a3, $t6
/* 0516F0 7F01CBC0 A2060000 */ sb $a2, ($s0)
/* 0516F4 7F01CBC4 1500FFFA */ bnez $t0, .L7F01CBB0
/* 0516F8 7F01CBC8 26100001 */ addiu $s0, $s0, 1
.L7F01CBCC:
/* 0516FC 7F01CBCC 2631FFFF */ addiu $s1, $s1, -1
/* 051700 7F01CBD0 322F00FF */ andi $t7, $s1, 0xff
/* 051704 7F01CBD4 10000026 */ b .L7F01CC70
/* 051708 7F01CBD8 01E08825 */ move $s1, $t7
.L7F01CBDC:
/* 05170C 7F01CBDC 00583821 */ addu $a3, $v0, $t8
/* 051710 7F01CBE0 00051943 */ sra $v1, $a1, 5
/* 051714 7F01CBE4 30F900FF */ andi $t9, $a3, 0xff
/* 051718 7F01CBE8 24630001 */ addiu $v1, $v1, 1
/* 05171C 7F01CBEC 306E00FF */ andi $t6, $v1, 0xff
/* 051720 7F01CBF0 01393023 */ subu $a2, $t1, $t9
/* 051724 7F01CBF4 022E8823 */ subu $s1, $s1, $t6
/* 051728 7F01CBF8 30D800FF */ andi $t8, $a2, 0xff
/* 05172C 7F01CBFC 322F00FF */ andi $t7, $s1, 0xff
/* 051730 7F01CC00 01C01825 */ move $v1, $t6
/* 051734 7F01CC04 01E08825 */ move $s1, $t7
/* 051738 7F01CC08 0018602A */ slt $t4, $zero, $t8
/* 05173C 7F01CC0C 270DFFFF */ addiu $t5, $t8, -1
/* 051740 7F01CC10 0019502A */ slt $t2, $zero, $t9
/* 051744 7F01CC14 272BFFFF */ addiu $t3, $t9, -1
.L7F01CC18:
/* 051748 7F01CC18 11400008 */ beqz $t2, .L7F01CC3C
/* 05174C 7F01CC1C 316600FF */ andi $a2, $t3, 0xff
.L7F01CC20:
/* 051750 7F01CC20 0006402A */ slt $t0, $zero, $a2
/* 051754 7F01CC24 24C6FFFF */ addiu $a2, $a2, -1
/* 051758 7F01CC28 30D900FF */ andi $t9, $a2, 0xff
/* 05175C 7F01CC2C 03203025 */ move $a2, $t9
/* 051760 7F01CC30 A2130000 */ sb $s3, ($s0)
/* 051764 7F01CC34 1500FFFA */ bnez $t0, .L7F01CC20
/* 051768 7F01CC38 26100001 */ addiu $s0, $s0, 1
.L7F01CC3C:
/* 05176C 7F01CC3C 11800008 */ beqz $t4, .L7F01CC60
/* 051770 7F01CC40 31A600FF */ andi $a2, $t5, 0xff
.L7F01CC44:
/* 051774 7F01CC44 0006402A */ slt $t0, $zero, $a2
/* 051778 7F01CC48 24C6FFFF */ addiu $a2, $a2, -1
/* 05177C 7F01CC4C 30CE00FF */ andi $t6, $a2, 0xff
/* 051780 7F01CC50 01C03025 */ move $a2, $t6
/* 051784 7F01CC54 A2000000 */ sb $zero, ($s0)
/* 051788 7F01CC58 1500FFFA */ bnez $t0, .L7F01CC44
/* 05178C 7F01CC5C 26100001 */ addiu $s0, $s0, 1
.L7F01CC60:
/* 051790 7F01CC60 2463FFFF */ addiu $v1, $v1, -1
/* 051794 7F01CC64 306F00FF */ andi $t7, $v1, 0xff
/* 051798 7F01CC68 1DE0FFEB */ bgtz $t7, .L7F01CC18
/* 05179C 7F01CC6C 01E01825 */ move $v1, $t7
.L7F01CC70:
/* 0517A0 7F01CC70 5E20FFAC */ bgtzl $s1, .L7F01CB24
/* 0517A4 7F01CC74 90850000 */ lbu $a1, ($a0)
/* 0517A8 7F01CC78 8FB00008 */ lw $s0, 8($sp)
/* 0517AC 7F01CC7C 8FB1000C */ lw $s1, 0xc($sp)
/* 0517B0 7F01CC80 8FB20010 */ lw $s2, 0x10($sp)
/* 0517B4 7F01CC84 8FB30014 */ lw $s3, 0x14($sp)
/* 0517B8 7F01CC88 27BD0018 */ addiu $sp, $sp, 0x18
/* 0517BC 7F01CC8C 03E00008 */ jr $ra
/* 0517C0 7F01CC90 00801025 */ move $v0, $a0
)
#endif
@@ -145,398 +78,134 @@ void sub_GAME_7F01CC94(u8* arg0, u16 arg1, u8* arg2)
}
}
// Address 0x7F01CCEC NTSC
void sub_GAME_7F01CCEC(u8 *arg0, u8 arg1, u8 arg2, u8 *arg3, u8 arg4)
{
s16 i;
s16 j;
#ifdef NONMATCHING
void sub_GAME_7F01CCEC(void) {
u32 var_t0;
u32 var_t1;
s16 var_t5;
s16 var_s4;
u8 tempt9;
for (i = 0; i < arg2; i++)
{
for (j = 0; j < arg1; j++)
{
var_t0 = 0;
var_t1 = 0;
var_t5 = ((i - arg4) < 0) ? 0 : (i - arg4);
while ((((arg2 - 1) < (i + arg4)) ? (arg2 - 1) : (i + arg4)) >= var_t5)
{
var_s4 = ((j - arg4) < 0) ? 0 : (j - arg4);
while ((((arg1 - 1) < (j + arg4)) ? (arg1 - 1) : (j + arg4)) >= var_s4)
{
var_t1 += arg0[var_s4 + (var_t5 * arg1)];
var_s4 += 1;
var_t0 += 1;
}
var_t5 += 1;
}
tempt9 = (u8) ((u32) ((var_t0 >> 1) + var_t1) / var_t0);
arg3[j + (i * arg1)] = tempt9;
}
}
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F01CCEC
/* 05181C 7F01CCEC 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 051820 7F01CCF0 30CF00FF */ andi $t7, $a2, 0xff
/* 051824 7F01CCF4 AFBE0024 */ sw $fp, 0x24($sp)
/* 051828 7F01CCF8 AFB70020 */ sw $s7, 0x20($sp)
/* 05182C 7F01CCFC AFB6001C */ sw $s6, 0x1c($sp)
/* 051830 7F01CD00 AFB50018 */ sw $s5, 0x18($sp)
/* 051834 7F01CD04 AFB40014 */ sw $s4, 0x14($sp)
/* 051838 7F01CD08 AFB30010 */ sw $s3, 0x10($sp)
/* 05183C 7F01CD0C AFB2000C */ sw $s2, 0xc($sp)
/* 051840 7F01CD10 AFB10008 */ sw $s1, 8($sp)
/* 051844 7F01CD14 AFB00004 */ sw $s0, 4($sp)
/* 051848 7F01CD18 AFA5002C */ sw $a1, 0x2c($sp)
/* 05184C 7F01CD1C AFA60030 */ sw $a2, 0x30($sp)
/* 051850 7F01CD20 30AE00FF */ andi $t6, $a1, 0xff
/* 051854 7F01CD24 01E01825 */ move $v1, $t7
/* 051858 7F01CD28 19E00065 */ blez $t7, .L7F01CEC0
/* 05185C 7F01CD2C 00001025 */ move $v0, $zero
/* 051860 7F01CD30 01C03025 */ move $a2, $t6
/* 051864 7F01CD34 93AA003B */ lbu $t2, 0x3b($sp)
.L7F01CD38:
/* 051868 7F01CD38 18C0005B */ blez $a2, .L7F01CEA8
/* 05186C 7F01CD3C 00002825 */ move $a1, $zero
/* 051870 7F01CD40 00460019 */ multu $v0, $a2
/* 051874 7F01CD44 01405825 */ move $t3, $t2
/* 051878 7F01CD48 004A6023 */ subu $t4, $v0, $t2
/* 05187C 7F01CD4C 2470FFFF */ addiu $s0, $v1, -1
/* 051880 7F01CD50 004A8821 */ addu $s1, $v0, $t2
/* 051884 7F01CD54 0000F012 */ mflo $fp
/* 051888 7F01CD58 00000000 */ nop
/* 05188C 7F01CD5C 00000000 */ nop
/* 051890 7F01CD60 00004025 */ move $t0, $zero
.L7F01CD64:
/* 051894 7F01CD64 05810003 */ bgez $t4, .L7F01CD74
/* 051898 7F01CD68 00004825 */ move $t1, $zero
/* 05189C 7F01CD6C 10000004 */ b .L7F01CD80
/* 0518A0 7F01CD70 00006825 */ move $t5, $zero
.L7F01CD74:
/* 0518A4 7F01CD74 000C6C00 */ sll $t5, $t4, 0x10
/* 0518A8 7F01CD78 000DC403 */ sra $t8, $t5, 0x10
/* 0518AC 7F01CD7C 03006825 */ move $t5, $t8
.L7F01CD80:
/* 0518B0 7F01CD80 0211082A */ slt $at, $s0, $s1
/* 0518B4 7F01CD84 10200003 */ beqz $at, .L7F01CD94
/* 0518B8 7F01CD88 02209025 */ move $s2, $s1
/* 0518BC 7F01CD8C 10000001 */ b .L7F01CD94
/* 0518C0 7F01CD90 02009025 */ move $s2, $s0
.L7F01CD94:
/* 0518C4 7F01CD94 024D082A */ slt $at, $s2, $t5
/* 0518C8 7F01CD98 54200033 */ bnezl $at, .L7F01CE68
/* 0518CC 7F01CD9C 0008C842 */ srl $t9, $t0, 1
/* 0518D0 7F01CDA0 00AB9823 */ subu $s3, $a1, $t3
/* 0518D4 7F01CDA4 24D5FFFF */ addiu $s5, $a2, -1
/* 0518D8 7F01CDA8 00ABB021 */ addu $s6, $a1, $t3
.L7F01CDAC:
/* 0518DC 7F01CDAC 06610003 */ bgez $s3, .L7F01CDBC
/* 0518E0 7F01CDB0 02B6082A */ slt $at, $s5, $s6
/* 0518E4 7F01CDB4 10000004 */ b .L7F01CDC8
/* 0518E8 7F01CDB8 0000A025 */ move $s4, $zero
.L7F01CDBC:
/* 0518EC 7F01CDBC 0013A400 */ sll $s4, $s3, 0x10
/* 0518F0 7F01CDC0 0014CC03 */ sra $t9, $s4, 0x10
/* 0518F4 7F01CDC4 0320A025 */ move $s4, $t9
.L7F01CDC8:
/* 0518F8 7F01CDC8 10200003 */ beqz $at, .L7F01CDD8
/* 0518FC 7F01CDCC 02C09025 */ move $s2, $s6
/* 051900 7F01CDD0 10000001 */ b .L7F01CDD8
/* 051904 7F01CDD4 02A09025 */ move $s2, $s5
.L7F01CDD8:
/* 051908 7F01CDD8 0254082A */ slt $at, $s2, $s4
/* 05190C 7F01CDDC 54200016 */ bnezl $at, .L7F01CE38
/* 051910 7F01CDE0 25AD0001 */ addiu $t5, $t5, 1
/* 051914 7F01CDE4 01A60019 */ multu $t5, $a2
/* 051918 7F01CDE8 0000B812 */ mflo $s7
/* 05191C 7F01CDEC 00000000 */ nop
/* 051920 7F01CDF0 00000000 */ nop
/* 051924 7F01CDF4 00947021 */ addu $t6, $a0, $s4
.L7F01CDF8:
/* 051928 7F01CDF8 01D77821 */ addu $t7, $t6, $s7
/* 05192C 7F01CDFC 91F80000 */ lbu $t8, ($t7)
/* 051930 7F01CE00 26940001 */ addiu $s4, $s4, 1
/* 051934 7F01CE04 0014CC00 */ sll $t9, $s4, 0x10
/* 051938 7F01CE08 02B6082A */ slt $at, $s5, $s6
/* 05193C 7F01CE0C 0019A403 */ sra $s4, $t9, 0x10
/* 051940 7F01CE10 25080001 */ addiu $t0, $t0, 1
/* 051944 7F01CE14 10200003 */ beqz $at, .L7F01CE24
/* 051948 7F01CE18 01384821 */ addu $t1, $t1, $t8
/* 05194C 7F01CE1C 10000002 */ b .L7F01CE28
/* 051950 7F01CE20 02A09025 */ move $s2, $s5
.L7F01CE24:
/* 051954 7F01CE24 02C09025 */ move $s2, $s6
.L7F01CE28:
/* 051958 7F01CE28 0254082A */ slt $at, $s2, $s4
/* 05195C 7F01CE2C 5020FFF2 */ beql $at, $zero, .L7F01CDF8
/* 051960 7F01CE30 00947021 */ addu $t6, $a0, $s4
/* 051964 7F01CE34 25AD0001 */ addiu $t5, $t5, 1
.L7F01CE38:
/* 051968 7F01CE38 000D7C00 */ sll $t7, $t5, 0x10
/* 05196C 7F01CE3C 000FC403 */ sra $t8, $t7, 0x10
/* 051970 7F01CE40 0211082A */ slt $at, $s0, $s1
/* 051974 7F01CE44 10200003 */ beqz $at, .L7F01CE54
/* 051978 7F01CE48 03006825 */ move $t5, $t8
/* 05197C 7F01CE4C 10000002 */ b .L7F01CE58
/* 051980 7F01CE50 02009025 */ move $s2, $s0
.L7F01CE54:
/* 051984 7F01CE54 02209025 */ move $s2, $s1
.L7F01CE58:
/* 051988 7F01CE58 024D082A */ slt $at, $s2, $t5
/* 05198C 7F01CE5C 1020FFD3 */ beqz $at, .L7F01CDAC
/* 051990 7F01CE60 00000000 */ nop
/* 051994 7F01CE64 0008C842 */ srl $t9, $t0, 1
.L7F01CE68:
/* 051998 7F01CE68 03297021 */ addu $t6, $t9, $t1
/* 05199C 7F01CE6C 01C8001B */ divu $zero, $t6, $t0
/* 0519A0 7F01CE70 00E5C021 */ addu $t8, $a3, $a1
/* 0519A4 7F01CE74 24A50001 */ addiu $a1, $a1, 1
/* 0519A8 7F01CE78 00057400 */ sll $t6, $a1, 0x10
/* 0519AC 7F01CE7C 031EC821 */ addu $t9, $t8, $fp
/* 0519B0 7F01CE80 000EC403 */ sra $t8, $t6, 0x10
/* 0519B4 7F01CE84 0306082A */ slt $at, $t8, $a2
/* 0519B8 7F01CE88 00007812 */ mflo $t7
/* 0519BC 7F01CE8C 03002825 */ move $a1, $t8
/* 0519C0 7F01CE90 15000002 */ bnez $t0, .L7F01CE9C
/* 0519C4 7F01CE94 00000000 */ nop
/* 0519C8 7F01CE98 0007000D */ break 7
.L7F01CE9C:
/* 0519CC 7F01CE9C A32F0000 */ sb $t7, ($t9)
/* 0519D0 7F01CEA0 5420FFB0 */ bnezl $at, .L7F01CD64
/* 0519D4 7F01CEA4 00004025 */ move $t0, $zero
.L7F01CEA8:
/* 0519D8 7F01CEA8 24420001 */ addiu $v0, $v0, 1
/* 0519DC 7F01CEAC 00027C00 */ sll $t7, $v0, 0x10
/* 0519E0 7F01CEB0 000F1403 */ sra $v0, $t7, 0x10
/* 0519E4 7F01CEB4 0043082A */ slt $at, $v0, $v1
/* 0519E8 7F01CEB8 1420FF9F */ bnez $at, .L7F01CD38
/* 0519EC 7F01CEBC 00000000 */ nop
.L7F01CEC0:
/* 0519F0 7F01CEC0 8FB00004 */ lw $s0, 4($sp)
/* 0519F4 7F01CEC4 8FB10008 */ lw $s1, 8($sp)
/* 0519F8 7F01CEC8 8FB2000C */ lw $s2, 0xc($sp)
/* 0519FC 7F01CECC 8FB30010 */ lw $s3, 0x10($sp)
/* 051A00 7F01CED0 8FB40014 */ lw $s4, 0x14($sp)
/* 051A04 7F01CED4 8FB50018 */ lw $s5, 0x18($sp)
/* 051A08 7F01CED8 8FB6001C */ lw $s6, 0x1c($sp)
/* 051A0C 7F01CEDC 8FB70020 */ lw $s7, 0x20($sp)
/* 051A10 7F01CEE0 8FBE0024 */ lw $fp, 0x24($sp)
/* 051A14 7F01CEE4 03E00008 */ jr $ra
/* 051A18 7F01CEE8 27BD0028 */ addiu $sp, $sp, 0x28
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F01CEEC(u8*, s32, u8*) {
// Averages 4 pixel data, ending on "second" row.
// Address 0x7F01CEEC NTSC
void sub_GAME_7F01CEEC(u8 *arg0, s32 arg1, u8 *arg2)
{
s32 i;
s32 j;
arg0 += 0x61;
arg2 += 0x61;
for (i = 1; i < arg1 - 1; i++, arg2 += 2, arg0 += 2) {
for (j = 1; j < 0x5f; j++, arg2++, arg0++) {
*arg2 = (arg0[-1] + arg0[0] + arg0[-0x61] + arg0[-0x60] + 2) >> 2;
}
}
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F01CEEC
/* 051A1C 7F01CEEC 24A3FFFF */ addiu $v1, $a1, -1
/* 051A20 7F01CEF0 28610002 */ slti $at, $v1, 2
/* 051A24 7F01CEF4 24840061 */ addiu $a0, $a0, 0x61
/* 051A28 7F01CEF8 24C60061 */ addiu $a2, $a2, 0x61
/* 051A2C 7F01CEFC 14200049 */ bnez $at, .L7F01D024
/* 051A30 7F01CF00 24020001 */ li $v0, 1
/* 051A34 7F01CF04 2407005F */ li $a3, 95
.L7F01CF08:
/* 051A38 7F01CF08 908EFFA0 */ lbu $t6, -0x60($a0)
/* 051A3C 7F01CF0C 908FFFFF */ lbu $t7, -1($a0)
/* 051A40 7F01CF10 90990000 */ lbu $t9, ($a0)
/* 051A44 7F01CF14 9089FF9F */ lbu $t1, -0x61($a0)
/* 051A48 7F01CF18 01CFC021 */ addu $t8, $t6, $t7
/* 051A4C 7F01CF1C 03194021 */ addu $t0, $t8, $t9
/* 051A50 7F01CF20 01095021 */ addu $t2, $t0, $t1
/* 051A54 7F01CF24 254B0002 */ addiu $t3, $t2, 2
/* 051A58 7F01CF28 000B6083 */ sra $t4, $t3, 2
/* 051A5C 7F01CF2C A0CC0000 */ sb $t4, ($a2)
/* 051A60 7F01CF30 908E0000 */ lbu $t6, ($a0)
/* 051A64 7F01CF34 908DFFA1 */ lbu $t5, -0x5f($a0)
/* 051A68 7F01CF38 90980001 */ lbu $t8, 1($a0)
/* 051A6C 7F01CF3C 9088FFA0 */ lbu $t0, -0x60($a0)
/* 051A70 7F01CF40 01AE7821 */ addu $t7, $t5, $t6
/* 051A74 7F01CF44 01F8C821 */ addu $t9, $t7, $t8
/* 051A78 7F01CF48 03284821 */ addu $t1, $t9, $t0
/* 051A7C 7F01CF4C 252A0002 */ addiu $t2, $t1, 2
/* 051A80 7F01CF50 000A5883 */ sra $t3, $t2, 2
/* 051A84 7F01CF54 A0CB0001 */ sb $t3, 1($a2)
/* 051A88 7F01CF58 24050003 */ li $a1, 3
/* 051A8C 7F01CF5C 24C60002 */ addiu $a2, $a2, 2
/* 051A90 7F01CF60 24840002 */ addiu $a0, $a0, 2
.L7F01CF64:
/* 051A94 7F01CF64 908CFFA0 */ lbu $t4, -0x60($a0)
/* 051A98 7F01CF68 908DFFFF */ lbu $t5, -1($a0)
/* 051A9C 7F01CF6C 908F0000 */ lbu $t7, ($a0)
/* 051AA0 7F01CF70 9099FF9F */ lbu $t9, -0x61($a0)
/* 051AA4 7F01CF74 018D7021 */ addu $t6, $t4, $t5
/* 051AA8 7F01CF78 01CFC021 */ addu $t8, $t6, $t7
/* 051AAC 7F01CF7C 03194021 */ addu $t0, $t8, $t9
/* 051AB0 7F01CF80 25090002 */ addiu $t1, $t0, 2
/* 051AB4 7F01CF84 00095083 */ sra $t2, $t1, 2
/* 051AB8 7F01CF88 A0CA0000 */ sb $t2, ($a2)
/* 051ABC 7F01CF8C 908BFFA1 */ lbu $t3, -0x5f($a0)
/* 051AC0 7F01CF90 908C0000 */ lbu $t4, ($a0)
/* 051AC4 7F01CF94 908E0001 */ lbu $t6, 1($a0)
/* 051AC8 7F01CF98 9098FFA0 */ lbu $t8, -0x60($a0)
/* 051ACC 7F01CF9C 016C6821 */ addu $t5, $t3, $t4
/* 051AD0 7F01CFA0 01AE7821 */ addu $t7, $t5, $t6
/* 051AD4 7F01CFA4 01F8C821 */ addu $t9, $t7, $t8
/* 051AD8 7F01CFA8 27280002 */ addiu $t0, $t9, 2
/* 051ADC 7F01CFAC 00084883 */ sra $t1, $t0, 2
/* 051AE0 7F01CFB0 A0C90001 */ sb $t1, 1($a2)
/* 051AE4 7F01CFB4 908AFFA2 */ lbu $t2, -0x5e($a0)
/* 051AE8 7F01CFB8 908B0001 */ lbu $t3, 1($a0)
/* 051AEC 7F01CFBC 908D0002 */ lbu $t5, 2($a0)
/* 051AF0 7F01CFC0 908FFFA1 */ lbu $t7, -0x5f($a0)
/* 051AF4 7F01CFC4 014B6021 */ addu $t4, $t2, $t3
/* 051AF8 7F01CFC8 018D7021 */ addu $t6, $t4, $t5
/* 051AFC 7F01CFCC 01CFC021 */ addu $t8, $t6, $t7
/* 051B00 7F01CFD0 27190002 */ addiu $t9, $t8, 2
/* 051B04 7F01CFD4 00194083 */ sra $t0, $t9, 2
/* 051B08 7F01CFD8 A0C80002 */ sb $t0, 2($a2)
/* 051B0C 7F01CFDC 908A0002 */ lbu $t2, 2($a0)
/* 051B10 7F01CFE0 9089FFA3 */ lbu $t1, -0x5d($a0)
/* 051B14 7F01CFE4 908C0003 */ lbu $t4, 3($a0)
/* 051B18 7F01CFE8 908EFFA2 */ lbu $t6, -0x5e($a0)
/* 051B1C 7F01CFEC 012A5821 */ addu $t3, $t1, $t2
/* 051B20 7F01CFF0 016C6821 */ addu $t5, $t3, $t4
/* 051B24 7F01CFF4 01AE7821 */ addu $t7, $t5, $t6
/* 051B28 7F01CFF8 25F80002 */ addiu $t8, $t7, 2
/* 051B2C 7F01CFFC 0018C883 */ sra $t9, $t8, 2
/* 051B30 7F01D000 24A50004 */ addiu $a1, $a1, 4
/* 051B34 7F01D004 A0D90003 */ sb $t9, 3($a2)
/* 051B38 7F01D008 24C60004 */ addiu $a2, $a2, 4
/* 051B3C 7F01D00C 14A7FFD5 */ bne $a1, $a3, .L7F01CF64
/* 051B40 7F01D010 24840004 */ addiu $a0, $a0, 4
/* 051B44 7F01D014 24420001 */ addiu $v0, $v0, 1
/* 051B48 7F01D018 24C60002 */ addiu $a2, $a2, 2
/* 051B4C 7F01D01C 1443FFBA */ bne $v0, $v1, .L7F01CF08
/* 051B50 7F01D020 24840002 */ addiu $a0, $a0, 2
.L7F01D024:
/* 051B54 7F01D024 03E00008 */ jr $ra
/* 051B58 7F01D028 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F01D02C(u8*, s32, u8*) {
// Averages 4 pixel data, ending on "first" row.
// Address 0x7F01D02C NTSC
void sub_GAME_7F01D02C(u8 *arg0, s32 arg1, u8 *arg2)
{
s32 i;
s32 j;
arg0 += 0x61;
arg2 += 0x61;
for (i = 1; i < arg1 - 1; i++, arg2 += 2, arg0 += 2) {
for (j = 1; j < 0x5f; j++, arg2++, arg0++) {
*arg2 = (arg0[1] + arg0[0] + arg0[0x61] + arg0[0x60] + 2) >> 2;
}
}
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F01D02C
/* 051B5C 7F01D02C 24A3FFFF */ addiu $v1, $a1, -1
/* 051B60 7F01D030 28610002 */ slti $at, $v1, 2
/* 051B64 7F01D034 24840061 */ addiu $a0, $a0, 0x61
/* 051B68 7F01D038 24C60061 */ addiu $a2, $a2, 0x61
/* 051B6C 7F01D03C 14200049 */ bnez $at, .L7F01D164
/* 051B70 7F01D040 24020001 */ li $v0, 1
/* 051B74 7F01D044 2407005F */ li $a3, 95
.L7F01D048:
/* 051B78 7F01D048 908E0060 */ lbu $t6, 0x60($a0)
/* 051B7C 7F01D04C 908F0001 */ lbu $t7, 1($a0)
/* 051B80 7F01D050 90990000 */ lbu $t9, ($a0)
/* 051B84 7F01D054 90890061 */ lbu $t1, 0x61($a0)
/* 051B88 7F01D058 01CFC021 */ addu $t8, $t6, $t7
/* 051B8C 7F01D05C 03194021 */ addu $t0, $t8, $t9
/* 051B90 7F01D060 01095021 */ addu $t2, $t0, $t1
/* 051B94 7F01D064 254B0002 */ addiu $t3, $t2, 2
/* 051B98 7F01D068 000B6083 */ sra $t4, $t3, 2
/* 051B9C 7F01D06C A0CC0000 */ sb $t4, ($a2)
/* 051BA0 7F01D070 908E0002 */ lbu $t6, 2($a0)
/* 051BA4 7F01D074 908D0061 */ lbu $t5, 0x61($a0)
/* 051BA8 7F01D078 90980001 */ lbu $t8, 1($a0)
/* 051BAC 7F01D07C 90880062 */ lbu $t0, 0x62($a0)
/* 051BB0 7F01D080 01AE7821 */ addu $t7, $t5, $t6
/* 051BB4 7F01D084 01F8C821 */ addu $t9, $t7, $t8
/* 051BB8 7F01D088 03284821 */ addu $t1, $t9, $t0
/* 051BBC 7F01D08C 252A0002 */ addiu $t2, $t1, 2
/* 051BC0 7F01D090 000A5883 */ sra $t3, $t2, 2
/* 051BC4 7F01D094 A0CB0001 */ sb $t3, 1($a2)
/* 051BC8 7F01D098 24050003 */ li $a1, 3
/* 051BCC 7F01D09C 24C60002 */ addiu $a2, $a2, 2
/* 051BD0 7F01D0A0 24840002 */ addiu $a0, $a0, 2
.L7F01D0A4:
/* 051BD4 7F01D0A4 908C0060 */ lbu $t4, 0x60($a0)
/* 051BD8 7F01D0A8 908D0001 */ lbu $t5, 1($a0)
/* 051BDC 7F01D0AC 908F0000 */ lbu $t7, ($a0)
/* 051BE0 7F01D0B0 90990061 */ lbu $t9, 0x61($a0)
/* 051BE4 7F01D0B4 018D7021 */ addu $t6, $t4, $t5
/* 051BE8 7F01D0B8 01CFC021 */ addu $t8, $t6, $t7
/* 051BEC 7F01D0BC 03194021 */ addu $t0, $t8, $t9
/* 051BF0 7F01D0C0 25090002 */ addiu $t1, $t0, 2
/* 051BF4 7F01D0C4 00095083 */ sra $t2, $t1, 2
/* 051BF8 7F01D0C8 A0CA0000 */ sb $t2, ($a2)
/* 051BFC 7F01D0CC 908C0002 */ lbu $t4, 2($a0)
/* 051C00 7F01D0D0 908B0061 */ lbu $t3, 0x61($a0)
/* 051C04 7F01D0D4 908E0001 */ lbu $t6, 1($a0)
/* 051C08 7F01D0D8 90980062 */ lbu $t8, 0x62($a0)
/* 051C0C 7F01D0DC 016C6821 */ addu $t5, $t3, $t4
/* 051C10 7F01D0E0 01AE7821 */ addu $t7, $t5, $t6
/* 051C14 7F01D0E4 01F8C821 */ addu $t9, $t7, $t8
/* 051C18 7F01D0E8 27280002 */ addiu $t0, $t9, 2
/* 051C1C 7F01D0EC 00084883 */ sra $t1, $t0, 2
/* 051C20 7F01D0F0 A0C90001 */ sb $t1, 1($a2)
/* 051C24 7F01D0F4 908B0003 */ lbu $t3, 3($a0)
/* 051C28 7F01D0F8 908A0062 */ lbu $t2, 0x62($a0)
/* 051C2C 7F01D0FC 908D0002 */ lbu $t5, 2($a0)
/* 051C30 7F01D100 908F0063 */ lbu $t7, 0x63($a0)
/* 051C34 7F01D104 014B6021 */ addu $t4, $t2, $t3
/* 051C38 7F01D108 018D7021 */ addu $t6, $t4, $t5
/* 051C3C 7F01D10C 01CFC021 */ addu $t8, $t6, $t7
/* 051C40 7F01D110 27190002 */ addiu $t9, $t8, 2
/* 051C44 7F01D114 00194083 */ sra $t0, $t9, 2
/* 051C48 7F01D118 A0C80002 */ sb $t0, 2($a2)
/* 051C4C 7F01D11C 908A0004 */ lbu $t2, 4($a0)
/* 051C50 7F01D120 90890063 */ lbu $t1, 0x63($a0)
/* 051C54 7F01D124 908C0003 */ lbu $t4, 3($a0)
/* 051C58 7F01D128 908E0064 */ lbu $t6, 0x64($a0)
/* 051C5C 7F01D12C 012A5821 */ addu $t3, $t1, $t2
/* 051C60 7F01D130 016C6821 */ addu $t5, $t3, $t4
/* 051C64 7F01D134 01AE7821 */ addu $t7, $t5, $t6
/* 051C68 7F01D138 25F80002 */ addiu $t8, $t7, 2
/* 051C6C 7F01D13C 0018C883 */ sra $t9, $t8, 2
/* 051C70 7F01D140 24A50004 */ addiu $a1, $a1, 4
/* 051C74 7F01D144 A0D90003 */ sb $t9, 3($a2)
/* 051C78 7F01D148 24C60004 */ addiu $a2, $a2, 4
/* 051C7C 7F01D14C 14A7FFD5 */ bne $a1, $a3, .L7F01D0A4
/* 051C80 7F01D150 24840004 */ addiu $a0, $a0, 4
/* 051C84 7F01D154 24420001 */ addiu $v0, $v0, 1
/* 051C88 7F01D158 24C60002 */ addiu $a2, $a2, 2
/* 051C8C 7F01D15C 1443FFBA */ bne $v0, $v1, .L7F01D048
/* 051C90 7F01D160 24840002 */ addiu $a0, $a0, 2
.L7F01D164:
/* 051C94 7F01D164 03E00008 */ jr $ra
/* 051C98 7F01D168 00000000 */ nop
)
#endif
// Address 0x7F01D16C NTSC
void sub_GAME_7F01D16C(u8 *arg0, s32 arg1, s32 arg2, u8 *arg3)
{
s32 temp_lo;
u32 temp_a0;
u32 var_t2;
u8 *var_t0;
u8 *var_v1;
u32 t1;
temp_lo = arg1 * arg2;
var_v1 = arg0;
var_t0 = arg3;
t1 = arg0 + temp_lo;
var_t2 = arg0 + arg1;
#ifdef NONMATCHING
void sub_GAME_7F01D16C(u8*, s32, s32, u8*) {
do
{
temp_a0 = var_t2;
do
{
*var_t0 = *var_v1++;
var_t2 += 1;
var_t0 += arg2;
} while ((u32) var_v1 < temp_a0);
var_t0 = (var_t0 - (temp_lo)) + 1;
} while ((u32) var_v1 < (u32) t1);
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F01D16C
/* 051C9C 7F01D16C 00A60019 */ multu $a1, $a2
/* 051CA0 7F01D170 00801825 */ move $v1, $a0
/* 051CA4 7F01D174 00E04025 */ move $t0, $a3
/* 051CA8 7F01D178 00855021 */ addu $t2, $a0, $a1
/* 051CAC 7F01D17C 00001012 */ mflo $v0
/* 051CB0 7F01D180 00824821 */ addu $t1, $a0, $v0
/* 051CB4 7F01D184 00000000 */ nop
.L7F01D188:
/* 051CB8 7F01D188 01402025 */ move $a0, $t2
.L7F01D18C:
/* 051CBC 7F01D18C 906E0000 */ lbu $t6, ($v1)
/* 051CC0 7F01D190 24630001 */ addiu $v1, $v1, 1
/* 051CC4 7F01D194 0064082B */ sltu $at, $v1, $a0
/* 051CC8 7F01D198 A10E0000 */ sb $t6, ($t0)
/* 051CCC 7F01D19C 254A0001 */ addiu $t2, $t2, 1
/* 051CD0 7F01D1A0 1420FFFA */ bnez $at, .L7F01D18C
/* 051CD4 7F01D1A4 01064021 */ addu $t0, $t0, $a2
/* 051CD8 7F01D1A8 01024023 */ subu $t0, $t0, $v0
/* 051CDC 7F01D1AC 0069082B */ sltu $at, $v1, $t1
/* 051CE0 7F01D1B0 1420FFF5 */ bnez $at, .L7F01D188
/* 051CE4 7F01D1B4 25080001 */ addiu $t0, $t0, 1
/* 051CE8 7F01D1B8 03E00008 */ jr $ra
/* 051CEC 7F01D1BC 00000000 */ nop
)
#endif
#ifdef NONMATCHING
void sub_GAME_7F01D1C0(void) {
// Unreferenced.
// Address 0x7F01D1C0 NTSC.
u8 *sub_GAME_7F01D1C0(u8 *arg0, s32 arg1, s32 arg2, u8 *arg3)
{
// mips2c output makes this look like `decrypt_bleeding_animation_data`, but without
// u8 variables, and without arg4. But I can't get it to generate anything
// close to matching.
// https://decomp.me/scratch/ptG72 0%
}
#else
GLOBAL_ASM(
+2 -1
View File
@@ -3,7 +3,8 @@
#include <ultra64.h>
u8 *decrypt_bleeding_animation_data(u8*, s32, s32, u8*, s8*);
u8 *decrypt_bleeding_animation_data(u8 *arg0, u8 arg1, u8 arg2, u8 *arg3, u8 *arg4);
void sub_GAME_7F01D16C(u8*, s32, s32, u8*);
void sub_GAME_7F01D02C(u8*, s32, u8*);
void sub_GAME_7F01CEEC(u8*, s32, u8*);
+82 -70
View File
@@ -72,20 +72,20 @@ void bheadUpdateIdleRoll()
{
f32 mult = 1.0f / UINT_MAX;
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt][0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f;
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt][2] = 1;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt][0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt][1] = 1;
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt].f[0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f;
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt].f[2] = 1;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt].f[0] = ((f32)randomGetNext() * mult - 0.5f) * 0.02f;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt].f[1] = 1;
if (g_CurrentPlayer->standcnt)
{
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt][1] = (f32)randomGetNext() * mult * 0.01f;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt][2] = (f32)randomGetNext() * mult * -0.01f;
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt].f[1] = (f32)randomGetNext() * mult * 0.01f;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt].f[2] = (f32)randomGetNext() * mult * -0.01f;
}
else
{
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt][1] = (f32)randomGetNext() * mult * -0.01f;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt][2] = (f32)randomGetNext() * mult * 0.01f;
g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt].f[1] = (f32)randomGetNext() * mult * -0.01f;
g_CurrentPlayer->standup[g_CurrentPlayer->standcnt].f[2] = (f32)randomGetNext() * mult * 0.01f;
}
g_CurrentPlayer->standcnt = 1 - g_CurrentPlayer->standcnt;
@@ -102,23 +102,23 @@ void bheadUpdatePos(coord3d *vel)
if (g_CurrentPlayer->resetheadpos)
{
g_CurrentPlayer->headpossum[0] = 0.0f;
g_CurrentPlayer->headpossum[1] = (vel->f[1] / (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpossum[2] = 0.0f;
g_CurrentPlayer->headpossum.f[0] = 0.0f;
g_CurrentPlayer->headpossum.f[1] = (vel->f[1] / (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpossum.f[2] = 0.0f;
g_CurrentPlayer->resetheadpos = FALSE;
}
for (i = 0; i < g_ClockTimer; i++)
{
g_CurrentPlayer->headpossum[0] = ((CURRENTPLAYERUPDATEHEADPOS_SCALE * g_CurrentPlayer->headpossum[0]) + vel->f[0]);
g_CurrentPlayer->headpossum[1] = ((CURRENTPLAYERUPDATEHEADPOS_SCALE * g_CurrentPlayer->headpossum[1]) + vel->f[1]);
g_CurrentPlayer->headpossum[2] = ((CURRENTPLAYERUPDATEHEADPOS_SCALE * g_CurrentPlayer->headpossum[2]) + vel->f[2]);
g_CurrentPlayer->headpossum.f[0] = ((CURRENTPLAYERUPDATEHEADPOS_SCALE * g_CurrentPlayer->headpossum.f[0]) + vel->f[0]);
g_CurrentPlayer->headpossum.f[1] = ((CURRENTPLAYERUPDATEHEADPOS_SCALE * g_CurrentPlayer->headpossum.f[1]) + vel->f[1]);
g_CurrentPlayer->headpossum.f[2] = ((CURRENTPLAYERUPDATEHEADPOS_SCALE * g_CurrentPlayer->headpossum.f[2]) + vel->f[2]);
}
g_CurrentPlayer->headpos[0] = (g_CurrentPlayer->headpossum[0] * (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpos[1] = (g_CurrentPlayer->headpossum[1] * (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpos[2] = (g_CurrentPlayer->headpossum[2] * (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpos.f[0] = (g_CurrentPlayer->headpossum.f[0] * (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpos.f[1] = (g_CurrentPlayer->headpossum.f[1] * (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
g_CurrentPlayer->headpos.f[2] = (g_CurrentPlayer->headpossum.f[2] * (1.0f - CURRENTPLAYERUPDATEHEADPOS_SCALE));
#undef CURRENTPLAYERUPDATEHEADPOS_SCALE
}
@@ -128,32 +128,35 @@ void bheadUpdateRot(coord3d *lookvel, coord3d *upvel)
if (g_CurrentPlayer->resetheadrot)
{
g_CurrentPlayer->headlooksum[0] = lookvel->f[0] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlooksum[1] = lookvel->f[1] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlooksum[2] = lookvel->f[2] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headupsum[0] = upvel->f[0] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headupsum[1] = upvel->f[1] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headupsum[2] = upvel->f[2] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlooksum.f[0] = lookvel->f[0] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlooksum.f[1] = lookvel->f[1] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlooksum.f[2] = lookvel->f[2] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headupsum.f[0] = upvel->f[0] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headupsum.f[1] = upvel->f[1] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headupsum.f[2] = upvel->f[2] / (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->resetheadrot = FALSE;
}
for (i = 0; i < g_ClockTimer; i++)
{
g_CurrentPlayer->headlooksum[0] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headlooksum[0] + lookvel->f[0];
g_CurrentPlayer->headlooksum[1] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headlooksum[1] + lookvel->f[1];
g_CurrentPlayer->headlooksum[2] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headlooksum[2] + lookvel->f[2];
g_CurrentPlayer->headupsum[0] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headupsum[0] + upvel->f[0];
g_CurrentPlayer->headupsum[1] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headupsum[1] + upvel->f[1];
g_CurrentPlayer->headupsum[2] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headupsum[2] + upvel->f[2];
g_CurrentPlayer->headlooksum.f[0] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headlooksum.f[0] + lookvel->f[0];
g_CurrentPlayer->headlooksum.f[1] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headlooksum.f[1] + lookvel->f[1];
g_CurrentPlayer->headlooksum.f[2] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headlooksum.f[2] + lookvel->f[2];
g_CurrentPlayer->headupsum.f[0] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headupsum.f[0] + upvel->f[0];
g_CurrentPlayer->headupsum.f[1] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headupsum.f[1] + upvel->f[1];
g_CurrentPlayer->headupsum.f[2] = g_CurrentPlayer->headdamp * g_CurrentPlayer->headupsum.f[2] + upvel->f[2];
}
g_CurrentPlayer->headlook[0] = g_CurrentPlayer->headlooksum[0] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlook[1] = g_CurrentPlayer->headlooksum[1] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlook[2] = g_CurrentPlayer->headlooksum[2] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headup[0] = g_CurrentPlayer->headupsum[0] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headup[1] = g_CurrentPlayer->headupsum[1] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headup[2] = g_CurrentPlayer->headupsum[2] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlook.f[0] = g_CurrentPlayer->headlooksum.f[0] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlook.f[1] = g_CurrentPlayer->headlooksum.f[1] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headlook.f[2] = g_CurrentPlayer->headlooksum.f[2] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headup.f[0] = g_CurrentPlayer->headupsum.f[0] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headup.f[1] = g_CurrentPlayer->headupsum.f[1] * (1.0f - g_CurrentPlayer->headdamp);
g_CurrentPlayer->headup.f[2] = g_CurrentPlayer->headupsum.f[2] * (1.0f - g_CurrentPlayer->headdamp);
}
void bheadSetdamp(f32 headdamp)
@@ -161,22 +164,25 @@ void bheadSetdamp(f32 headdamp)
if (headdamp != g_CurrentPlayer->headdamp)
{
f32 divisor = 1.0f - headdamp;
g_CurrentPlayer->headlooksum[0] = (g_CurrentPlayer->headlooksum[0] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headlooksum[1] = (g_CurrentPlayer->headlooksum[1] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headlooksum[2] = (g_CurrentPlayer->headlooksum[2] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headupsum[0] = (g_CurrentPlayer->headupsum[0] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headupsum[1] = (g_CurrentPlayer->headupsum[1] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headupsum[2] = (g_CurrentPlayer->headupsum[2] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headdamp = headdamp;
g_CurrentPlayer->headlooksum.f[0] = (g_CurrentPlayer->headlooksum.f[0] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headlooksum.f[1] = (g_CurrentPlayer->headlooksum.f[1] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headlooksum.f[2] = (g_CurrentPlayer->headlooksum.f[2] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headupsum.f[0] = (g_CurrentPlayer->headupsum.f[0] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headupsum.f[1] = (g_CurrentPlayer->headupsum.f[1] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headupsum.f[2] = (g_CurrentPlayer->headupsum.f[2] * (1.0f - g_CurrentPlayer->headdamp)) / divisor;
g_CurrentPlayer->headdamp = headdamp;
}
}
void bheadUpdate(f32 arg0, f32 arg1)
void bheadUpdate(f32 percent_speed, f32 speedsideways)
{
coord3d headpos;
coord3d lookvel;
coord3d upvel;
f32 spC0;
f32 abs_anim_speed;
struct unk_joint_list sp80;
Mtxf sp40;
coord3d sp34;
@@ -186,17 +192,17 @@ void bheadUpdate(f32 arg0, f32 arg1)
lookvel = D_80036B0C;
upvel = D_80036B18;
spC0 = modelGetAbsAnimSpeed(&g_CurrentPlayer->model);
abs_anim_speed = modelGetAbsAnimSpeed(&g_CurrentPlayer->model);
if (g_CurrentPlayer->headanim == 0)
{
if (spC0 > 0.7f)
if (abs_anim_speed > 0.7f)
{
g_CurrentPlayer->headamplitude = 1.0f;
}
else if (spC0 > 0.1f)
else if (abs_anim_speed > 0.1f)
{
g_CurrentPlayer->headamplitude = (((spC0 - 0.1f) * 0.6f) / 0.59999996f) + 0.4f;
g_CurrentPlayer->headamplitude = (((abs_anim_speed - 0.1f) * 0.6f) / 0.59999996f) + 0.4f;
}
else
{
@@ -217,16 +223,15 @@ void bheadUpdate(f32 arg0, f32 arg1)
}
sp80 = D_80036B24;
sp34 = D_80036B64;
sp30 = sub_GAME_7F0701E0();
sp30 = modelIsAnimMergingEnabled();
g_CurrentPlayer->resetheadtick = 0;
sub_GAME_7F0701D4(0);
sub_GAME_7F070AEC(&g_CurrentPlayer->model, g_ClockTimer, 1);
sub_GAME_7F0701D4((s32) sp30);
modelSetAnimMergingEnabled(0);
modelTickAnimQuarterSpeed(&g_CurrentPlayer->model, g_ClockTimer, 1);
modelSetAnimMergingEnabled((s32) sp30);
subcalcpos(&g_CurrentPlayer->model);
matrix_4x4_set_identity(&sp40);
@@ -236,9 +241,9 @@ void bheadUpdate(f32 arg0, f32 arg1)
subcalcmatrices(&sp80, &g_CurrentPlayer->model);
g_CurrentPlayer->headbodyoffset[0] = g_CurrentPlayer->standbodyoffset.x;
g_CurrentPlayer->headbodyoffset[1] = g_CurrentPlayer->standbodyoffset.y;
g_CurrentPlayer->headbodyoffset[2] = g_CurrentPlayer->standbodyoffset.z;
g_CurrentPlayer->headbodyoffset.f[0] = g_CurrentPlayer->standbodyoffset.x;
g_CurrentPlayer->headbodyoffset.f[1] = g_CurrentPlayer->standbodyoffset.y;
g_CurrentPlayer->headbodyoffset.f[2] = g_CurrentPlayer->standbodyoffset.z;
getsuboffset(&g_CurrentPlayer->model, (struct float3 *) &sp34);
@@ -247,10 +252,10 @@ void bheadUpdate(f32 arg0, f32 arg1)
setsuboffset(&g_CurrentPlayer->model, (coord3d *) &sp34);
if (spC0 > 0.0f)
if (abs_anim_speed > 0.0f)
{
g_CurrentPlayer->bondheadmatrices[0].m[3][0] += arg1;
g_CurrentPlayer->bondheadmatrices[0].m[3][2] *= arg0;
g_CurrentPlayer->bondheadmatrices[0].m[3][0] += speedsideways;
g_CurrentPlayer->bondheadmatrices[0].m[3][2] *= percent_speed;
if (g_ClockTimer > 0)
{
@@ -258,9 +263,9 @@ void bheadUpdate(f32 arg0, f32 arg1)
g_CurrentPlayer->bondheadmatrices[0].m[3][2] /= g_GlobalTimerDelta;
}
headpos.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[3][0] * g_CurrentPlayer->headamplitude;
headpos.f[0] = g_CurrentPlayer->bondheadmatrices[0].m[3][0] * g_CurrentPlayer->headamplitude;
headpos.f[1] = ((g_CurrentPlayer->bondheadmatrices[0].m[3][1] - g_CurrentPlayer->standheight) * g_CurrentPlayer->headamplitude) + g_CurrentPlayer->standheight;
headpos.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[3][2] * g_CurrentPlayer->headamplitude;
headpos.f[2] = g_CurrentPlayer->bondheadmatrices[0].m[3][2] * g_CurrentPlayer->headamplitude;
if (g_CurrentPlayer->headanim >= 0)
{
@@ -275,7 +280,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
g_CurrentPlayer->headwalkingtime60 += g_ClockTimer;
#if defined(VERSION_EU)
if (g_CurrentPlayer->headwalkingtime60 >= 0x33)
if (g_CurrentPlayer->headwalkingtime60 > TICKS_PER_SECOND)
{
bheadSetdamp(0.916599988937f);
}
@@ -284,7 +289,7 @@ void bheadUpdate(f32 arg0, f32 arg1)
bheadSetdamp(0.987999975681f);
}
#else
if (g_CurrentPlayer->headwalkingtime60 >= 0x3D)
if (g_CurrentPlayer->headwalkingtime60 > TICKS_PER_SECOND)
{
bheadSetdamp(0.93f);
}
@@ -309,9 +314,9 @@ void bheadUpdate(f32 arg0, f32 arg1)
}
else
{
g_CurrentPlayer->headbodyoffset[0] = g_CurrentPlayer->standbodyoffset.x;
g_CurrentPlayer->headbodyoffset[1] = g_CurrentPlayer->standbodyoffset.y;
g_CurrentPlayer->headbodyoffset[2] = g_CurrentPlayer->standbodyoffset.z;
g_CurrentPlayer->headbodyoffset.f[0] = g_CurrentPlayer->standbodyoffset.x;
g_CurrentPlayer->headbodyoffset.f[1] = g_CurrentPlayer->standbodyoffset.y;
g_CurrentPlayer->headbodyoffset.f[2] = g_CurrentPlayer->standbodyoffset.z;
headpos.f[0] = 0.0f;
headpos.f[1] = g_CurrentPlayer->standheight;
@@ -331,18 +336,22 @@ void bheadUpdate(f32 arg0, f32 arg1)
g_CurrentPlayer->standfrac -= 1.0f;
}
// result = x vector plus ((y - x vector) * scaler)
// lookvel = ...
sub_GAME_7F05AE00(
&g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt][0],
&g_CurrentPlayer->standlook[1 - g_CurrentPlayer->standcnt][0],
&g_CurrentPlayer->standlook[g_CurrentPlayer->standcnt].f[0],
&g_CurrentPlayer->standlook[1 - g_CurrentPlayer->standcnt].f[0],
g_CurrentPlayer->standfrac,
&lookvel);
lookvel.f[0] *= (1.0f + (5.0f * bondviewGetBondBreathing()));
lookvel.f[1] *= (1.0f + (5.0f * bondviewGetBondBreathing()));
// result = x vector plus ((y - x vector) * scaler)
// upvel = ...
sub_GAME_7F05AE00(
&g_CurrentPlayer->standup[g_CurrentPlayer->standcnt][0],
&g_CurrentPlayer->standup[1 - g_CurrentPlayer->standcnt][0],
&g_CurrentPlayer->standup[g_CurrentPlayer->standcnt].f[0],
&g_CurrentPlayer->standup[1 - g_CurrentPlayer->standcnt].f[0],
g_CurrentPlayer->standfrac,
&upvel);
@@ -357,6 +366,8 @@ void bheadUpdate(f32 arg0, f32 arg1)
/**
* Adjust Bond model based on speed (speedforwards).
* Toggle the currently selected headanim index.
* Address 0x7F08E8BC.
*/
void bheadAdjustAnimation(f32 speed)
@@ -435,6 +446,7 @@ void bheadSetSpeed(f32 speed)
f32 bheadGetBreathingValue(void)
{
if (g_CurrentPlayer->headanim >= 0) {
// bondviewGetBondBreathing() * (1/80) + (1/240)
f32 a = bondviewGetBondBreathing() * 0.012500001f + 0.004166667f;
f32 b = modelGetAbsAnimSpeed(&g_CurrentPlayer->model);
+1 -1
View File
@@ -20,7 +20,7 @@ s32 waypointFindRoute(waypoint *, waypoint *, waypoint ** arr, s32 arr_len);
waypoint * sub_GAME_7F08FB90(waypoint *, waypoint *);
void bheadFlipAnimation();
void bheadUpdateIdleRoll();
void bheadUpdate(f32 arg0, f32 arg1);
void bheadUpdate(f32 percent_speed, f32 speedsideways);
void bheadAdjustAnimation(f32 arg0);
void bheadStartDeathAnimation(struct ModelAnimation *arg0, s32 arg1, f32 arg2, f32 arg3);
void bheadSetSpeed(f32 arg0);
+11 -11
View File
@@ -274,7 +274,7 @@ int bondinvItemAvailableForHand(ITEM_IDS right, ITEM_IDS left)
right < ITEM_BOMBCASE &&
right == left &&
getPlayerCount() == 1 &&
bondwalkItemCheckBitflags(right, 0x100000))
bondwalkItemCheckBitflags(right, WEAPONSTATBITFLAG_CAN_DUAL_WIELD))
{
return TRUE;
}
@@ -289,7 +289,7 @@ int bondinvItemAvailableForHand(ITEM_IDS right, ITEM_IDS left)
right < ITEM_BOMBCASE &&
right == left &&
getPlayerCount() == 1 &&
bondwalkItemCheckBitflags(right, 0x100000) &&
bondwalkItemCheckBitflags(right, WEAPONSTATBITFLAG_CAN_DUAL_WIELD) &&
(j_text_trigger == FALSE || (right != ITEM_KNIFE)))
{
return TRUE;
@@ -561,7 +561,7 @@ void bondinvCycleForward(s32 *nextright, s32 *nextleft, s32 requireammo)
{
s32 candidate = *nextright;
if (getPlayerCount() == 1 && bondwalkItemCheckBitflags(*nextright, 0x100000) && (*nextleft < *nextright) && (requireammo == FALSE || bondwalkItemHasAmmo(*nextright)) && (weapon1 != *nextright || *nextright < weapon2)
if (getPlayerCount() == 1 && bondwalkItemCheckBitflags(*nextright, WEAPONSTATBITFLAG_CAN_DUAL_WIELD) && (*nextleft < *nextright) && (requireammo == FALSE || bondwalkItemHasAmmo(*nextright)) && (weapon1 != *nextright || *nextright < weapon2)
#ifdef BUGFIX_R1
&& (!j_text_trigger || *nextright != ITEM_KNIFE)
#endif
@@ -671,7 +671,7 @@ void bondinvCycleBackward(s32 *nextright, s32 *nextleft, s32 requireammo)
{
if (candidate == weapon1)
{
if (getPlayerCount() == 1 && bondwalkItemCheckBitflags(candidate, 0x100000) && (requireammo == FALSE || bondwalkItemHasAmmo(candidate)) && (candidate != *nextright || candidate < *nextleft) && (weapon2 < candidate)
if (getPlayerCount() == 1 && bondwalkItemCheckBitflags(candidate, WEAPONSTATBITFLAG_CAN_DUAL_WIELD) && (requireammo == FALSE || bondwalkItemHasAmmo(candidate)) && (candidate != *nextright || candidate < *nextleft) && (weapon2 < candidate)
#ifdef BUGFIX_R1
&& (!j_text_trigger || candidate != ITEM_KNIFE)
#endif
@@ -690,7 +690,7 @@ void bondinvCycleBackward(s32 *nextright, s32 *nextleft, s32 requireammo)
#endif
)
{
if (getPlayerCount() == 1 && bondwalkItemCheckBitflags(candidate, 0x100000) && (candidate != *nextright || candidate < *nextleft))
if (getPlayerCount() == 1 && bondwalkItemCheckBitflags(candidate, WEAPONSTATBITFLAG_CAN_DUAL_WIELD) && (candidate != *nextright || candidate < *nextleft))
{
weapon1 = candidate;
weapon2 = candidate;
@@ -1389,9 +1389,9 @@ u8 *bondinvGetActivatedTextObject(ObjectRecord *obj)
{
textoverride *override = bondinvGetTextbyObj(obj);
if (override && override->unk8)
if (override && override->pickuptext)
{
return langGet(override->unk8);
return langGet(override->pickuptext);
}
return NULL;
@@ -1401,9 +1401,9 @@ u8 *bondinvGetActivatedTextWeapon(ITEM_IDS weaponnum)
{
textoverride *override = bondinvGetTextbyWeaponID(weaponnum);
if (override && override->unk8)
if (override && override->pickuptext)
{
return langGet(override->unk8);
return langGet(override->pickuptext);
}
return NULL;
@@ -1415,7 +1415,7 @@ void bondinvIncrementHeldTime(s32 weapon1, s32 weapon2)
s32 leastusedindex;
s32 i;
if (!bondwalkItemCheckBitflags(weapon1, 0x20000))
if (!bondwalkItemCheckBitflags(weapon1, WEAPONSTATBITFLAG_USE_HOLD_TIME))
{
return;
}
@@ -1423,7 +1423,7 @@ void bondinvIncrementHeldTime(s32 weapon1, s32 weapon2)
leastusedtime = 0x7fffffff;
leastusedindex = 0;
if (!bondwalkItemCheckBitflags(weapon2, 0x20000))
if (!bondwalkItemCheckBitflags(weapon2, WEAPONSTATBITFLAG_USE_HOLD_TIME))
{
weapon2 = ITEM_UNARMED;
}
+4566 -26863
View File
File diff suppressed because it is too large. Load diff
+155 -108
View File
@@ -43,9 +43,15 @@ struct collision434 {
coord3d collision_position;
/**
* This affects Bond's movement, but not the viewport.
* This does not affect boost direction.
*
* f[0]: forward component (sin theta) in radians
* f[1]: zero
* f[2]: sideways component (cos theta) in radians.
* Offset 0x10.
*/
struct coord3d field_10;
struct coord3d theta_transform;
/**
* Some kind of alternative to pos3 (in player struct).
@@ -167,7 +173,7 @@ struct hand
f32 field_A38;
f32 field_A3C;
f32 field_A40;
s32 field_A44;
ALSoundState * audioHandle;
s32 field_A48;
s32 field_A4C;
s32 field_A50;
@@ -176,8 +182,8 @@ struct hand
f32 field_A84;
f32 field_A88;
s32 field_A8C;
ObjectRecord* field_A90;
s32 field_A94;
ObjectRecord* rocket;
s32 firedrocket;
s32 field_A98;
s32 field_A9C;
s32 field_AA0;
@@ -256,7 +262,7 @@ struct hand
s32 field_BFC;
s32 field_C00;
s32 field_C04;
s32 field_C08;
s32 volley; // Number of bullets discharged in a row. For pistols, it's always 1 even if the fire button is held.
coord3d item_related;
};
@@ -284,7 +290,7 @@ typedef struct textoverride {
/*0x10*/ u32 unk5;
/*0x14*/ u32 unk6;
/*0x18*/ u32 unk7;
/*0x1c*/ u32 unk8;
/*0x1c*/ u32 pickuptext;
/*0x20*/ struct textoverride *next;
/*0x24*/ struct ObjectRecord *obj;
} textoverride;
@@ -398,9 +404,12 @@ struct player
/**
* Collision / clipping related.
* When Bond falls off a ladder or similar, will "overshoot" vertical default.
* Current offset is stored in this field.
*
* Offset 0x0090.
*/
/* 0x0090 */ f32 field_90;
/* 0x0090 */ f32 vertical_bounce_adjust;
/* 0x0094 */ s32 field_94;
/* 0x0098 */ f32 field_98;
@@ -438,11 +447,29 @@ struct player
/* 0x00f0 */ f32 apparentarmour;
#if defined(VERSION_JP) || defined (VERSION_EU)
/* 0x00f4 */ f32 damageshowtime;
/* 0x00f8 */ f32 healthshowtime;
/*
* When a non-negative integer:
* - hide ammo and aim sight
* - hide any active speech text
* - disable shoot and B press interact
* Otherwise,
* - undo the above.
* 0x00f4
**/
f32 damageshowtime;
/**
* When a non-negative integer:
* - Show health and body armor overlay if Bond isn't dead.
* Otherwise,
* - undo the above.
* 0x00f8
**/
f32 healthshowtime;
#else
/* 0x00f4 */ s32 damageshowtime;
/* 0x00f8 */ s32 healthshowtime;
/* See comments above. 0x00f4 */ s32 damageshowtime;
/* See comments above. 0x00f8 */ s32 healthshowtime;
#endif
@@ -466,21 +493,53 @@ struct player
/* 0x0124 */ s32 insightaimmode;
/* 0x0128 */ s32 autoyaimenabled;
/* 0x012c */ f32 autoaimy;
/* 0x0130 */ s32 autoyaimtime;
/* 0x0130 */ struct PropRecord *autoaim_target_y;
/* 0x0134 */ s32 autoyaimtime60;
/* 0x0138 */ s32 autoxaimenabled;
/* 0x013c */ f32 autoaimx;
/* 0x0140 */ s32 autoxaimtime;
/* 0x0140 */ struct PropRecord *autoaim_target_x;
/* 0x0144 */ s32 autoxaimtime60;
/* 0x0148 */ f32 vv_theta;
/* 0x014c */ f32 speedtheta;
/* 0x0150 */ f32 vv_costheta;
/* 0x0154 */ f32 vv_sintheta;
/* 0x0158 */ f32 vv_verta;
/* 0x015c */ f32 vv_verta360;
/**
* Computed value from vv_theta, used to calculate boost direction.
* 0x0150
**/
f32 vv_costheta;
/**
* Computed value from vv_theta, used to calculate boost direction.
* 0x0154
**/
f32 vv_sintheta;
/**
* Vertical look angle.
* 0x0158
**/
f32 vv_verta;
/**
* Vertical look angle. Computed value from vv_verta, should always be between 0 and 360 degrees.
* 0x015c
**/
f32 vv_verta360;
/* 0x0160 */ f32 speedverta;
/* 0x0164 */ f32 vv_cosverta;
/* 0x0168 */ f32 vv_sinverta;
/**
* Computed value from vv_verta360, but otherwise unused?
* 0x0164
**/
f32 vv_cosverta;
/**
* Computed value from vv_verta360, but otherwise unused?
* 0x0168
**/
f32 vv_sinverta;
/* 0x016c */ f32 speedsideways;
/* 0x0170 */ f32 speedstrafe;
/* 0x0174 */ f32 speedforwards;
@@ -689,7 +748,7 @@ struct player
* Address 0x800C6B17
*/
u16 buttons_pressed;
s16 field_3B6;
u16 prev_buttons_pressed;
struct coord3d field_3B8;
@@ -754,18 +813,18 @@ struct player
s32 headwalkingtime60; //0x4f0
f32 headamplitude; //0x4f4
f32 sideamplitude; //0x4f8
vec3 headpos;
vec3 headlook;
struct coord3d headpos;
struct coord3d headlook;
vec3 headup;
vec3 headpossum;
struct coord3d headup;
struct coord3d headpossum;
// headlooksum[2] has NTSC->PAL conversion rate (5/6)
vec3 headlooksum;
struct coord3d headlooksum;
// headupsum[1] has NTSC->PAL conversion rate (5/6)
vec3 headupsum;
vec3 headbodyoffset; //0x544
struct coord3d headupsum;
struct coord3d headbodyoffset; //0x544
f32 standheight; // old name stationary_ground_offset
// f32[4] ?? or 2 x f32[2] ??
@@ -773,10 +832,10 @@ struct player
f32 standfrac; //0x560
// offset 0x564
vec3 standlook[2];
struct coord3d standlook[2];
// offset 0x57C
vec3 standup[2];
struct coord3d standup[2];
// offset 0x594
s32 standcnt;
@@ -890,7 +949,7 @@ struct player
s32 hand_invisible[2]; /* 0x7f8*/
ITEM_IDS hand_item[2]; /* 0x800 */
u8 *ptr_hand_weapon_buffer[2]; /* 0x808 */
ModelFileHeader *ptr_hand_weapon_buffer[2]; /* 0x808 */
/**
* Offset 0x810.
@@ -919,12 +978,11 @@ struct player
s32 z_trigger_timer;
s32 field_FD8;
u8 field_FDC;
u8 field_FDD;
u8 field_FDE;
u8 field_FDF;
struct rgba_u8 tileColor;
s32 resetshadecol;
s32 field_FE4;
// unused. Name comes from XBLA debug.
s32 aimtype;
/**
* Crosshair or bullet angle related.
@@ -942,7 +1000,7 @@ struct player
Mtxf field_101C;
s32 last_z_trigger_timer;
s32 copiedgoldeneye;
s32 ammodispflags;
s32 gunammooff;
s32 field_1068;
f32 gunsync;
f32 syncchange;
@@ -1088,8 +1146,8 @@ struct player
gunheld gunheldarr[10];
s32 magnetattracttime;
f32 swaytarget;
f32 field_1278;
f32 field_127C;
f32 swayoffset0;
f32 swayoffset2;
f32 field_1280;
s32 players_cur_animation;
f32 field_1288;
@@ -2509,7 +2567,7 @@ struct player
s32 field_29B4;
// Alt field_29C0 ?? Used in EU.
s32 field_29B8;
s32 healthDamageType;
/**
* Related to player perspective.
@@ -2596,42 +2654,42 @@ struct struct_4 {
};
#ifdef BUGFIX_R0
typedef struct bondstruct_unk_80036634
typedef struct DamageType
{
u32 field_0x0;
u32 field_0x4;
s32 field_0x8;
f32 field_0xC;
u32 field_0x10;
u32 field_0x14;
s32 field_0x18;
f32 field_0x1c;
u32 field_0x20;
u32 field_0x24;
u32 field_0x28;
} bondstruct_unk_80036634;
s32 flashStartFrame;
u32 flashFullFrame;
s32 flashEndFrame;
f32 maxAlpha;
u32 red;
u32 green;
u32 blue;
} DamageType;
#else
typedef struct bondstruct_unk_80036634
typedef struct DamageType
{
f32 field_0x0;
f32 field_0x4;
f32 field_0x8;
f32 field_0xC;
f32 field_0x10;
f32 field_0x14;
f32 field_0x18;
f32 field_0x1c;
u32 field_0x20;
u32 field_0x24;
u32 field_0x28;
} bondstruct_unk_80036634;
f32 flashStartFrame;
f32 flashFullFrame;
f32 flashEndFrame;
f32 maxAlpha;
u32 red;
u32 green;
u32 blue;
} DamageType;
#endif
typedef struct bondstruct_unk_80036794 { // time related idk
s32 unk0;
s32 unk4;
s32 unk8;
} bondstruct_unk_80036794;
typedef struct HealthDamageType { // time related idk
s32 updateStartFrame;
s32 updateEndFrame;
s32 otherEndFrame;
} HealthDamageType;
typedef struct bondstruct_unk_80035904 {
u32 unk00;
@@ -2641,6 +2699,12 @@ typedef struct bondstruct_unk_80035904 {
f32 unk20;
} bondstruct_unk_80035904;
// placeholder while matching
struct move_bond_temp_struct {
s32 unk00;
s32 unk04;
};
//D:80036424
extern s32 g_bondviewForceDisarm;
//D:80036428
@@ -2658,23 +2722,23 @@ extern s32 D_8003643C;
//D:80036440
extern CreditsEntry *D_80036440;
//D:80036444
extern s32 D_80036444;
extern s32 g_SurroundBondWithExplosionsFlag;
//D:80036448
extern s32 in_tank_flag;
//D:8003644C
extern struct PropRecord *D_8003644C;
extern struct PropRecord *g_WorldTankProp;
//D:80036450
extern struct PropRecord *ptr_playerstank;
extern struct PropRecord *g_PlayerTankProp;
/**
* Related to ptr_playerstank.
* Related to g_PlayerTankProp.
* Address 0x80036454.
*/
extern f32 g_PlayerTankYOffset;
//D:80036458
extern ALSoundState * SFX_80036458[2];
extern ALSoundState * g_TankSfxState[2];
//D:80036460
extern f32 g_TankTurnSpeed;
@@ -2699,13 +2763,13 @@ extern f32 g_TankTurretAngle;
//D:80036488
extern f32 g_TankTurretTurn;
//D:8003648C
extern s32 D_8003648C;
extern s32 g_ExplodeTankOnDeathFlag;
//D:80036490
extern s32 D_80036490;
extern s32 g_TankDamagePenaltyTicks;
//D:80036494
extern s32 g_CameraMode;
extern enum CAMERAMODE g_CameraMode;
//D:80036498
extern s32 enable_move_after_cinema;
extern enum CAMERAMODE g_CameraAfterCinema;
//D:8003649C
extern s32 D_8003649C;
//D:800364A0
@@ -2742,7 +2806,7 @@ extern s32 g_bondviewBondDeathAnimations[];
//D:8003650C
extern s32 g_bondviewBondDeathAnimationsCount;
//D:80036510
extern s32 D_80036510;
extern enum CAMERAMODE D_80036510;
//D:80036514
extern s32 g_IntroAnimationIndex;
/*
@@ -2778,7 +2842,7 @@ D:80036624 .word 0xFFFFFF00, 0xFFFFFF00, 0x4FFFFFF
//D:80036630
extern u32 D_80036630;
//D:80036634
extern bondstruct_unk_80036634 D_80036634[];
extern struct DamageType g_DamageTypes[];
/*
D:80036638 .byte 0
D:80036639 .byte 0, 0, 0xA
@@ -2820,7 +2884,7 @@ D:8003676C .byte 0
D:8003676D .byte 0, 0, 0xA
D:80036770 .word 0x1E, 0x3F19999A, 0
D:8003677C .word 5, 0xF, 0x3ECCCCCD, 0xFF, 0xFF, 0xFF
D:80036794 D_80036794:.word 0
D:80036794 g_HealthDamageTypes:.word 0
D:80036798 .byte 0
D:80036799 .byte 0, 0, 0x28
D:8003679C .word 0x64, 0
@@ -2845,30 +2909,11 @@ D:800367ED .byte 0, 0, 0x14
D:800367F0 .word 0x32
*/
//D:80036800
extern s32 D_80036800;
//D:80036804
extern s32 D_80036804;
//D:80036808
extern s32 D_80036808;
//D:8003680C
extern s32 D_8003680C;
//D:80036810
extern s32 D_80036810;
//D:80036814
extern s32 D_80036814;
//D:80036818
extern s32 D_80036818;
//D:8003681C
extern s32 D_8003681C;
//D:80036820
extern s32 D_80036820;
//D:80036824
extern s32 D_80036824;
//D:80036828
extern s32 D_80036828;
//D:8003682C
extern s32 D_8003682C;
extern struct coord3d g_DefaultFrozenPlayerPos;
extern struct coord3d g_DefaultFrozenPlayerPos2;
extern struct coord3d g_DefaultFrozenPlayerOffset;
extern struct coord3d g_DefaultFrozenMoveOffset;
//D:80036830
extern s32 D_80036830;
//D:80036834
@@ -2906,7 +2951,7 @@ extern s32 upper_text_buffer_index;
extern s32 display_upper_text_window;
//D:800368B0
extern s32 upper_text_window_timer;
extern s32 D_800368B4;
extern s32 g_UpperTextDisplayFlag;
/*
D:800368D8 firing_animation_groups:firing_anim_struct <pistol_firing_animation_group1, 0, 0.1, 79.0, 87.0>
D:800368D8 # DATA XREF: sub_CODE_7F08B0F0+720o
@@ -2944,7 +2989,7 @@ extern f32 D_80036AC0;
extern f32 D_80036AC4;
extern s32 startpadcount;
extern vec3d flt_CODE_bss_80079990;
extern vec3d g_ForceBondMoveOffset;
extern s32 mission_timer;
#if defined(VERSION_JP) || defined(VERSION_EU)
@@ -3006,6 +3051,7 @@ void jp_hudmsgBottomShow(char *string);
// VERSION_US
#define HUDMESSAGEBOTTOM hudmsgBottomShow
void hudmsgBottomShow(char *string);
void setFontTables(s32 arg0, s32 arg1);
#endif
Gfx * sub_GAME_7F087A08(Gfx *arg0);
@@ -3016,13 +3062,13 @@ Gfx * bondviewRemoved7F08BCB8(Gfx *arg0);
s32 sub_GAME_7F078A58(coord3d *vec_scale, f32 norm_scale);
s32 getMissiontimer(void);
void solo_char_load(void);
void bondviewUpdateYAutoAimTime(s32 auto_aim_time, f32 auto_aim_y);
void bondviewUpdateXAutoAimTime(s32 auto_aim_time, f32 auto_aim_x);
void bondviewUpdateYAutoAimTime(struct PropRecord *autoaim_target, f32 auto_aim_y);
void bondviewUpdateXAutoAimTime(struct PropRecord *autoaim_target, f32 auto_aim_x);
void bondviewSet3dCoord7F07CEB0(coord3d *arg0);
f32 bondviewYPositionRelated(struct StandTile *arg0, f32 arg1, f32 arg2);
f32 bondviewGetPlayerDuckingHeightRelated(struct player *player);
void bondviewCollisionRadiusRelated(PropRecord* arg0, f32 *collision_radius, f32 *height, f32 *always_30);
void bondviewUpdatePlayerClipping(s32 use_stanHeight, f32 stanHeight_offset);
void bondviewGetCollisionRadius(PropRecord* arg0, f32 *collision_radius, f32 *height, f32 *always_30);
void bondviewUpdatePlayerY(s32 use_stanHeight, f32 stanHeight_offset);
void currentPlayerSetFadeColour(s32 r, s32 g, s32 b, f32 frac);
void currentPlayerSetFadeFrac(f32 maxfadetime, f32 frac);
void set_BONDdata_autoaim_x(s32 param_1);
@@ -3052,7 +3098,7 @@ void set_bondata_invincible_flag(u32 arg0);
void bondviewSetVisibleToGuardsFlag(s32 param_1);
Mtxf *currentPlayerGetMatrix10EC(void);
f32 get_curplay_horizontal_rotation_in_degrees(void);
Mtxf *currentPlayerGetMatrix10CC(void);
Mtxf *camGetWorldToScreenMtxf(void);
void sub_GAME_7F077EEC(struct coord2d *in, coord3d *out, f32 value);
s32 camIsPosInScreenBox(coord3d *, f32, struct bbox2d *);
@@ -3063,9 +3109,9 @@ Mtx *currentPlayerGetProjectionMatrix(void);
Gfx *bondviewRenderProp(PropRecord *arg0, Gfx *arg1, s32 arg2);
f32 getPlayer_c_lodscalez(void);
f32 bondviewGetBondBreathing(void);
void sub_GAME_7F08A928(int param_1);
void bondviewClearUpperTextDisplayFlag(int param_1);
void sub_GAME_7F08A944(PLAYERFLAG flag);
void bondviewSetUpperTextDisplayFlag(PLAYERFLAG flag);
void set_camera_mode(s32 arg0);
bool isBondInTank(void);
void hudmsgTopShow(char* string);
@@ -3077,9 +3123,10 @@ struct PropRecord *get_ptr_for_players_tank(void);
s32 bondviewGetRandomSpawnPadIndex(void);
void change_player_pos_to_target(struct collision434* arg0, struct coord3d *arg1, struct StandTile *arg2);
void sub_GAME_7F089718(f32);
void sub_GAME_7F08A900(void);
void bondviewResetUpperTextDisplay(void);
Mtxf *currentPlayerGetProjectionMatrixF(void);
int redirect_get_BONDdata_autoaim_x(void);
int redirect_get_BONDdata_autoaim_y(void);
void sub_GAME_7F077FF4(coord3d *in, coord3d *out);
#endif
+16 -16
View File
@@ -129,17 +129,17 @@ void bondviewLoadSetupIntroSection(void)
camera_80036438 = 0;
D_8003643C = 0;
D_80036440 = NULL;
flt_CODE_bss_80079990.f[0] = FLOAT_INIT;
flt_CODE_bss_80079990.f[1] = FLOAT_INIT;
flt_CODE_bss_80079990.f[2] = FLOAT_INIT;
D_80036444 = 0;
g_ForceBondMoveOffset.f[0] = FLOAT_INIT;
g_ForceBondMoveOffset.f[1] = FLOAT_INIT;
g_ForceBondMoveOffset.f[2] = FLOAT_INIT;
g_SurroundBondWithExplosionsFlag = 0;
startpadcount = 0;
in_tank_flag = 0;
D_8003644C = 0;
ptr_playerstank = NULL;
g_WorldTankProp = 0;
g_PlayerTankProp = NULL;
g_PlayerTankYOffset = FLOAT_INIT;
SFX_80036458[0] = NULL;
SFX_80036458[1] = NULL;
g_TankSfxState[0] = NULL;
g_TankSfxState[1] = NULL;
g_TankTurnSpeed = FLOAT_INIT;
g_TankOrientationAngle = FLOAT_INIT;
D_80036468 = FLOAT_INIT;
@@ -151,11 +151,11 @@ void bondviewLoadSetupIntroSection(void)
g_BondCanEnterTank = 0;
g_TankTurretAngle = FLOAT_INIT;
g_TankTurretTurn = FLOAT_INIT;
D_8003648C = 0;
g_ExplodeTankOnDeathFlag = 0;
D_800364B0 = 1;
g_PlayerInvincible = 0;
g_CameraMode = 0;
enable_move_after_cinema = 0;
g_CameraAfterCinema = 0;
D_8003649C = 0;
stop_time_flag = 0;
D_800364A4 = FLOAT_INIT;
@@ -412,9 +412,9 @@ void bondviewLoadSetupIntroSection(void)
g_CurrentPlayer->stanHeight = stan_height;
g_CurrentPlayer->field_6C = stan_height / FIELD_6C_FACTOR;
change_player_pos_to_target(&g_CurrentPlayer->field_488, &start_pos, start_stan);
g_CurrentPlayer->field_488.field_10.f[0] = -sinf(start_look_angle);
g_CurrentPlayer->field_488.field_10.f[1] = FLOAT_INIT;
g_CurrentPlayer->field_488.field_10.f[2] = cosf(start_look_angle);
g_CurrentPlayer->field_488.theta_transform.f[0] = -sinf(start_look_angle);
g_CurrentPlayer->field_488.theta_transform.f[1] = FLOAT_INIT;
g_CurrentPlayer->field_488.theta_transform.f[2] = cosf(start_look_angle);
sub_GAME_7F089718(D_800364D0);
dword_CODE_bss_80079DA0 = 0;
@@ -426,8 +426,8 @@ void bondviewLoadSetupIntroSection(void)
}
bondviewResetIntroCameraMessageDialogs();
sub_GAME_7F08A900();
g_CurrentPlayer->prop = chrpropAllocate();
bondviewResetUpperTextDisplay();
g_CurrentPlayer->prop = propAllocate();
g_CurrentPlayer->prop->obj = NULL;
g_CurrentPlayer->prop->type = PROP_TYPE_VIEWER;
@@ -466,5 +466,5 @@ void bondviewLoadSetupIntroSection(void)
g_CurrentPlayer->startnewbonddie = 1;
g_CurrentPlayer->redbloodfinished = 0;
g_CurrentPlayer->deathanimfinished = 0;
D_80036510 = 0;
D_80036510 = CAMERAMODE_NONE;
}
+31 -29
View File
@@ -17,6 +17,8 @@
#include "objecthandler.h"
#include "player.h"
#include "player_2.h"
#include "assets/obseg/text/LmiscE.h"
//#include "chraicommands.h" /* needed for ai list commands, remove when moving global ai lists to chraicommands/chrai */
// bss
@@ -683,39 +685,39 @@ u16 mBtnCheatUnlockAllGuns[] = {
*/
CheatInfo g_CheatInfo[] = {
{ CHEAT_EXTRA_MP_CHARS, 0xA, 0, 0, mBtnCheatExtraMPChars, 0, 0, /* 0x31 */ CHEAT_MASK_GLOBAL | CHEAT_MASK_16 | CHEAT_MASK_MENUS},
{ CHEAT_INVINCIBILITY, 0xA, 0, 0, mBtnCheatInvincibility, TEXT(LMISC,0x00), 0, /* 0x06 */ CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_ALLGUNS, 0xA, 0, 0, mBtnCheatAllGuns, TEXT(LMISC,0x01), 0, /* 0x02 */ CHEAT_MASK_SPGAME},
{ CHEAT_INVINCIBILITY, 0xA, 0, 0, mBtnCheatInvincibility, TEXT(LMISC, MISC_STR_00), 0, /* 0x06 */ CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_ALLGUNS, 0xA, 0, 0, mBtnCheatAllGuns, TEXT(LMISC, MISC_STR_01), 0, /* 0x02 */ CHEAT_MASK_SPGAME},
{ CHEAT_MAXAMMO, 0xA, 0, 0, mBtnCheatMaxAmmo, 0, 0, /* 0x16 */ CHEAT_MASK_16 | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_DEBUG_RETURN_SAVED_RA, 0xA, 0, 0, mBtnCheatInvalid, 0, 0, /* 0x16 */ CHEAT_MASK_16 | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{CHEAT_DEACTIVATE_INVINCIBILITY, 0xA, 0, 0, mBtnCheatDeactivateInvincibilityMulti, 0, 0, /* 0x34 */ CHEAT_MASK_GLOBAL | CHEAT_MASK_16 | CHEAT_MASK_MPGAME},
{ CHEAT_LINEMODE, 0xA, 0, 0, mBtnCheatLineMode, TEXT(LMISC,0x37), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_LINEMODE, 0xA, 0, 0, mBtnCheatLineMode, TEXT(LMISC, MISC_STR_37), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_2X_HEALTH, 0, 0, 0, 0, 0, 0, /* 0x16 */ CHEAT_MASK_16 | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_2X_ARMOR, 0, 0, 0, 0, 0, 0, /* 0x16 */ CHEAT_MASK_16 | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_INVISIBILITY, 0xA, 0, 0, mBtnCheatInvisibility, TEXT(LMISC,0x04), 0, /* 0x62 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_SPGAME},
{ CHEAT_INFINITE_AMMO, 0, 0, 0, 0, TEXT(LMISC,0x06), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_DK_MODE, 0, 0, 0, 0, TEXT(LMISC,0x07), 0, /* 0x26 */ CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_INVISIBILITY, 0xA, 0, 0, mBtnCheatInvisibility, TEXT(LMISC, MISC_STR_04), 0, /* 0x62 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_SPGAME},
{ CHEAT_INFINITE_AMMO, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_06), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_DK_MODE, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_07), 0, /* 0x26 */ CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_EXTRA_WEAPONS, 0, 0, 0, 0, 0, 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_TINY_BOND, 0, 0, 0, 0, TEXT(LMISC,0x08), 0, /* 0x02 */ CHEAT_MASK_SPGAME},
{ CHEAT_PAINTBALL, 0, 0, 0, 0, TEXT(LMISC,0x38), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_TINY_BOND, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_08), 0, /* 0x02 */ CHEAT_MASK_SPGAME},
{ CHEAT_PAINTBALL, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_38), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_10X_HEALTH, 0, 0, 0, 0, 0, 0, /* 0x16 */ CHEAT_MASK_16 | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_MAGNUM, 0, 0, 0, 0, TEXT(LMISC,0x0A), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_LASER, 0, 0, 0, 0, TEXT(LMISC,0x0B), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_GOLDEN_GUN, 0, 0, 0, 0, TEXT(LMISC,0x0C), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_SILVER_PP7, 0, 0, 0, 0, TEXT(LMISC,0x0D), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_GOLD_PP7, 0, 0, 0, 0, TEXT(LMISC,0x0E), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_MAGNUM, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_0A), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_LASER, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_0B), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_GOLDEN_GUN, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_0C), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_SILVER_PP7, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_0D), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_GOLD_PP7, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_0E), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_INVISIBILITY_MP, 0xA, 0, 0, mBtnCheatInvisibilityMulti, 0, 0, /* 0x12 */ CHEAT_MASK_MPGAME},
{ CHEAT_NO_RADAR_MP, 0, 0, 0, 0, TEXT(LMISC,0x43), 0, /* 0x64 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME},
{ CHEAT_TURBO_MODE, 0, 0, 0, 0, TEXT(LMISC,0x40), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_NO_RADAR_MP, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_43), 0, /* 0x64 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME},
{ CHEAT_TURBO_MODE, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_40), 0, /* 0x66 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_MPGAME | CHEAT_MASK_SPGAME},
{ CHEAT_DEBUG_POS, 0, 0, 0, 0, 0, 0, /* 0x20 */ CHEAT_MASK_GLOBAL},
{ CHEAT_FAST_ANIMATION, 0, 0, 0, 0, TEXT(LMISC,0x41), 0, /* 0x72 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_SLOW_ANIMATION, 0, 0, 0, 0, TEXT(LMISC,0x42), 0, /* 0x72 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_ENEMY_ROCKETS, 0, 0, 0, 0, TEXT(LMISC,0x39), 0, /* 0x01 */ CHEAT_MASK_MENUS},
{ CHEAT_2X_ROCKET_LAUNCHER, 0, 0, 0, 0, TEXT(LMISC,0x3A), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_GRENADE_LAUNCHER, 0, 0, 0, 0, TEXT(LMISC,0x3B), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_RCP90, 0, 0, 0, 0, TEXT(LMISC,0x3C), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_THROWING_KNIFE, 0, 0, 0, 0, TEXT(LMISC,0x3D), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_HUNTING_KNIFE, 0, 0, 0, 0, TEXT(LMISC,0x3E), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_LASER, 0, 0, 0, 0, TEXT(LMISC,0x3F), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_FAST_ANIMATION, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_41), 0, /* 0x72 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_SLOW_ANIMATION, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_42), 0, /* 0x72 */ CHEAT_MASK_TOGGLE | CHEAT_MASK_GLOBAL | CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_ENEMY_ROCKETS, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_39), 0, /* 0x01 */ CHEAT_MASK_MENUS},
{ CHEAT_2X_ROCKET_LAUNCHER, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_3A), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_GRENADE_LAUNCHER, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_3B), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_RCP90, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_3C), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_THROWING_KNIFE, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_3D), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_HUNTING_KNIFE, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_3E), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_2X_LASER, 0, 0, 0, 0, TEXT(LMISC, MISC_STR_3F), 0, /* 0x12 */ CHEAT_MASK_16 | CHEAT_MASK_SPGAME},
{ CHEAT_UNLOCK_PAINTBALL, 0xA, 0, 0, mBtnCheatPaintballMod, 0, 0, /* 0x11 */ CHEAT_MASK_16 | CHEAT_MASK_MENUS}, //at cheat menu
{ CHEAT_UNLOCK_INVINCIBLE, 0xA, 0, 0, mBtnCheatInvincible2, 0, 0, /* 0x11 */ CHEAT_MASK_16 | CHEAT_MASK_MENUS}, //at cheat menu
@@ -1646,7 +1648,7 @@ char *cheatGetMenuTextPointer(CHEAT_ID cheat_id)
return langGet((s32) temp_v0);
}
return langGet(TEXT(LMISC,0x28));
return langGet(TEXT(LMISC, MISC_STR_28));
}
@@ -1667,13 +1669,13 @@ bool cheatIsActive(CHEAT_ID cheat)
*/
void cheatButtonSetDkMode(CHEAT_ID cheat_id)
{
s32 num_guards;
s32 g_NumChrSlots;
s32 i;
f32 scale;
Model *model;
ChrRecord* guard = ptr_guard_data;
ChrRecord* guard = g_ChrSlots;
num_guards = get_numguards();
g_NumChrSlots = get_numguards();
if (cheat_id)
{
@@ -1684,7 +1686,7 @@ void cheatButtonSetDkMode(CHEAT_ID cheat_id)
scale = 1.25f;
}
for (i=0; i<num_guards; i++, guard++)
for (i=0; i<g_NumChrSlots; i++, guard++)
{
#if defined(VERSION_US)
+173 -186
View File
@@ -23,7 +23,7 @@
// forward declarations
void chrAimGlobalTimerTickRelated( ChrRecord *arg0);
void chrUpdateAimProperties( ChrRecord *arg0);
void chrPositionRelated7F020E40( ChrRecord *chr, s32 arg1);
// end forward declarations
@@ -68,8 +68,8 @@ struct animation_something D_8002C914[] = {
s32 D_8002CC58 = 0;
s32 show_patrols_flag = FALSE;
s32 player1_guardID = 5000;
ChrRecord *ptr_guard_data = 0;
s32 num_guards = 0;
ChrRecord *g_ChrSlots = 0;
s32 g_NumChrSlots = 0;
struct unk_joint_list D_8002CC6C = {NULL, 1, 3, NULL, NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, {0, 0, 0, 0}, 0};
s32 D_8002CCAC = 0;
s32 D_8002CCB0 = 0;
@@ -90,15 +90,15 @@ u32 num_female_heads = 0;
s32 list_of_bodies[] = {
BODY_Jungle_Commando,BODY_St_Petersburg_Guard,BODY_Russian_Soldier,BODY_Russian_Infantry,
BODY_Janus_Special_Forces,BODY_Tuxedo,BODY_Boris,BODY_Ourumov,
BODY_Janus_Special_Forces,BODY_Brosnan_Tuxedo,BODY_Boris,BODY_Ourumov,
BODY_Trevelyan_Janus,BODY_Valentin_,BODY_Xenia,BODY_Baron_Samedi,
BODY_Jaws,BODY_Mayday,BODY_Oddjob,BODY_Natalya_Skirt,
BODY_Janus_Marine,BODY_Russian_Commandant,BODY_Siberian_Guard_1_Mishkin,BODY_Naval_Officer,
BODY_Siberian_Special_Forces,BODY_Special_Operations_Uniform,BODY_Formal_Wear,BODY_Jungle_Fatigues,
BODY_Unused_Female,BODY_Rosika,BODY_Scientist_2_Female,BODY_Civilian_1_Female,
BODY_Unused_Male_1,BODY_Unused_Male_2,BODY_Civilian_4,BODY_Civilian_2,
BODY_Civilian_3,BODY_Scientist_1_Male,BODY_Tuxedo,BODY_Tuxedo,
BODY_Tuxedo,BODY_Helicopter_Pilot,BODY_Siberian_Guard_2,BODY_Arctic_Commando,
BODY_Civilian_3,BODY_Scientist_1_Male,BODY_Brosnan_Tuxedo,BODY_Brosnan_Tuxedo,
BODY_Brosnan_Tuxedo,BODY_Helicopter_Pilot,BODY_Siberian_Guard_2,BODY_Arctic_Commando,
BODY_Moonraker_Elite_1_Male,BODY_Moonraker_Elite_2_Female,-1,
};
@@ -1139,7 +1139,7 @@ coord3d D_80030A44 = {0,0,0};
s32 get_numguards(void)
{
return num_guards;
return g_NumChrSlots;
}
void get_ptr_allocated_block_for_vertices(int param_1)
@@ -1182,15 +1182,15 @@ f32 chrUnusedYPositionRelated(PropRecord *arg0)
void set_or_unset_GUARDdata_flag(ChrRecord *self, bool unset)
void chrSetMoving(ChrRecord *self, bool unset)
{
if (unset)
{
self->hidden &= ~0x100;
self->hidden &= ~CHRHIDDEN_MOVING;
}
else
{
self->hidden |= 0x100;
self->hidden |= CHRHIDDEN_MOVING;
}
return;
}
@@ -1220,7 +1220,7 @@ glabel sub_GAME_7F01F614
/* 054178 7F01F648 0FC08C58 */ jal chrGetChrWidthHeight
/* 05417C 7F01F64C 27A6008C */ addiu $a2, $sp, 0x8c
/* 054180 7F01F650 8FA40098 */ lw $a0, 0x98($sp)
/* 054184 7F01F654 0FC07D7A */ jal set_or_unset_GUARDdata_flag
/* 054184 7F01F654 0FC07D7A */ jal chrSetMoving
/* 054188 7F01F658 00002825 */ move $a1, $zero
/* 05418C 7F01F65C 0FC2C731 */ jal sub_GAME_7F0B1CC4
/* 054190 7F01F660 00000000 */ nop
@@ -1240,7 +1240,7 @@ glabel sub_GAME_7F01F614
/* 0541C8 7F01F698 E7A60018 */ swc1 $f6, 0x18($sp)
/* 0541CC 7F01F69C E7B00024 */ swc1 $f16, 0x24($sp)
/* 0541D0 7F01F6A0 E7A8001C */ swc1 $f8, 0x1c($sp)
/* 0541D4 7F01F6A4 0FC2C389 */ jal sub_GAME_7F0B0E24
/* 0541D4 7F01F6A4 0FC2C389 */ jal stanTestLineUnobstructed
/* 0541D8 7F01F6A8 E7AA0020 */ swc1 $f10, 0x20($sp)
/* 0541DC 7F01F6AC 10400016 */ beqz $v0, .L7F01F708
/* 0541E0 7F01F6B0 27A40090 */ addiu $a0, $sp, 0x90
@@ -1252,7 +1252,7 @@ glabel sub_GAME_7F01F614
/* 0541F8 7F01F6C8 AFB90010 */ sw $t9, 0x10($sp)
/* 0541FC 7F01F6CC 8FA70084 */ lw $a3, 0x84($sp)
/* 054200 7F01F6D0 E7B20014 */ swc1 $f18, 0x14($sp)
/* 054204 7F01F6D4 0FC2C62E */ jal sub_GAME_7F0B18B8
/* 054204 7F01F6D4 0FC2C62E */ jal stanTestVolume
/* 054208 7F01F6D8 E7A40018 */ swc1 $f4, 0x18($sp)
/* 05420C 7F01F6DC 0441000A */ bgez $v0, .L7F01F708
/* 054210 7F01F6E0 8FA800A8 */ lw $t0, 0xa8($sp)
@@ -1349,7 +1349,7 @@ glabel sub_GAME_7F01F614
/* 05436C 7F01F83C E7B20018 */ swc1 $f18, 0x18($sp)
/* 054370 7F01F840 E7A60024 */ swc1 $f6, 0x24($sp)
/* 054374 7F01F844 E7AA001C */ swc1 $f10, 0x1c($sp)
/* 054378 7F01F848 0FC2C389 */ jal sub_GAME_7F0B0E24
/* 054378 7F01F848 0FC2C389 */ jal stanTestLineUnobstructed
/* 05437C 7F01F84C E7A80020 */ swc1 $f8, 0x20($sp)
/* 054380 7F01F850 10400016 */ beqz $v0, .L7F01F8AC
/* 054384 7F01F854 27A40090 */ addiu $a0, $sp, 0x90
@@ -1361,7 +1361,7 @@ glabel sub_GAME_7F01F614
/* 05439C 7F01F86C 8FA60048 */ lw $a2, 0x48($sp)
/* 0543A0 7F01F870 8FA70084 */ lw $a3, 0x84($sp)
/* 0543A4 7F01F874 E7B00014 */ swc1 $f16, 0x14($sp)
/* 0543A8 7F01F878 0FC2C62E */ jal sub_GAME_7F0B18B8
/* 0543A8 7F01F878 0FC2C62E */ jal stanTestVolume
/* 0543AC 7F01F87C E7A40018 */ swc1 $f4, 0x18($sp)
/* 0543B0 7F01F880 0441000A */ bgez $v0, .L7F01F8AC
/* 0543B4 7F01F884 C7B20040 */ lwc1 $f18, 0x40($sp)
@@ -1455,7 +1455,7 @@ glabel sub_GAME_7F01F614
/* 05450C 7F01F9DC E7AA001C */ swc1 $f10, 0x1c($sp)
/* 054510 7F01F9E0 E7B20018 */ swc1 $f18, 0x18($sp)
/* 054514 7F01F9E4 E7A60024 */ swc1 $f6, 0x24($sp)
/* 054518 7F01F9E8 0FC2C389 */ jal sub_GAME_7F0B0E24
/* 054518 7F01F9E8 0FC2C389 */ jal stanTestLineUnobstructed
/* 05451C 7F01F9EC E7B00020 */ swc1 $f16, 0x20($sp)
/* 054520 7F01F9F0 10400079 */ beqz $v0, .L7F01FBD8
/* 054524 7F01F9F4 27A40090 */ addiu $a0, $sp, 0x90
@@ -1467,7 +1467,7 @@ glabel sub_GAME_7F01F614
/* 05453C 7F01FA0C 8FA60048 */ lw $a2, 0x48($sp)
/* 054540 7F01FA10 8FA70084 */ lw $a3, 0x84($sp)
/* 054544 7F01FA14 E7A40014 */ swc1 $f4, 0x14($sp)
/* 054548 7F01FA18 0FC2C62E */ jal sub_GAME_7F0B18B8
/* 054548 7F01FA18 0FC2C62E */ jal stanTestVolume
/* 05454C 7F01FA1C E7A80018 */ swc1 $f8, 0x18($sp)
/* 054550 7F01FA20 0441006D */ bgez $v0, .L7F01FBD8
/* 054554 7F01FA24 C7B20040 */ lwc1 $f18, 0x40($sp)
@@ -1557,7 +1557,7 @@ glabel sub_GAME_7F01F614
/* 05469C 7F01FB6C E7AA001C */ swc1 $f10, 0x1c($sp)
/* 0546A0 7F01FB70 E7A60018 */ swc1 $f6, 0x18($sp)
/* 0546A4 7F01FB74 E7B20024 */ swc1 $f18, 0x24($sp)
/* 0546A8 7F01FB78 0FC2C389 */ jal sub_GAME_7F0B0E24
/* 0546A8 7F01FB78 0FC2C389 */ jal stanTestLineUnobstructed
/* 0546AC 7F01FB7C E7A40020 */ swc1 $f4, 0x20($sp)
/* 0546B0 7F01FB80 10400015 */ beqz $v0, .L7F01FBD8
/* 0546B4 7F01FB84 27A40090 */ addiu $a0, $sp, 0x90
@@ -1569,7 +1569,7 @@ glabel sub_GAME_7F01F614
/* 0546CC 7F01FB9C 8FA60048 */ lw $a2, 0x48($sp)
/* 0546D0 7F01FBA0 8FA70084 */ lw $a3, 0x84($sp)
/* 0546D4 7F01FBA4 E7A80014 */ swc1 $f8, 0x14($sp)
/* 0546D8 7F01FBA8 0FC2C62E */ jal sub_GAME_7F0B18B8
/* 0546D8 7F01FBA8 0FC2C62E */ jal stanTestVolume
/* 0546DC 7F01FBAC E7B00018 */ swc1 $f16, 0x18($sp)
/* 0546E0 7F01FBB0 04410009 */ bgez $v0, .L7F01FBD8
/* 0546E4 7F01FBB4 C7A60040 */ lwc1 $f6, 0x40($sp)
@@ -1584,7 +1584,7 @@ glabel sub_GAME_7F01F614
.L7F01FBD8:
/* 054708 7F01FBD8 8FA40098 */ lw $a0, 0x98($sp)
.L7F01FBDC:
/* 05470C 7F01FBDC 0FC07D7A */ jal set_or_unset_GUARDdata_flag
/* 05470C 7F01FBDC 0FC07D7A */ jal chrSetMoving
/* 054710 7F01FBE0 24050001 */ li $a1, 1
/* 054714 7F01FBE4 8FAC0094 */ lw $t4, 0x94($sp)
/* 054718 7F01FBE8 8FAE0098 */ lw $t6, 0x98($sp)
@@ -2527,9 +2527,9 @@ s32 chrGetNumFree(void)
s32 count = 0;
s32 i;
for (i = 0; i < num_guards; i++)
for (i = 0; i < g_NumChrSlots; i++)
{
if (ptr_guard_data[i].model == 0)
if (g_ChrSlots[i].model == 0)
{
count++;
}
@@ -2577,8 +2577,8 @@ glabel init_GUARDdata_with_set_values
/* 054BEC 7F0200BC 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 054BF0 7F0200C0 F7B40010 */ sdc1 $f20, 0x10($sp)
/* 054BF4 7F0200C4 4487A000 */ mtc1 $a3, $f20
/* 054BF8 7F0200C8 3C078003 */ lui $a3, %hi(num_guards)
/* 054BFC 7F0200CC 8CE7CC68 */ lw $a3, %lo(num_guards)($a3)
/* 054BF8 7F0200C8 3C078003 */ lui $a3, %hi(g_NumChrSlots)
/* 054BFC 7F0200CC 8CE7CC68 */ lw $a3, %lo(g_NumChrSlots)($a3)
/* 054C00 7F0200D0 AFB30028 */ sw $s3, 0x28($sp)
/* 054C04 7F0200D4 AFB20024 */ sw $s2, 0x24($sp)
/* 054C08 7F0200D8 AFB10020 */ sw $s1, 0x20($sp)
@@ -2590,8 +2590,8 @@ glabel init_GUARDdata_with_set_values
/* 054C20 7F0200F0 00008025 */ move $s0, $zero
/* 054C24 7F0200F4 18E0000E */ blez $a3, .L7F020130
/* 054C28 7F0200F8 00001025 */ move $v0, $zero
/* 054C2C 7F0200FC 3C058003 */ lui $a1, %hi(ptr_guard_data)
/* 054C30 7F020100 8CA5CC64 */ lw $a1, %lo(ptr_guard_data)($a1)
/* 054C2C 7F0200FC 3C058003 */ lui $a1, %hi(g_ChrSlots)
/* 054C30 7F020100 8CA5CC64 */ lw $a1, %lo(g_ChrSlots)($a1)
/* 054C34 7F020104 00002025 */ move $a0, $zero
/* 054C38 7F020108 00A01825 */ move $v1, $a1
.L7F02010C:
@@ -2634,7 +2634,7 @@ glabel init_GUARDdata_with_set_values
/* 054CC4 7F020194 3C058003 */ lui $a1, %hi(animation_rate)
/* 054CC8 7F020198 8CA5C900 */ lw $a1, %lo(animation_rate)($a1)
/* 054CCC 7F02019C 4406A000 */ mfc1 $a2, $f20
/* 054CD0 7F0201A0 0FC1BFC6 */ jal modelSetAnimRateForDuration
/* 054CD0 7F0201A0 0FC1BFC6 */ jal modelSetAnimPlaySpeed
/* 054CD4 7F0201A4 02402025 */ move $a0, $s2
/* 054CD8 7F0201A8 3C028003 */ lui $v0, %hi(player1_guardID)
/* 054CDC 7F0201AC 2442CC60 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x33a0
@@ -2781,8 +2781,8 @@ glabel init_GUARDdata_with_set_values
/* 05290C 7F01FF1C 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 052910 7F01FF20 F7B40010 */ sdc1 $f20, 0x10($sp)
/* 052914 7F01FF24 4487A000 */ mtc1 $a3, $f20
/* 052918 7F01FF28 3C078003 */ lui $a3, %hi(num_guards) # $a3, 0x8003
/* 05291C 7F01FF2C 8CE781B8 */ lw $a3, %lo(num_guards)($a3)
/* 052918 7F01FF28 3C078003 */ lui $a3, %hi(g_NumChrSlots) # $a3, 0x8003
/* 05291C 7F01FF2C 8CE781B8 */ lw $a3, %lo(g_NumChrSlots)($a3)
/* 052920 7F01FF30 AFB30028 */ sw $s3, 0x28($sp)
/* 052924 7F01FF34 AFB20024 */ sw $s2, 0x24($sp)
/* 052928 7F01FF38 AFB10020 */ sw $s1, 0x20($sp)
@@ -2794,8 +2794,8 @@ glabel init_GUARDdata_with_set_values
/* 052940 7F01FF50 00008025 */ move $s0, $zero
/* 052944 7F01FF54 18E0000E */ blez $a3, .L7F01FF90
/* 052948 7F01FF58 00001025 */ move $v0, $zero
/* 05294C 7F01FF5C 3C058003 */ lui $a1, %hi(ptr_guard_data) # $a1, 0x8003
/* 052950 7F01FF60 8CA581B4 */ lw $a1, %lo(ptr_guard_data)($a1)
/* 05294C 7F01FF5C 3C058003 */ lui $a1, %hi(g_ChrSlots) # $a1, 0x8003
/* 052950 7F01FF60 8CA581B4 */ lw $a1, %lo(g_ChrSlots)($a1)
/* 052954 7F01FF64 00002025 */ move $a0, $zero
/* 052958 7F01FF68 00A01825 */ move $v1, $a1
.L7F01FF6C:
@@ -2843,7 +2843,7 @@ glabel init_GUARDdata_with_set_values
/* 0529F8 7F020008 46105482 */ mul.s $f18, $f10, $f16
/* 0529FC 7F02000C 4406A000 */ mfc1 $a2, $f20
/* 052A00 7F020010 44059000 */ mfc1 $a1, $f18
/* 052A04 7F020014 0FC1C02E */ jal modelSetAnimRateForDuration
/* 052A04 7F020014 0FC1C02E */ jal modelSetAnimPlaySpeed
/* 052A08 7F020018 00000000 */ nop
/* 052A0C 7F02001C 3C028003 */ lui $v0, %hi(player1_guardID) # $v0, 0x8003
/* 052A10 7F020020 244281B0 */ addiu $v0, %lo(player1_guardID) # addiu $v0, $v0, -0x7e50
@@ -2986,12 +2986,12 @@ glabel init_GUARDdata_with_set_values
/**
* Address 0x7F0203B8.
*/
PropRecord * replace_GUARDdata_with_actual_values( Model * arg0, coord3d * arg1, f32 arg2, StandTile * arg3, s32 arg4)
PropRecord * chrAllocate( Model * arg0, coord3d * arg1, f32 arg2, StandTile * arg3, s32 arg4)
{
PropRecord * ret;
s32 phi_a0;
ret = chrpropAllocate();
ret = propAllocate();
if (ret != 0)
{
@@ -3051,12 +3051,12 @@ void disable_sounds_attached_to_player_then_something(PropRecord *prop)
p = prop->child;
while (p != NULL)
{
sub_GAME_7F04C044(p);
objDetach(p);
objFreePermanently(p->chr, 1);
p = p->nextSibling;
}
set_aircraft_obj_inst_scale_to_zero(model);
clear_aircraft_model_obj(model);
chr->model = NULL;
chr->chrnum = -1;
@@ -3127,7 +3127,7 @@ glabel disable_sounds_attached_to_player_then_something
/* 055010 7F0204E0 00000000 */ nop
.L7F0204E4:
/* 055014 7F0204E4 8C910004 */ lw $s1, 4($a0)
/* 055018 7F0204E8 0FC13011 */ jal sub_GAME_7F04C044
/* 055018 7F0204E8 0FC13011 */ jal objDetach
/* 05501C 7F0204EC 8C900024 */ lw $s0, 0x24($a0)
/* 055020 7F0204F0 02202025 */ move $a0, $s1
/* 055024 7F0204F4 0FC10409 */ jal objFreePermanently
@@ -3135,7 +3135,7 @@ glabel disable_sounds_attached_to_player_then_something
/* 05502C 7F0204FC 1600FFF9 */ bnez $s0, .L7F0204E4
/* 055030 7F020500 02002025 */ move $a0, $s0
.L7F020504:
/* 055034 7F020504 0FC1B0FE */ jal set_aircraft_obj_inst_scale_to_zero
/* 055034 7F020504 0FC1B0FE */ jal clear_aircraft_model_obj
/* 055038 7F020508 8FA40028 */ lw $a0, 0x28($sp)
/* 05503C 7F02050C 8E440020 */ lw $a0, 0x20($s2)
/* 055040 7F020510 240FFFFF */ li $t7, -1
@@ -3166,15 +3166,15 @@ void setAnimationRate(f32 arg0)
animation_rate = arg0;
for (i=0; i<num_guards; i++)
for (i=0; i<g_NumChrSlots; i++)
{
if (ptr_guard_data[i].model != NULL)
if (g_ChrSlots[i].model != NULL)
{
#if defined(REFRESH_PAL)
/* should reference D_80047E4C (1.2f) */
modelSetAnimRateForDuration(ptr_guard_data[i].model, animation_rate * 1.2f, 600.0f);
modelSetAnimPlaySpeed(g_ChrSlots[i].model, animation_rate * 1.2f, 600.0f);
#else
modelSetAnimRateForDuration(ptr_guard_data[i].model, animation_rate, 600.0f);
modelSetAnimPlaySpeed(g_ChrSlots[i].model, animation_rate, 600.0f);
#endif
}
}
@@ -3193,27 +3193,27 @@ f32 getAnimationRate(void)
/**
* Address 0x7F0205F0 (all versions).
*/
void chrAimGlobalTimerTickRelated( ChrRecord *self)
void chrUpdateAimProperties( ChrRecord *self)
{
f32 temp_f0;
f32 mult;
if (self->aimendcount >= 2)
{
#if defined(BUGFIX_R1)
temp_f0 = g_JP_GlobalTimerDelta / (f32) self->aimendcount;
mult = g_JP_GlobalTimerDelta / (f32) self->aimendcount;
#else
temp_f0 = g_GlobalTimerDelta / (f32) self->aimendcount;
mult = g_GlobalTimerDelta / (f32) self->aimendcount;
#endif
if (temp_f0 > 1.0f)
if (mult > 1.0f)
{
temp_f0 = 1.0f;
mult = 1.0f;
}
self->aimuplshoulder += ((self->aimendlshoulder - self->aimuplshoulder) * temp_f0);
self->aimuprshoulder += ((self->aimendrshoulder - self->aimuprshoulder) * temp_f0);
self->aimupback += ((self->aimendback - self->aimupback) * temp_f0);
self->aimsideback += ((self->aimendsideback - self->aimsideback) * temp_f0);
self->aimuplshoulder += ((self->aimendlshoulder - self->aimuplshoulder) * mult);
self->aimuprshoulder += ((self->aimendrshoulder - self->aimuprshoulder) * mult);
self->aimupback += ((self->aimendback - self->aimupback) * mult);
self->aimsideback += ((self->aimendsideback - self->aimsideback) * mult);
self->aimendcount -= g_ClockTimer;
return;
@@ -3249,11 +3249,11 @@ void chrSetHiddenToRandom(ChrRecord *self)
if (rand == 0)
{
self->hidden |= 0x1000;
self->hidden |= CHRHIDDEN_1000;
}
else if (rand == 1)
{
self->hidden |= 0x2000;
self->hidden |= CHRHIDDEN_2000;
}
// roll for bits 14,15.
@@ -3265,11 +3265,11 @@ void chrSetHiddenToRandom(ChrRecord *self)
if (rand == 0)
{
self->hidden |= 0x4000;
self->hidden |= CHRHIDDEN_4000;
}
else if (rand == 1)
{
self->hidden |= 0x8000;
self->hidden |= CHRHIDDEN_8000;
}
}
}
@@ -3421,8 +3421,25 @@ s32 not_in_us_7F0209EC(s32 bodynum, s32 headnum)
return 1;
}
if ((bodynum != 6) && (bodynum != 7) && (bodynum != 8) && (bodynum != 9) && (bodynum != 0xA) && (bodynum != 0xB) && (bodynum != 0xC) && (bodynum != 0xD) && (bodynum != 0xE) && (bodynum != 0xF) && (bodynum != 0x10) && (bodynum != 0x4F)
&& (headnum != 0x4A) && (headnum != 0x4B) && (headnum != 0x4C) && (headnum != 0x4D) && (headnum != 0x4E) && (headnum != 0x45))
if ((bodynum != BODY_Boris) &&
(bodynum != BODY_Ourumov) &&
(bodynum != BODY_Trevelyan_Janus) &&
(bodynum != BODY_Trevelyan_006) &&
(bodynum != BODY_Valentin_) &&
(bodynum != BODY_Xenia) &&
(bodynum != BODY_Baron_Samedi) &&
(bodynum != BODY_Jaws) &&
(bodynum != BODY_Mayday) &&
(bodynum != BODY_Oddjob) &&
(bodynum != BODY_Natalya_Skirt) &&
(bodynum != BODY_Natalya_Jungle_Fatigues) &&
(headnum != BODY_Male_Pierce_Bond_1) &&
(headnum != BODY_Male_Pierce_Bond_2) &&
(headnum != BODY_Male_Pierce_Bond_3) &&
(headnum != BODY_Male_Pierce_Bond_Parka) &&
(headnum != BODY_Male_Pierce_Bond_Tuxedo) &&
(headnum != BODY_Male_Mishkin))
{
return 1;
}
@@ -3810,7 +3827,7 @@ glabel sub_GAME_7F02083C
/* 055894 7F020D64 C7A80078 */ lwc1 $f8, 0x78($sp)
/* 055898 7F020D68 E5080034 */ swc1 $f8, 0x34($t0)
/* 05589C 7F020D6C C7A4007C */ lwc1 $f4, 0x7c($sp)
/* 0558A0 7F020D70 0FC1E0F1 */ jal currentPlayerGetMatrix10CC
/* 0558A0 7F020D70 0FC1E0F1 */ jal camGetWorldToScreenMtxf
/* 0558A4 7F020D74 E5040038 */ swc1 $f4, 0x38($t0)
/* 0558A8 7F020D78 00402025 */ move $a0, $v0
/* 0558AC 7F020D7C 0FC16026 */ jal matrix_4x4_multiply_homogeneous_in_place
@@ -4204,7 +4221,7 @@ glabel sub_GAME_7F02083C
/* 055B6C 7F020FFC C7A80078 */ lwc1 $f8, 0x78($sp)
/* 055B70 7F021000 E5280034 */ swc1 $f8, 0x34($t1)
/* 055B74 7F021004 C7A4007C */ lwc1 $f4, 0x7c($sp)
/* 055B78 7F021008 0FC1E26D */ jal currentPlayerGetMatrix10CC
/* 055B78 7F021008 0FC1E26D */ jal camGetWorldToScreenMtxf
/* 055B7C 7F02100C E5240038 */ swc1 $f4, 0x38($t1)
/* 055B80 7F021010 00402025 */ move $a0, $v0
/* 055B84 7F021014 0FC1616E */ jal matrix_4x4_multiply_homogeneous_in_place
@@ -4256,10 +4273,10 @@ void chrPositionRelated7F020E40(ChrRecord *chr, s32 arg1)
model = chr->model;
prop = chr->prop;
if ((chr->hidden & 0x800) == 0)
if (!(chr->hidden & CHRHIDDEN_FREEZE))
{
getsuboffset(model, &chr->prevpos);
sub_GAME_7F070AEC(model, arg1, 1);
modelTickAnimQuarterSpeed(model, arg1, 1);
subcalcpos(model);
set_color_shading_from_tile(prop, &chr->nextcol);
getsuboffset(model, &prop->pos);
@@ -4419,7 +4436,7 @@ glabel sub_GAME_7F020EF0
/* 055C0C 7F0210DC 24010006 */ li $at, 6
/* 055C10 7F0210E0 55A1000D */ bnel $t5, $at, .L7F021118
/* 055C14 7F0210E4 00027A00 */ sll $t7, $v0, 8
/* 055C18 7F0210E8 0FC26C57 */ jal sub_GAME_7F09B15C
/* 055C18 7F0210E8 0FC26C57 */ jal getPlayerPointerIndex
/* 055C1C 7F0210EC 01802025 */ move $a0, $t4
/* 055C20 7F0210F0 0002C880 */ sll $t9, $v0, 2
/* 055C24 7F0210F4 3C188008 */ lui $t8, %hi(g_playerPointers)
@@ -4449,7 +4466,7 @@ glabel sub_GAME_7F020EF0
/* 055C7C 7F02114C 00003025 */ move $a2, $zero
/* 055C80 7F021150 11600005 */ beqz $t3, .L7F021168
/* 055C84 7F021154 00000000 */ nop
/* 055C88 7F021158 0FC1C2BB */ jal sub_GAME_7F070AEC
/* 055C88 7F021158 0FC1C2BB */ jal modelTickAnimQuarterSpeed
/* 055C8C 7F02115C 8FA40110 */ lw $a0, 0x110($sp)
/* 055C90 7F021160 10000003 */ b .L7F021170
/* 055C94 7F021164 00000000 */ nop
@@ -4564,7 +4581,7 @@ glabel sub_GAME_7F020EF0
/* 055E1C 7F0212EC 8FA40110 */ lw $a0, 0x110($sp)
.L7F0212F0:
/* 055E20 7F0212F0 8FA50104 */ lw $a1, 0x104($sp)
/* 055E24 7F0212F4 0FC1C2BB */ jal sub_GAME_7F070AEC
/* 055E24 7F0212F4 0FC1C2BB */ jal modelTickAnimQuarterSpeed
/* 055E28 7F0212F8 00003025 */ move $a2, $zero
.L7F0212FC:
/* 055E2C 7F0212FC 10000032 */ b .L7F0213C8
@@ -4598,7 +4615,7 @@ glabel sub_GAME_7F020EF0
/* 055E90 7F021360 8FA50104 */ lw $a1, 0x104($sp)
/* 055E94 7F021364 13000003 */ beqz $t8, .L7F021374
/* 055E98 7F021368 00000000 */ nop
/* 055E9C 7F02136C 0FC1C2BB */ jal sub_GAME_7F070AEC
/* 055E9C 7F02136C 0FC1C2BB */ jal modelTickAnimQuarterSpeed
/* 055EA0 7F021370 00003025 */ move $a2, $zero
.L7F021374:
/* 055EA4 7F021374 10000014 */ b .L7F0213C8
@@ -4608,7 +4625,7 @@ glabel sub_GAME_7F020EF0
/* 055EB0 7F021380 02002025 */ move $a0, $s0
/* 055EB4 7F021384 8FA40110 */ lw $a0, 0x110($sp)
/* 055EB8 7F021388 8FA50104 */ lw $a1, 0x104($sp)
/* 055EBC 7F02138C 0FC1C2BB */ jal sub_GAME_7F070AEC
/* 055EBC 7F02138C 0FC1C2BB */ jal modelTickAnimQuarterSpeed
/* 055EC0 7F021390 00003025 */ move $a2, $zero
/* 055EC4 7F021394 10000003 */ b .L7F0213A4
/* 055EC8 7F021398 00000000 */ nop
@@ -4643,7 +4660,7 @@ glabel sub_GAME_7F020EF0
/* 055F28 7F0213F8 35AC0200 */ ori $t4, $t5, 0x200
/* 055F2C 7F0213FC A60C0012 */ sh $t4, 0x12($s0)
.L7F021400:
/* 055F30 7F021400 0FC0817C */ jal chrAimGlobalTimerTickRelated
/* 055F30 7F021400 0FC0817C */ jal chrUpdateAimProperties
/* 055F34 7F021404 02002025 */ move $a0, $s0
/* 055F38 7F021408 8E040020 */ lw $a0, 0x20($s0)
/* 055F3C 7F02140C 50800005 */ beql $a0, $zero, .L7F021424
@@ -4670,7 +4687,7 @@ glabel sub_GAME_7F020EF0
/* 055F8C 7F02145C 10400004 */ beqz $v0, .L7F021470
/* 055F90 7F021460 3C013EA0 */ li $at, 0x3EA00000 # 0.312500
/* 055F94 7F021464 44816000 */ mtc1 $at, $f12
/* 055F98 7F021468 0FC1B103 */ jal set_float_80036088
/* 055F98 7F021468 0FC1B103 */ jal modelSetDistanceScale
/* 055F9C 7F02146C 00000000 */ nop
.L7F021470:
/* 055FA0 7F021470 3C0A7F02 */ lui $t2, %hi(sub_GAME_7F02083C) # $t2, 0x7f02
@@ -4678,7 +4695,7 @@ glabel sub_GAME_7F020EF0
/* 055FA8 7F021478 3C018003 */ lui $at, %hi(D_80036090)
/* 055FAC 7F02147C AC2A6090 */ sw $t2, %lo(D_80036090)($at)
/* 055FB0 7F021480 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60)
/* 055FB4 7F021484 0FC1E0F1 */ jal currentPlayerGetMatrix10CC
/* 055FB4 7F021484 0FC1E0F1 */ jal camGetWorldToScreenMtxf
/* 055FB8 7F021488 AC309B60 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at)
/* 055FBC 7F02148C 8FAB0110 */ lw $t3, 0x110($sp)
/* 055FC0 7F021490 AFA20118 */ sw $v0, 0x118($sp)
@@ -4713,7 +4730,7 @@ glabel sub_GAME_7F020EF0
/* 05602C 7F0214FC AC206090 */ sw $zero, %lo(D_80036090)($at)
/* 056030 7F021500 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 056034 7F021504 44816000 */ mtc1 $at, $f12
/* 056038 7F021508 0FC1B103 */ jal set_float_80036088
/* 056038 7F021508 0FC1B103 */ jal modelSetDistanceScale
/* 05603C 7F02150C 00000000 */ nop
/* 056040 7F021510 260400F4 */ addiu $a0, $s0, 0xf4
/* 056044 7F021514 0FC100C4 */ jal update_color_shading
@@ -4747,7 +4764,7 @@ glabel sub_GAME_7F020EF0
/* 0560B4 7F021584 8C65001C */ lw $a1, 0x1c($v1)
/* 0560B8 7F021588 8FA40110 */ lw $a0, 0x110($sp)
/* 0560BC 7F02158C AFA70100 */ sw $a3, 0x100($sp)
/* 0560C0 7F021590 0FC1B198 */ jal sub_GAME_7F06C660
/* 0560C0 7F021590 0FC1B198 */ jal modelFindNodeMtx
/* 0560C4 7F021594 AFA300FC */ sw $v1, 0xfc($sp)
/* 0560C8 7F021598 8FAB00FC */ lw $t3, 0xfc($sp)
/* 0560CC 7F02159C AFA20118 */ sw $v0, 0x118($sp)
@@ -5110,7 +5127,7 @@ glabel sub_GAME_7F020EF0
/* 056608 7F021AD8 3058FFFE */ andi $t8, $v0, 0xfffe
/* 05660C 7F021ADC 8C830024 */ lw $v1, 0x24($a0)
.L7F021AE0:
/* 056610 7F021AE0 0FC1304C */ jal sub_GAME_7F04C130
/* 056610 7F021AE0 0FC1304C */ jal objDrop
/* 056614 7F021AE4 AFA3003C */ sw $v1, 0x3c($sp)
/* 056618 7F021AE8 8FA4003C */ lw $a0, 0x3c($sp)
/* 05661C 7F021AEC 5480FFFC */ bnezl $a0, .L7F021AE0
@@ -5271,7 +5288,7 @@ glabel sub_GAME_7F020EF0
/* 055EE4 7F021374 24010006 */ li $at, 6
/* 055EE8 7F021378 55A1000D */ bnel $t5, $at, .Ljp7F0213B0
/* 055EEC 7F02137C 00027A00 */ sll $t7, $v0, 8
/* 055EF0 7F021380 0FC26F3F */ jal sub_GAME_7F09B15C
/* 055EF0 7F021380 0FC26F3F */ jal getPlayerPointerIndex
/* 055EF4 7F021384 01802025 */ move $a0, $t4
/* 055EF8 7F021388 0002C880 */ sll $t9, $v0, 2
/* 055EFC 7F02138C 3C188008 */ lui $t8, %hi(g_playerPointers)
@@ -5301,7 +5318,7 @@ glabel sub_GAME_7F020EF0
/* 055F54 7F0213E4 00003025 */ move $a2, $zero
/* 055F58 7F0213E8 11600005 */ beqz $t3, .Ljp7F021400
/* 055F5C 7F0213EC 00000000 */ nop
/* 055F60 7F0213F0 0FC1C437 */ jal sub_GAME_7F070AEC
/* 055F60 7F0213F0 0FC1C437 */ jal modelTickAnimQuarterSpeed
/* 055F64 7F0213F4 8FA40110 */ lw $a0, 0x110($sp)
/* 055F68 7F0213F8 10000003 */ b .Ljp7F021408
/* 055F6C 7F0213FC 00000000 */ nop
@@ -5416,7 +5433,7 @@ glabel sub_GAME_7F020EF0
/* 0560F4 7F021584 8FA40110 */ lw $a0, 0x110($sp)
.Ljp7F021588:
/* 0560F8 7F021588 8FA50104 */ lw $a1, 0x104($sp)
/* 0560FC 7F02158C 0FC1C437 */ jal sub_GAME_7F070AEC
/* 0560FC 7F02158C 0FC1C437 */ jal modelTickAnimQuarterSpeed
/* 056100 7F021590 00003025 */ move $a2, $zero
.Ljp7F021594:
/* 056104 7F021594 10000032 */ b .Ljp7F021660
@@ -5450,7 +5467,7 @@ glabel sub_GAME_7F020EF0
/* 056168 7F0215F8 8FA50104 */ lw $a1, 0x104($sp)
/* 05616C 7F0215FC 13000003 */ beqz $t8, .Ljp7F02160C
/* 056170 7F021600 00000000 */ nop
/* 056174 7F021604 0FC1C437 */ jal sub_GAME_7F070AEC
/* 056174 7F021604 0FC1C437 */ jal modelTickAnimQuarterSpeed
/* 056178 7F021608 00003025 */ move $a2, $zero
.Ljp7F02160C:
/* 05617C 7F02160C 10000014 */ b .Ljp7F021660
@@ -5460,7 +5477,7 @@ glabel sub_GAME_7F020EF0
/* 056188 7F021618 02002025 */ move $a0, $s0
/* 05618C 7F02161C 8FA40110 */ lw $a0, 0x110($sp)
/* 056190 7F021620 8FA50104 */ lw $a1, 0x104($sp)
/* 056194 7F021624 0FC1C437 */ jal sub_GAME_7F070AEC
/* 056194 7F021624 0FC1C437 */ jal modelTickAnimQuarterSpeed
/* 056198 7F021628 00003025 */ move $a2, $zero
/* 05619C 7F02162C 10000003 */ b .Ljp7F02163C
/* 0561A0 7F021630 00000000 */ nop
@@ -5495,7 +5512,7 @@ glabel sub_GAME_7F020EF0
/* 056200 7F021690 35AC0200 */ ori $t4, $t5, 0x200
/* 056204 7F021694 A60C0012 */ sh $t4, 0x12($s0)
.Ljp7F021698:
/* 056208 7F021698 0FC081E8 */ jal chrAimGlobalTimerTickRelated
/* 056208 7F021698 0FC081E8 */ jal chrUpdateAimProperties
/* 05620C 7F02169C 02002025 */ move $a0, $s0
/* 056210 7F0216A0 8E040020 */ lw $a0, 0x20($s0)
/* 056214 7F0216A4 50800005 */ beql $a0, $zero, .Ljp7F0216BC
@@ -5527,7 +5544,7 @@ glabel sub_GAME_7F020EF0
/* 056278 7F021708 10400013 */ beqz $v0, .Ljp7F021758
/* 05627C 7F02170C 3C013EA0 */ li $at, 0x3EA00000 # 0.312500
/* 056280 7F021710 44816000 */ mtc1 $at, $f12
/* 056284 7F021714 0FC1B27F */ jal set_float_80036088
/* 056284 7F021714 0FC1B27F */ jal modelSetDistanceScale
/* 056288 7F021718 00000000 */ nop
/* 05628C 7F02171C 8E020014 */ lw $v0, 0x14($s0)
/* 056290 7F021720 3C01EFFF */ lui $at, (0xEFFFFFFF >> 16) # lui $at, 0xefff
@@ -5550,7 +5567,7 @@ glabel sub_GAME_7F020EF0
/* 0562D0 7F021760 3C018003 */ lui $at, %hi(D_80036090) # $at, 0x8003
/* 0562D4 7F021764 AC2D60D0 */ sw $t5, %lo(D_80036090)($at)
/* 0562D8 7F021768 3C018007 */ lui $at, %hi(dword_CODE_bss_80069B60) # $at, 0x8007
/* 0562DC 7F02176C 0FC1E26D */ jal currentPlayerGetMatrix10CC
/* 0562DC 7F02176C 0FC1E26D */ jal camGetWorldToScreenMtxf
/* 0562E0 7F021770 AC309BA0 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at)
/* 0562E4 7F021774 8FAC0110 */ lw $t4, 0x110($sp)
/* 0562E8 7F021778 AFA20118 */ sw $v0, 0x118($sp)
@@ -5585,7 +5602,7 @@ glabel sub_GAME_7F020EF0
/* 056354 7F0217E4 AC2060D0 */ sw $zero, %lo(D_80036090)($at)
/* 056358 7F0217E8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 05635C 7F0217EC 44816000 */ mtc1 $at, $f12
/* 056360 7F0217F0 0FC1B27F */ jal set_float_80036088
/* 056360 7F0217F0 0FC1B27F */ jal modelSetDistanceScale
/* 056364 7F0217F4 00000000 */ nop
/* 056368 7F0217F8 260400F4 */ addiu $a0, $s0, 0xf4
/* 05636C 7F0217FC 0FC10184 */ jal update_color_shading
@@ -5619,7 +5636,7 @@ glabel sub_GAME_7F020EF0
/* 0563DC 7F02186C 8C65001C */ lw $a1, 0x1c($v1)
/* 0563E0 7F021870 8FA40110 */ lw $a0, 0x110($sp)
/* 0563E4 7F021874 AFA70100 */ sw $a3, 0x100($sp)
/* 0563E8 7F021878 0FC1B314 */ jal sub_GAME_7F06C660
/* 0563E8 7F021878 0FC1B314 */ jal modelFindNodeMtx
/* 0563EC 7F02187C AFA300FC */ sw $v1, 0xfc($sp)
/* 0563F0 7F021880 8FAC00FC */ lw $t4, 0xfc($sp)
/* 0563F4 7F021884 AFA20118 */ sw $v0, 0x118($sp)
@@ -5982,7 +5999,7 @@ glabel sub_GAME_7F020EF0
/* 056930 7F021DC0 3048FFFE */ andi $t0, $v0, 0xfffe
/* 056934 7F021DC4 8C830024 */ lw $v1, 0x24($a0)
.Ljp7F021DC8:
/* 056938 7F021DC8 0FC1314D */ jal sub_GAME_7F04C130
/* 056938 7F021DC8 0FC1314D */ jal objDrop
/* 05693C 7F021DCC AFA3003C */ sw $v1, 0x3c($sp)
/* 056940 7F021DD0 8FA4003C */ lw $a0, 0x3c($sp)
/* 056944 7F021DD4 5480FFFC */ bnezl $a0, .Ljp7F021DC8
@@ -6197,7 +6214,7 @@ glabel sub_GAME_7F020EF0
/* 053A44 7F021054 24010006 */ li $at, 6
/* 053A48 7F021058 55A1000D */ bnel $t5, $at, .L7F021090
/* 053A4C 7F02105C 00027A00 */ sll $t7, $v0, 8
/* 053A50 7F021060 0FC269A7 */ jal sub_GAME_7F09B15C
/* 053A50 7F021060 0FC269A7 */ jal getPlayerPointerIndex
/* 053A54 7F021064 01802025 */ move $a0, $t4
/* 053A58 7F021068 0002C880 */ sll $t9, $v0, 2
/* 053A5C 7F02106C 3C188007 */ lui $t8, %hi(g_playerPointers)
@@ -6227,7 +6244,7 @@ glabel sub_GAME_7F020EF0
/* 053AB4 7F0210C4 00003025 */ move $a2, $zero
/* 053AB8 7F0210C8 11600005 */ beqz $t3, .L7F0210E0
/* 053ABC 7F0210CC 00000000 */ nop
/* 053AC0 7F0210D0 0FC1C323 */ jal sub_GAME_7F070AEC
/* 053AC0 7F0210D0 0FC1C323 */ jal modelTickAnimQuarterSpeed
/* 053AC4 7F0210D4 8FA40110 */ lw $a0, 0x110($sp)
/* 053AC8 7F0210D8 10000003 */ b .L7F0210E8
/* 053ACC 7F0210DC 00000000 */ nop
@@ -6342,7 +6359,7 @@ glabel sub_GAME_7F020EF0
/* 053C54 7F021264 8FA40110 */ lw $a0, 0x110($sp)
.L7F021268:
/* 053C58 7F021268 8FA50104 */ lw $a1, 0x104($sp)
/* 053C5C 7F02126C 0FC1C323 */ jal sub_GAME_7F070AEC
/* 053C5C 7F02126C 0FC1C323 */ jal modelTickAnimQuarterSpeed
/* 053C60 7F021270 00003025 */ move $a2, $zero
.L7F021274:
/* 053C64 7F021274 10000032 */ b .L7F021340
@@ -6376,7 +6393,7 @@ glabel sub_GAME_7F020EF0
/* 053CC8 7F0212D8 8FA50104 */ lw $a1, 0x104($sp)
/* 053CCC 7F0212DC 13000003 */ beqz $t8, .L7F0212EC
/* 053CD0 7F0212E0 00000000 */ nop
/* 053CD4 7F0212E4 0FC1C323 */ jal sub_GAME_7F070AEC
/* 053CD4 7F0212E4 0FC1C323 */ jal modelTickAnimQuarterSpeed
/* 053CD8 7F0212E8 00003025 */ move $a2, $zero
.L7F0212EC:
/* 053CDC 7F0212EC 10000014 */ b .L7F021340
@@ -6386,7 +6403,7 @@ glabel sub_GAME_7F020EF0
/* 053CE8 7F0212F8 02002025 */ move $a0, $s0
/* 053CEC 7F0212FC 8FA40110 */ lw $a0, 0x110($sp)
/* 053CF0 7F021300 8FA50104 */ lw $a1, 0x104($sp)
/* 053CF4 7F021304 0FC1C323 */ jal sub_GAME_7F070AEC
/* 053CF4 7F021304 0FC1C323 */ jal modelTickAnimQuarterSpeed
/* 053CF8 7F021308 00003025 */ move $a2, $zero
/* 053CFC 7F02130C 10000003 */ b .L7F02131C
/* 053D00 7F021310 00000000 */ nop
@@ -6421,7 +6438,7 @@ glabel sub_GAME_7F020EF0
/* 053D60 7F021370 35AC0200 */ ori $t4, $t5, 0x200
/* 053D64 7F021374 A60C0012 */ sh $t4, 0x12($s0)
.L7F021378:
/* 053D68 7F021378 0FC08120 */ jal chrAimGlobalTimerTickRelated
/* 053D68 7F021378 0FC08120 */ jal chrUpdateAimProperties
/* 053D6C 7F02137C 02002025 */ move $a0, $s0
/* 053D70 7F021380 8E040020 */ lw $a0, 0x20($s0)
/* 053D74 7F021384 50800005 */ beql $a0, $zero, .L7F02139C
@@ -6453,7 +6470,7 @@ glabel sub_GAME_7F020EF0
/* 053DD8 7F0213E8 10400013 */ beqz $v0, .L7F021438
/* 053DDC 7F0213EC 3C013EA0 */ li $at, 0x3EA00000 # 0.312500
/* 053DE0 7F0213F0 44816000 */ mtc1 $at, $f12
/* 053DE4 7F0213F4 0FC1B2D3 */ jal set_float_80036088
/* 053DE4 7F0213F4 0FC1B2D3 */ jal modelSetDistanceScale
/* 053DE8 7F0213F8 00000000 */ nop
/* 053DEC 7F0213FC 8E020014 */ lw $v0, 0x14($s0)
/* 053DF0 7F021400 3C01EFFF */ lui $at, (0xEFFFFFFF >> 16) # lui $at, 0xefff
@@ -6476,7 +6493,7 @@ glabel sub_GAME_7F020EF0
/* 053E30 7F021440 3C018003 */ lui $at, %hi(D_80036090) # $at, 0x8003
/* 053E34 7F021444 AC2D15E0 */ sw $t5, %lo(D_80036090)($at)
/* 053E38 7F021448 3C018006 */ lui $at, %hi(dword_CODE_bss_80069B60) # $at, 0x8006
/* 053E3C 7F02144C 0FC1E111 */ jal currentPlayerGetMatrix10CC
/* 053E3C 7F02144C 0FC1E111 */ jal camGetWorldToScreenMtxf
/* 053E40 7F021450 AC308AA0 */ sw $s0, %lo(dword_CODE_bss_80069B60)($at)
/* 053E44 7F021454 8FAC0110 */ lw $t4, 0x110($sp)
/* 053E48 7F021458 AFA20118 */ sw $v0, 0x118($sp)
@@ -6511,7 +6528,7 @@ glabel sub_GAME_7F020EF0
/* 053EB4 7F0214C4 AC2015E0 */ sw $zero, %lo(D_80036090)($at)
/* 053EB8 7F0214C8 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 053EBC 7F0214CC 44816000 */ mtc1 $at, $f12
/* 053EC0 7F0214D0 0FC1B2D3 */ jal set_float_80036088
/* 053EC0 7F0214D0 0FC1B2D3 */ jal modelSetDistanceScale
/* 053EC4 7F0214D4 00000000 */ nop
/* 053EC8 7F0214D8 260400F4 */ addiu $a0, $s0, 0xf4
/* 053ECC 7F0214DC 0FC100F4 */ jal update_color_shading
@@ -6545,7 +6562,7 @@ glabel sub_GAME_7F020EF0
/* 053F3C 7F02154C 8C65001C */ lw $a1, 0x1c($v1)
/* 053F40 7F021550 8FA40110 */ lw $a0, 0x110($sp)
/* 053F44 7F021554 AFA70100 */ sw $a3, 0x100($sp)
/* 053F48 7F021558 0FC1B366 */ jal sub_GAME_7F06C660
/* 053F48 7F021558 0FC1B366 */ jal modelFindNodeMtx
/* 053F4C 7F02155C AFA300FC */ sw $v1, 0xfc($sp)
/* 053F50 7F021560 8FAC00FC */ lw $t4, 0xfc($sp)
/* 053F54 7F021564 AFA20118 */ sw $v0, 0x118($sp)
@@ -6908,7 +6925,7 @@ glabel sub_GAME_7F020EF0
/* 054490 7F021AA0 3048FFFE */ andi $t0, $v0, 0xfffe
/* 054494 7F021AA4 8C830024 */ lw $v1, 0x24($a0)
.L7F021AA8:
/* 054498 7F021AA8 0FC130C9 */ jal sub_GAME_7F04C130
/* 054498 7F021AA8 0FC130C9 */ jal objDrop
/* 05449C 7F021AAC AFA3003C */ sw $v1, 0x3c($sp)
/* 0544A0 7F021AB0 8FA4003C */ lw $a0, 0x3c($sp)
/* 0544A4 7F021AB4 5480FFFC */ bnezl $a0, .L7F021AA8
@@ -7258,7 +7275,7 @@ glabel sub_GAME_7F022078
/* 056CA4 7F022174 0FC1E111 */ jal currentPlayerGetMatrix10D4
/* 056CA8 7F022178 E7A40044 */ swc1 $f4, 0x44($sp)
/* 056CAC 7F02217C 00402025 */ move $a0, $v0
/* 056CB0 7F022180 0FC1611D */ jal matrix_4x4_transform_vector_in_place
/* 056CB0 7F022180 0FC1611D */ jal mtx4TransformVecInPlace
/* 056CB4 7F022184 27A5003C */ addiu $a1, $sp, 0x3c
/* 056CB8 7F022188 8FAD0050 */ lw $t5, 0x50($sp)
/* 056CBC 7F02218C 27A4003C */ addiu $a0, $sp, 0x3c
@@ -7385,17 +7402,17 @@ glabel sub_GAME_7F0221DC
/* 056E54 7F022324 1000000C */ b .L7F022358
/* 056E58 7F022328 00000000 */ nop
.L7F02232C:
/* 056E5C 7F02232C 0FC1BA5C */ jal sub_GAME_7F06E970
/* 056E5C 7F02232C 0FC1BA5C */ jal modelApplyDistanceRelations
/* 056E60 7F022330 02002825 */ move $a1, $s0
/* 056E64 7F022334 10000008 */ b .L7F022358
/* 056E68 7F022338 8E090014 */ lw $t1, 0x14($s0)
.L7F02233C:
/* 056E6C 7F02233C 0FC1BA6F */ jal process_12_handle_switch
/* 056E6C 7F02233C 0FC1BA6F */ jal modelApplyToggleRelations
/* 056E70 7F022340 02002825 */ move $a1, $s0
/* 056E74 7F022344 10000004 */ b .L7F022358
/* 056E78 7F022348 8E090014 */ lw $t1, 0x14($s0)
.L7F02234C:
/* 056E7C 7F02234C 0FC1BA82 */ jal process_17_pointer_to_head
/* 056E7C 7F02234C 0FC1BA82 */ jal modelApplyHeadRelations
/* 056E80 7F022350 02002825 */ move $a1, $s0
/* 056E84 7F022354 8E090014 */ lw $t1, 0x14($s0)
.L7F022358:
@@ -7754,11 +7771,11 @@ glabel sub_GAME_7F022648
/* 05736C 7F02283C 0FC1E111 */ jal currentPlayerGetMatrix10D4
/* 057370 7F022840 E7A4007C */ swc1 $f4, 0x7c($sp)
/* 057374 7F022844 00402025 */ move $a0, $v0
/* 057378 7F022848 0FC160F6 */ jal matrix_4x4_rotate_vector_in_place
/* 057378 7F022848 0FC160F6 */ jal mtx4RotateVecInPlace
/* 05737C 7F02284C 27A50074 */ addiu $a1, $sp, 0x74
/* 057380 7F022850 8FA400DC */ lw $a0, 0xdc($sp)
/* 057384 7F022854 8FA500D8 */ lw $a1, 0xd8($sp)
/* 057388 7F022858 0FC1B198 */ jal sub_GAME_7F06C660
/* 057388 7F022858 0FC1B198 */ jal modelFindNodeMtx
/* 05738C 7F02285C 00003025 */ move $a2, $zero
/* 057390 7F022860 C4460030 */ lwc1 $f6, 0x30($v0)
/* 057394 7F022864 C6480000 */ lwc1 $f8, ($s2)
@@ -7910,7 +7927,7 @@ glabel sub_GAME_7F022980
/* 0575A0 7F022A70 E7A800B0 */ swc1 $f8, 0xb0($sp)
/* 0575A4 7F022A74 27B000A8 */ addiu $s0, $sp, 0xa8
/* 0575A8 7F022A78 02002825 */ move $a1, $s0
/* 0575AC 7F022A7C 0FC1611D */ jal matrix_4x4_transform_vector_in_place
/* 0575AC 7F022A7C 0FC1611D */ jal mtx4TransformVecInPlace
/* 0575B0 7F022A80 00402025 */ move $a0, $v0
/* 0575B4 7F022A84 0FC19ED3 */ jal sub_GAME_7F067B4C
/* 0575B8 7F022A88 02002025 */ move $a0, $s0
@@ -8077,7 +8094,7 @@ glabel sub_GAME_7F022980
/* 057810 7F022CE0 8FBF004C */ lw $ra, 0x4c($sp)
.L7F022CE4:
/* 057814 7F022CE4 8E240048 */ lw $a0, 0x48($s1)
/* 057818 7F022CE8 0FC1B198 */ jal sub_GAME_7F06C660
/* 057818 7F022CE8 0FC1B198 */ jal modelFindNodeMtx
/* 05781C 7F022CEC 8E25000C */ lw $a1, 0xc($s1)
/* 057820 7F022CF0 C7B20098 */ lwc1 $f18, 0x98($sp)
/* 057824 7F022CF4 C7A4009C */ lwc1 $f4, 0x9c($sp)
@@ -8136,7 +8153,7 @@ glabel sub_GAME_7F022980
/* 0578F8 7F022DC8 E7A60078 */ swc1 $f6, 0x78($sp)
/* 0578FC 7F022DCC 27B00070 */ addiu $s0, $sp, 0x70
/* 057900 7F022DD0 02002825 */ move $a1, $s0
/* 057904 7F022DD4 0FC1611D */ jal matrix_4x4_transform_vector_in_place
/* 057904 7F022DD4 0FC1611D */ jal mtx4TransformVecInPlace
/* 057908 7F022DD8 02402025 */ move $a0, $s2
/* 05790C 7F022DDC 8E240048 */ lw $a0, 0x48($s1)
/* 057910 7F022DE0 8E250008 */ lw $a1, 8($s1)
@@ -8254,13 +8271,13 @@ void chrCheckGuardsHeardSound(f32 noise)
{
s32 i;
for (i=0; i<num_guards; i++)
for (i=0; i<g_NumChrSlots; i++)
{
if (ptr_guard_data[i].model != NULL)
if (g_ChrSlots[i].model != NULL)
{
if (chrGetDistanceToBond(&ptr_guard_data[i]) < ptr_guard_data[i].hearingscale * (noise * 100.0f))
if (chrGetDistanceToBond(&g_ChrSlots[i]) < g_ChrSlots[i].hearingscale * (noise * 100.0f))
{
chrlvAlertGuardToPlayerPosition(&ptr_guard_data[i]);
chrlvAlertGuardToPlayerPosition(&g_ChrSlots[i]);
}
}
}
@@ -8269,7 +8286,7 @@ void chrCheckGuardsHeardSound(f32 noise)
/**
* Iterates ptr_guard_data. Returns the first object that (1) model
* Iterates g_ChrSlots. Returns the first object that (1) model
* is not null and (2) chrnum matches index.
*
* Address 0x7F022FC8.
@@ -8279,11 +8296,11 @@ ChrRecord* chrFindByLiteralId(s32 index)
{
s32 i;
for (i=0; i<num_guards; i++)
for (i=0; i<g_NumChrSlots; i++)
{
if (ptr_guard_data[i].model != NULL && ptr_guard_data[i].chrnum == index)
if (g_ChrSlots[i].model != NULL && g_ChrSlots[i].chrnum == index)
{
return &ptr_guard_data[i];
return &g_ChrSlots[i];
}
}
@@ -8313,7 +8330,7 @@ PropRecord *chrGetEquippedWeaponPropWithCheck(ChrRecord *self, GUNHAND hand)
{
WeaponObjRecord *wep = gunprop->weapon;
if (bondwalkItemCheckBitflags(wep->weaponnum, 0x200) == 0)
if (bondwalkItemCheckBitflags(wep->weaponnum, WEAPONSTATBITFLAG_HOLD_AS_GUN) == 0)
{
gunprop = NULL;
}
@@ -8408,81 +8425,51 @@ f32 chrGetChrGround(PropRecord *arg0)
#ifdef NONMATCHING
void sub_GAME_7F023194(void) {
/**
* Calculate auto aim position coordinates.
*
* US address 7F023194.
*/
s32 sub_GAME_7F023194(PropRecord *arg0, struct coord3d *arg1, struct coord2d *arg2, struct coord2d *arg3)
{
struct ChrRecord *temp_v1;
temp_v1 = arg0->chr;
if (arg0->flags & PROPFLAG_ONSCREEN)
{
if ((temp_v1->actiontype != ACT_DIE) && (temp_v1->actiontype != ACT_DEAD) && !(temp_v1->chrflags & CHRFLAG_NO_AUTOAIM))
{
struct Model *model;
RenderPosView *model_render_pos_1;
RenderPosView *model_render_pos_2;
model = temp_v1->model;
model_render_pos_1 = &model->render_pos[0];
model_render_pos_2 = &model->render_pos[1];
arg1->f[2] = model_render_pos_2->pos.m[3][2] + ((model_render_pos_1->pos.m[3][2] - model_render_pos_2->pos.m[3][2]) * 0.25f);
if (arg1->f[2] < 0.0f)
{
arg1->f[0] = model_render_pos_2->pos.m[3][0] + ((model_render_pos_1->pos.m[3][0] - model_render_pos_2->pos.m[3][0]) * 0.25f);
arg1->f[1] = model_render_pos_2->pos.m[3][1] + ((model_render_pos_1->pos.m[3][1] - model_render_pos_2->pos.m[3][1]) * 0.25f);
arg3->y = 0.0f;
arg3->x = 0.0f;
arg2->x = 0.0f;
arg2->y = 0.0f;
sub_GAME_7F03F90C(model, &arg2->y, &arg2->x, &arg3->y, &arg3->x);
return 1;
}
}
}
return 0;
}
#else
GLOBAL_ASM(
.text
glabel sub_GAME_7F023194
/* 057CC4 7F023194 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 057CC8 7F023198 AFBF001C */ sw $ra, 0x1c($sp)
/* 057CCC 7F02319C AFA50024 */ sw $a1, 0x24($sp)
/* 057CD0 7F0231A0 AFA7002C */ sw $a3, 0x2c($sp)
/* 057CD4 7F0231A4 908E0001 */ lbu $t6, 1($a0)
/* 057CD8 7F0231A8 8C830004 */ lw $v1, 4($a0)
/* 057CDC 7F0231AC 31CF0002 */ andi $t7, $t6, 2
/* 057CE0 7F0231B0 51E00033 */ beql $t7, $zero, .L7F023280
/* 057CE4 7F0231B4 00001025 */ move $v0, $zero
/* 057CE8 7F0231B8 80620007 */ lb $v0, 7($v1)
/* 057CEC 7F0231BC 24010004 */ li $at, 4
/* 057CF0 7F0231C0 1041002E */ beq $v0, $at, .L7F02327C
/* 057CF4 7F0231C4 24010005 */ li $at, 5
/* 057CF8 7F0231C8 5041002D */ beql $v0, $at, .L7F023280
/* 057CFC 7F0231CC 00001025 */ move $v0, $zero
/* 057D00 7F0231D0 8C780014 */ lw $t8, 0x14($v1)
/* 057D04 7F0231D4 33190800 */ andi $t9, $t8, 0x800
/* 057D08 7F0231D8 57200029 */ bnezl $t9, .L7F023280
/* 057D0C 7F0231DC 00001025 */ move $v0, $zero
/* 057D10 7F0231E0 8C64001C */ lw $a0, 0x1c($v1)
/* 057D14 7F0231E4 3C013E80 */ li $at, 0x3E800000 # 0.250000
/* 057D18 7F0231E8 44817000 */ mtc1 $at, $f14
/* 057D1C 7F0231EC 8C82000C */ lw $v0, 0xc($a0)
/* 057D20 7F0231F0 44806000 */ mtc1 $zero, $f12
/* 057D24 7F0231F4 24480040 */ addiu $t0, $v0, 0x40
/* 057D28 7F0231F8 C5000038 */ lwc1 $f0, 0x38($t0)
/* 057D2C 7F0231FC C4440038 */ lwc1 $f4, 0x38($v0)
/* 057D30 7F023200 46002181 */ sub.s $f6, $f4, $f0
/* 057D34 7F023204 460E3202 */ mul.s $f8, $f6, $f14
/* 057D38 7F023208 46004280 */ add.s $f10, $f8, $f0
/* 057D3C 7F02320C 460C503C */ c.lt.s $f10, $f12
/* 057D40 7F023210 E4AA0008 */ swc1 $f10, 8($a1)
/* 057D44 7F023214 4502001A */ bc1fl .L7F023280
/* 057D48 7F023218 00001025 */ move $v0, $zero
/* 057D4C 7F02321C C5000030 */ lwc1 $f0, 0x30($t0)
/* 057D50 7F023220 C4500030 */ lwc1 $f16, 0x30($v0)
/* 057D54 7F023224 46008481 */ sub.s $f18, $f16, $f0
/* 057D58 7F023228 460E9102 */ mul.s $f4, $f18, $f14
/* 057D5C 7F02322C 46002180 */ add.s $f6, $f4, $f0
/* 057D60 7F023230 E4A60000 */ swc1 $f6, ($a1)
/* 057D64 7F023234 C4480034 */ lwc1 $f8, 0x34($v0)
/* 057D68 7F023238 C5020034 */ lwc1 $f2, 0x34($t0)
/* 057D6C 7F02323C 46024281 */ sub.s $f10, $f8, $f2
/* 057D70 7F023240 460E5402 */ mul.s $f16, $f10, $f14
/* 057D74 7F023244 46028480 */ add.s $f18, $f16, $f2
/* 057D78 7F023248 E4B20004 */ swc1 $f18, 4($a1)
/* 057D7C 7F02324C 8FAB002C */ lw $t3, 0x2c($sp)
/* 057D80 7F023250 24C50004 */ addiu $a1, $a2, 4
/* 057D84 7F023254 E56C0004 */ swc1 $f12, 4($t3)
/* 057D88 7F023258 E56C0000 */ swc1 $f12, ($t3)
/* 057D8C 7F02325C E4CC0000 */ swc1 $f12, ($a2)
/* 057D90 7F023260 E4CC0004 */ swc1 $f12, 4($a2)
/* 057D94 7F023264 8FAC002C */ lw $t4, 0x2c($sp)
/* 057D98 7F023268 25870004 */ addiu $a3, $t4, 4
/* 057D9C 7F02326C 0FC0FE43 */ jal sub_GAME_7F03F90C
/* 057DA0 7F023270 AFAC0010 */ sw $t4, 0x10($sp)
/* 057DA4 7F023274 10000002 */ b .L7F023280
/* 057DA8 7F023278 24020001 */ li $v0, 1
.L7F02327C:
/* 057DAC 7F02327C 00001025 */ move $v0, $zero
.L7F023280:
/* 057DB0 7F023280 8FBF001C */ lw $ra, 0x1c($sp)
/* 057DB4 7F023284 27BD0020 */ addiu $sp, $sp, 0x20
/* 057DB8 7F023288 03E00008 */ jr $ra
/* 057DBC 7F02328C 00000000 */ nop
)
#endif
+7 -4
View File
@@ -230,8 +230,8 @@ extern s32 D_8002C910;
extern s32 D_8002CC58;
extern s32 show_patrols_flag;
extern s32 player1_guardID;
extern ChrRecord *ptr_guard_data;
extern s32 num_guards;
extern ChrRecord *g_ChrSlots;
extern s32 g_NumChrSlots;
extern struct unk_joint_list D_8002CC6C;
extern s32 D_8002CCAC;
extern s32 D_8002CCB0;
@@ -285,11 +285,11 @@ void sub_GAME_7F022EE0(s32 param_1);
void setanimationdebugflag(s32 param_1);
void disable_sounds_attached_to_player_then_something(PropRecord* prop);
void chrPositionRelated7F020D94(ChrRecord *);
void set_or_unset_GUARDdata_flag(ChrRecord *guard,s32 param_2);
void chrSetMoving(ChrRecord *guard,s32 param_2);
f32 getAnimationRate(void);
void setAnimationRate(f32);
PropRecord *init_GUARDdata_with_set_values(PropRecord *, Model *, coord3d *, f32 arg2, StandTile * arg3, s32 arg4);
PropRecord *replace_GUARDdata_with_actual_values(struct Model * arg0, coord3d * arg1, f32 arg2, StandTile * arg3, s32 arg4);
PropRecord *chrAllocate(struct Model * arg0, coord3d * arg1, f32 arg2, StandTile * arg3, s32 arg4);
void chrSetHiddenToRandom(ChrRecord *arg0);
void chrRemoved7F022E1C(f32 arg0);
void chrDecrementAnimationTablePointerCount(void);
@@ -307,9 +307,12 @@ s32 get_numguards(void);
Gfx *chrRenderProp(PropRecord *arg0, Gfx *arg1, s32 arg2);
void chrAddHealth(ChrRecord *chr, f32 health);
void chrSetMaxDamage(ChrRecord *chr, f32 maxdamage);
s32 sub_GAME_7F03DA50(struct PropRecord *arg0, s32 arg1);
s32 sub_GAME_7F023194(PropRecord *arg0, struct coord3d *arg1, struct coord2d *arg2, struct coord2d *arg3);
//tentative signature
s32 sub_GAME_7F01FC10(Model *, coord3d *, coord3d *, f32 *);
void sub_GAME_7F0221DC(Model *arg0, s32 arg1, ModelNode *arg2, struct coord3d *arg3);
#ifdef BUGFIX_R1
s32 not_in_us_7F0209EC(s32 bodynum, s32 headnum);
+3 -1
View File
@@ -20,6 +20,8 @@ s32 load_body_head_if_not_loaded(s32 model)
/**
* Address 0x7F0232E8 (VERSION_US)
* Address 0x7F0235D8 (other version)
* Not a very descriptive name for a function. What it does is load Bond's model or those
* for spawning guards. It is not used for guards that spawn at level loading.
*/
struct Model *makeonebody(s32 body, s32 head, struct ModelFileHeader *bodyHeader, struct ModelFileHeader *headHeader, s32 sunglasses, struct Model *model)
{
@@ -95,7 +97,7 @@ struct Model *makeonebody(s32 body, s32 head, struct ModelFileHeader *bodyHeader
if ((headHeader != 0) && (c_item_entries[body].hasHead == 0))
{
bodyHeader->numRecords -= headHeader->numRecords;
sub_GAME_7F06C3B4(model, opcode, headHeader);
modelAttachHead(model, opcode, headHeader);
if ((sunglasses == 0) && ((s32) headHeader->numSwitches > 0))
{
+33 -33
View File
@@ -847,9 +847,9 @@ PathRecord *pathFindById(s32 ID)
extern void chrpropDelist(PropRecord *prop);
extern PadRecord * dword_CODE_bss_800799F8;
extern CutsceneRecord *gBondViewCutscene;
extern s32 dword_CODE_bss_80079A18;
extern enum CAMERAMODE dword_CODE_bss_80079A18;
extern s32 dword_CODE_bss_80079A1C;
extern vec3d flt_CODE_bss_80079990;
extern vec3d g_ForceBondMoveOffset;
//CODE.bss:80079A00
extern f32 flt_CODE_bss_80079A00;
//CODE.bss:80079A04
@@ -2290,14 +2290,14 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
#endif
if (obj && obj->prop)
{
if (!do_something_if_object_destroyed(obj))
if (!objGetDestroyedLevel(obj))
{
f32 damage = ((obj->damage - obj->maxdamage) + 1) / 250.0f;
#ifdef ENABLE_LOG
osSyncPrintf("ai_destroyobj 3 : adddamageobj\n");
#endif
maybe_detonate_object(obj, damage, &obj->runtime_pos, 29, -1);
maybe_detonate_object(obj, damage, &obj->runtime_pos, 0x1D, -1);
}
}
Offset += AI_DestroyObject_LENGTH;
@@ -2354,7 +2354,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (obj && obj->prop)
{
INV_ITEM_TYPE iType = collect_or_interact_object(obj->prop, FALSE);
sub_GAME_7F03C2BC(obj->prop, iType);
propExecuteTickOperation(obj->prop, iType);
}
Offset += AI_BondCollectObject_LENGTH;
break;
@@ -2368,7 +2368,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
if (obj->prop->parent)
{
sub_GAME_7F04C044(obj->prop);
objDetach(obj->prop);
}
else
{
@@ -2376,7 +2376,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
chrpropDelist(obj->prop);
chrpropDisable(obj->prop);
}
if (obj->type != PROPDEF_COLLECTABLE || !sub_GAME_7F051E1C(obj, chr))
if (obj->type != PROPDEF_COLLECTABLE || !chrEquipWeapon(obj, chr))
{
chrpropReparent(obj->prop, chr->prop);
}
@@ -3586,7 +3586,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
bool ok = FALSE;
if (ChrEntityp && ChrEntityp->prop && ChrEntityp->model)
{
ok = chrTryEquipHat(ChrEntityp, modelnum, flags);
ok = hatCreateForChr(ChrEntityp, modelnum, flags);
}
if (ok)
{
@@ -3665,7 +3665,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
{
hatobj = hatprop->obj;
chrTryEquipHat(clone, hatobj->obj, 0);
hatCreateForChr(clone, hatobj->obj, 0);
}
}
/* PD extras */
@@ -3953,15 +3953,15 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (obj->type == PROPDEF_MONITOR)
{
MonitorObjRecord *sm = (MonitorObjRecord *)obj;
monitorSetImageByNum(&sm->Monitor.image, ai->val[2]);
monitorSetImageByNum(&sm->Monitor.cmdlist, ai->val[2]);
}
else if (obj->type == PROPDEF_MULTI_MONITOR)
{
u8 slot = ai->val[1];
if (slot < 4)
{
multimonitorobj *mm = (multimonitorobj *)obj; //need new size here 0x74 (116) + 0x80 (so monitor is obj + 74)
monitorSetImageByNum(&mm->Monitor[slot].image, ai->val[2]);
MultiMonitorObjRecord *mm = (MultiMonitorObjRecord *)obj; //need new size here 0x74 (116) + 0x80 (so monitor is obj + 74)
monitorSetImageByNum(&mm->Monitor[slot].cmdlist, ai->val[2]);
}
}
}
@@ -4065,15 +4065,15 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
case AI_BondDisableControl:
{
AIRecord1 *ai = AiListp + Offset;
set_unset_bitflags(4, FALSE);
set_unset_ammo_on_screen_setting(2, FALSE);
gunSetSightVisible(GUNSIGHTREASON_NOCONTROL, FALSE);
gunSetGunAmmoVisible(GUNAMMOREASON_NOCONTROL, FALSE);
if (!(PLAYERFLAG_NOCONTROL & ai->val))
{
hudmsgsSetOff(PLAYERFLAG_NOCONTROL);
}
if (!(ai->val & PLAYERFLAG_LOCKCONTROLS))
{
sub_GAME_7F08A944(PLAYERFLAG_NOCONTROL);
bondviewSetUpperTextDisplayFlag(PLAYERFLAG_NOCONTROL);
}
if (!(ai->val & PLAYERFLAG_NOTIMER))
{
@@ -4088,10 +4088,10 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
#ifdef ENABLE_LOG
osSyncPrintf("AI_BONDENABLECONTROL\n");
#endif
set_unset_bitflags(4, TRUE);
set_unset_ammo_on_screen_setting(2, TRUE);
gunSetSightVisible(GUNSIGHTREASON_NOCONTROL, TRUE);
gunSetGunAmmoVisible(GUNAMMOREASON_NOCONTROL, TRUE);
hudmsgsSetOn(PLAYERFLAG_NOCONTROL);
sub_GAME_7F08A928(2);
bondviewClearUpperTextDisplayFlag(2);
countdownTimerSetVisible(16, TRUE);
D_800364B0 = TRUE;
Offset += AI_BondEnableControl_LENGTH;
@@ -4202,9 +4202,9 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
s32 num;
for (num = get_numguards() - 1; num >= 0; num--)
{
if (ptr_guard_data[num].model != NULL)
if (g_ChrSlots[num].model != NULL)
{
ptr_guard_data[num].chrflags |= CHRFLAG_HIDDEN;
g_ChrSlots[num].chrflags |= CHRFLAG_HIDDEN;
}
}
Offset += AI_HideAllChrs_LENGTH;
@@ -4215,7 +4215,7 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
s32 num;
for (num = get_numguards() - 1; num >= 0; num--)
{
ptr_guard_data[num].chrflags &= ~CHRFLAG_HIDDEN;
g_ChrSlots[num].chrflags &= ~CHRFLAG_HIDDEN;
}
Offset += AI_ShowAllChrs_LENGTH;
@@ -4305,9 +4305,9 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
g_Vars.currentplayer->bondforcespeed.z = (s8)ai->val[2];
*/
AIRecord *ai = AiListp + Offset;
flt_CODE_bss_80079990.x = (s8)ai->val[0];
flt_CODE_bss_80079990.y = 0;
flt_CODE_bss_80079990.z = (s8)ai->val[1];
g_ForceBondMoveOffset.x = (s8)ai->val[0];
g_ForceBondMoveOffset.y = 0;
g_ForceBondMoveOffset.z = (s8)ai->val[1];
Offset += AI_BondSetLockedVelocity_LENGTH;
break;
}
@@ -4549,15 +4549,15 @@ void ai(PropDefHeaderRecord *Entityp, PROP_TYPE EntityType)
if (obj->runtime_bitflags & RUNTIMEBITFLAG_DEPOSIT)
{
obj->unk6C->flags |= 0x601;
sub_GAME_7F03FE14(obj->prop);
matrix_4x4_set_identity(&obj->unk6C->m);
obj->unk6C->pos.x = 0;
obj->unk6C->pos.y = 0.016666666f; //step height?
obj->unk6C->pos.z = 0;
obj->unk6C->vec.x = 0;
obj->unk6C->vec.y = 0.29166666f; //direction to move?
obj->unk6C->vec.z = 0;
obj->projectile->flags |= 0x601;
projectileSetSticky(obj->prop);
matrix_4x4_set_identity(&obj->projectile->mtx);
obj->projectile->speed.x = 0;
obj->projectile->speed.y = 0.016666666f; //step height?
obj->projectile->speed.z = 0;
obj->projectile->unk10.x = 0;
obj->projectile->unk10.y = 0.29166666f; //direction to move?
obj->projectile->unk10.z = 0;
}
}
Offset += AI_ObjectRocketLaunch_LENGTH;
+30 -259
View File
@@ -165,11 +165,11 @@ Rotate Image:
#define PTR_LIST_OBJECT_LOOKUP_INDICES_LEN 512
#define BSS_8007161C_LEN 256
#define BSS_8007161C_DATA_LEN 16
#define PROJECTILEDATA_START_ADDRESS_LEN 30
#define BSS_80072E70_DATA_LEN 10
#define BSS_80073370_DATA_LEN 20
#define BSS_80073DC0_DATA_LEN 20
#define BSS_80075030_DATA_LEN 40
#define MAX_WEAPON_SLOTS 30
#define MAX_HAT_SLOTS 10
#define MAX_AMMO_CRATES 20
#define PROJECTILES_ARR_MAX 20
#define EMBEDMENT_ARR_MAX 40
#define ONSCREEN_PROP_LIST_LEN 500
@@ -178,242 +178,9 @@ Rotate Image:
* Getting a match on alloc_lookup_buffers makes it seem
* the struct is just one continuous array. (or maybe there's no struct....)
*/
struct unk_8007161c
struct roomproplistchunk
{
s16 data[16];
};
struct projectile_data {
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
u32 unk48;
u32 unk4C;
u32 unk50;
u32 unk54;
u32 unk58;
u32 unk5C;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
u32 unk7C;
u32 unk80;
u32 unk84;
};
struct bss_80072E70 {
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
u32 unk48;
u32 unk4C;
u32 unk50;
u32 unk54;
u32 unk58;
u32 unk5C;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
u32 unk7C;
};
struct bss_80073370 {
u32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
u32 unk48;
u32 unk4C;
u32 unk50;
u32 unk54;
u32 unk58;
u32 unk5C;
u32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
u32 unk7C;
u32 unk80;
};
struct bss_80073DC0 {
u32 unk00;
f32 unk04;
f32 unk08;
f32 unk0C;
f32 unk10;
f32 unk14;
f32 unk18;
f32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
u32 unk48;
u32 unk4C;
u32 unk50;
u32 unk54;
u32 unk58;
u32 unk5C;
f32 unk60;
u32 unk64;
u32 unk68;
u32 unk6C;
u32 unk70;
u32 unk74;
u32 unk78;
u32 unk7C;
u32 unk80;
u32 unk84;
u32 unk88;
f32 unk8C;
u32 unk90;
f32 unk94;
u32 unk98;
u32 unk9C;
u32 unkA0;
u32 unkA4;
u32 unkA8;
u32 unkAC;
u32 unkB0;
u32 unkB4;
u32 unkB8;
u32 unkBC;
f32 unkC0;
f32 unkC4;
f32 unkC8;
u32 unkCC;
u32 unkD0;
u32 unkD4;
u32 unkD8;
u32 unkDC;
u32 unkE0;
u32 unkE4;
u32 unkE8;
};
struct bss_80075030 {
s32 unk00;
u32 unk04;
u32 unk08;
u32 unk0C;
u32 unk10;
u32 unk14;
u32 unk18;
u32 unk1C;
u32 unk20;
u32 unk24;
u32 unk28;
u32 unk2C;
u32 unk30;
u32 unk34;
u32 unk38;
u32 unk3C;
u32 unk40;
u32 unk44;
s16 propnums[16];
};
extern struct SetupPtrs g_SetupPtrs;
@@ -465,17 +232,20 @@ extern PropRecord *ptr_obj_pos_list_final_entry;
extern s32 g_OnScreenPropCount;
extern PropRecord ** g_LastOnScreenProp;
extern PropRecord * g_OnScreenPropList[];
extern s16 * ptr_room_lookup_buffer_maybe;
extern struct unk_8007161c * dword_CODE_bss_8007161C;
extern PropRecord * g_InteractProp;
extern s16 * RoomPropListChunkIndexes;
extern struct roomproplistchunk * RoomPropListChunks;
extern sfxRecord sfx_related[];
extern struct projectile_data ProjectileData_start_address[];
extern struct bss_80072E70 dword_CODE_bss_80072E70[];
extern struct bss_80073370 dword_CODE_bss_80073370[];
extern struct bss_80073DC0 dword_CODE_bss_80073DC0[];
extern struct bss_80075030 dword_CODE_bss_80075030[];
extern struct WeaponObjRecord g_WeaponSlots[];
extern struct HatRecord g_HatSlots[];
extern struct AmmoCrateRecord g_AmmoCrates[];
extern struct Projectile g_Projectiles[];
extern struct Embedment g_Embedments[];
extern struct coord3d flt_CODE_bss_80075B78;
extern struct coord3d flt_CODE_bss_80075B88;
extern struct object_animation_controller g_MonitorAnimController;
extern MonitorRecord g_MonitorAnimController;
extern struct object_animation_controller g_UnknownAnimController;
extern struct object_animation_controller g_TaserAnimController;
@@ -487,12 +257,12 @@ void check_deactivate_gas_sound(void);
void handle_mp_respawn_and_some_things(void);
void determing_type_of_object_and_detection(void);
void chraiUpdateOnscreenPropCount(void);
void sub_GAME_7F03D78C(void);
void chrpropUpdateAutoaimTarget(void);
void chraiCheckUseHeldItems(void);
s32 bond_interact_object(void);
bool bond_interact_object(void);
void sub_GAME_7F03D0D4(void);
void chrpropRegisterRoom(PropRecord *, s16);
PropRecord* chrpropAllocate();
PropRecord* propAllocate();
void chrpropDeregisterRooms(PropRecord *);
void sub_GAME_7F03E27C(PropRecord *, coord3d *, coord3d *, f32);
void chrpropRegisterRooms(PropRecord *posData);
@@ -506,7 +276,7 @@ void chraiGetCollisionBounds(PropRecord *arg0, struct rect4f **arg1, s3
void sub_GAME_7F03D058(PropRecord *prop, bool unset);
void chraiGetCollisionBoundsWithoutY(PropRecord *arg0, struct rect4f **arg1, s32 *arg2);
s32 chrpropTestPointInPolygon(coord3d *point, struct rect4f *polygon, s32 edges);
void sub_GAME_7F03E3FC(s32 *roomids);
void roomGetProps(s32 *roomids);
ObjectRecord *scan_position_data_table_for_normal_object_at_preset(s32 arg0);
Gfx *chrpropsRenderPass(Gfx *arg0, s32 roomid, s32 arg2);
PropRecord *get_ptr_obj_pos_list_current_entry(void);
@@ -521,11 +291,12 @@ ObjectRecord *sub_GAME_7F03FAB0(PadRecord *pad, s32 RoomID);
void chraiGetCollisionBounds(PropRecord *arg0, struct rect4f **arg1, s32 *arg2, f32 *arg3, f32 *arg4);
void chrpropGetCollisionBounds(PropRecord *arg0, f32 *arg1, f32 *arg2, f32 *arg3);
f32 sub_GAME_7F03CFE8(PropRecord *arg0);
f32 chrpropSumMatrixPosX(struct modeldata_unk_pos* arg0, Mtxf *arg1);
f32 chrpropSumMatrixNegX(struct modeldata_unk_pos* arg0, Mtxf *arg1);
f32 chrpropSumMatrixPosY(struct modeldata_unk_pos* arg0, Mtxf *arg1);
f32 chrpropSumMatrixNegY(struct modeldata_unk_pos* arg0, Mtxf *arg1);
f32 chrpropSumMatrixPosZ(struct modeldata_unk_pos* arg0, Mtxf *arg1);
f32 chrpropSumMatrixNegZ(struct modeldata_unk_pos* arg0, Mtxf *arg1);
void sub_GAME_7F03F540(struct modeldata_unk_pos *arg0, Mtxf *arg1, s32* arg2, struct collision_data *arg3);
f32 chrpropSumMatrixPosX(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1);
f32 chrpropSumMatrixNegX(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1);
f32 chrpropSumMatrixPosY(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1);
f32 chrpropSumMatrixNegY(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1);
f32 chrpropSumMatrixPosZ(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1);
f32 chrpropSumMatrixNegZ(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1);
void sub_GAME_7F03F540(struct ModelRoData_BoundingBoxRecord *bbox, Mtxf *arg1, struct rect4f* arg2, struct collision_data *arg3);
void sub_GAME_7F03F948(struct coord3d *arg0, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4);
#endif
+296 -799
View File
File diff suppressed because it is too large. Load diff
+3 -3
View File
@@ -47,14 +47,14 @@ Model * retrieve_header_for_body_and_head(s32 body, s32 head, u32 bitflags);
s32 get_current_random_body(void);
s32 select_psuedorandom_heads(s32 id);
s32 bodyChooseHead(s32 id);
s32 get_random_head(s32 id);
f32 chrGetDistanceToBond(ChrRecord *guardData);
s32 chrCheckTargetInSight(ChrRecord *self);
bool actor_fire_or_aim_at_target_update(ChrRecord *self, s32 newtargettype, s32 newtargetid);
void chrlvAlertGuardToPlayerPosition(ChrRecord *);
void chrlvIdleAnimationRelated7F023A94(ChrRecord *arg0, f32 duration);
void chrlvIdleAnimationRelated7F023A94(ChrRecord *self, f32 mergetime);
f32 chrGetAngleToBond(ChrRecord *arg0);
s32 chrHasStoppedOrPatroling(ChrRecord *);
s32 chrResolvePadId(ChrRecord *guardData,s32 padNo);
@@ -80,7 +80,7 @@ bool if_actor_able_set_on_path(ChrRecord *self, s32 pathid);
f32 chrlvGetSubrotySideback(ChrRecord *arg0);
f32 chrlvGetAimLimitAngle(f32 arg0);
void chrlvUpdateAimendbackShoulders(ChrRecord *arg0, void *arg1, s32 same, s32 swap, f32 next);
void sub_GAME_7F02D118(ChrRecord *arg0, s32 hand, s32 arg2);
void chrSetFiring(ChrRecord *arg0, s32 hand, s32 firing);
s32 sub_GAME_7F02D630(ChrRecord *arg0, GUNHAND hand, coord3d *arg2);
void chrlvTriggerFireWeapon(ChrRecord *arg0);
s32 chrlvGeometryRelated7F02FC34(coord3d *arg0, coord3d *arg1, coord3d *arg2, f32 arg3);
-1
View File
@@ -568,5 +568,4 @@ extern struct ChrModelFileRecord c_item_entries[];
extern struct ModelSkeleton SKELETON(guard);
extern struct ModelSkeleton SKELETON(suit_lf_hand);
extern struct object_weapon blank_08_object_preset_1[];
#endif
+6468 -11946
View File
File diff suppressed because it is too large. Load diff
+64 -26
View File
@@ -6,10 +6,40 @@
#include <bondtypes.h>
#include <snd.h>
struct ShotData {
// temporary definition for GE:
/*0x00*/ s32 unk00[13];
/*0x34*/ f32 unk34;
// the following is from PD, it seems to line up:
/*0x00*/ //struct coord unk00;
/*0x0c*/ //struct coord unk0c;
/*0x18*/ //struct gset gset;
/*0x1c*/ //struct coord gunpos;
/*0x28*/ //struct coord dir;
/*0x34*/ //f32 unk34;
/*0x38*/ //s32 penetration;
/*0x3c*/ //struct hit hits[10];
};
struct HitThing {
// the following is taken from PD
// may need adjustments
coord3d unk00;
coord3d unk0c;
Vertex *unk18;
Vertex *unk1c;
Vertex *unk20;
Gfx *tricmd;
s16 unk28;
s16 texturenum;
s16 unk2c;
};
extern f32 F_80030B14;
extern f32 F_80030B18;
extern f32 F_80030B1C;
extern f32 F_80030B20;
extern f32 g_AutogunPendingDamageTick;
extern f32 g_AutogunDamageScalar;
extern f32 F_80030B24;
extern f32 g_SoloAmmoMultiplier;
@@ -24,18 +54,18 @@ extern ALSoundState *ptr_gas_sound;
extern s32 clock_drawn_flag;
extern s32 clock_enable;
extern f32 clock_time;
extern s32 D_80030AF4;
extern s32 D_80030AF8;
extern s32 D_80030AFC;
extern s32 g_RemoteMineOwnerTriggerFlag;
extern s32 g_NextWeaponSlot;
extern s32 g_NextHatSlot;
extern ObjectRecord *g_LevelLoadPropSwitch;
extern ObjectRecord *g_LevelLoadPropLockDoor;
extern LockDoorRecord *g_LevelLoadPropLockDoor;
extern ObjectRecord *g_LevelLoadPropSafeItem;
extern s32 D_80030B0C;
extern struct PropRecord *D_80030B0C;
extern s32 bodypartshot;
extern f32 F_80030B14;
extern f32 F_80030B18;
extern f32 F_80030B1C;
extern f32 F_80030B20;
extern f32 g_AutogunPendingDamageTick;
extern f32 g_AutogunDamageScalar;
extern f32 F_80030B24;
extern f32 g_SoloAmmoMultiplier;
@@ -51,24 +81,24 @@ void chrobjApplySpeed(f32 *openPosition, f32 maxFrac, f32 *speed
void chrobjCallsApplySpeed(f32 *openPosition, f32 maxFrac, f32 *speedPtr, f32 accel, f32 decel, f32 maxSpeed);
Gfx *sub_GAME_7F049B58(Gfx *arg0);
void set_color_shading_from_tile(PropRecord *, rgba_u8 *);
void propobjSetDropped(PropRecord *, s32);
void sub_GAME_7F053A10(ALSoundState *, coord3d *);
void propobjSetDropped(PropRecord *prop, DROPTYPE droptype);
void chrobjSndCreatePostEventDefault(ALSoundState *, coord3d *);
void alarmActivate(void);
void sub_GAME_7F052574(PropRecord *, s32);
s32 sub_GAME_7F052604(PropRecord *);
void weaponSetGunfireVisible(PropRecord *prop, s32 firing);
s32 weaponIsGunfireVisible(PropRecord *);
s32 sub_GAME_7F0539E4(coord3d *pos); //getVolume?
ObjectRecord *create_new_item_instance_of_model(PROP propid, s32 arg1);
void maybe_detonate_object(ObjectRecord *arg0, f32 arg1, coord3d *arg2, ITEM_IDS item, s32 arg4);
void maybe_detonate_object(ObjectRecord *obj, f32 damage, coord3d *pos, ITEM_IDS item, s32 owner);
void chrobjMaybeDetonateObjectIfFlags(ObjectRecord *arg0, f32 arg1, coord3d *arg2, ITEM_IDS item, s32 arg4);
void sub_GAME_7F03FDA8(PropRecord *);
void sub_GAME_7F03FE14(PropRecord *);
void projectileSetSticky(PropRecord *);
void chrobjCollisionRelated(ObjectRecord *);
void sub_GAME_7F040754(ObjectRecord *, coord3d *, Mtxf *, StandTile *);
void objChangeShading(ObjectRecord *, coord3d *, Mtxf *, StandTile *);
s32 sub_GAME_7F041074(coord3d *arg0, coord3d *arg1, coord3d *arg2, f32 arg3);
void sub_GAME_7F04F244(PropRecord *arg0, struct rect4f **arg1, s32 *arg2, f32 *arg3, f32 *arg4);
void doorActivate(DoorRecord *door, DOORSTATE State);
s32 sub_GAME_7F055A70(PropRecord *arg0, DoorRecord *arg1);
void sub_GAME_7F055B78(PropRecord *arg0, DoorRecord *arg1);
s32 posIsInFrontOfDoor(PropRecord *arg0, DoorRecord *arg1);
void doorsChooseSwingDirection(PropRecord *arg0, DoorRecord *arg1);
Gfx *chrobjRenderProp(PropRecord *arg0, Gfx *arg1, s32 arg2);
f32 chrobjFogVisRangeRelated(PropRecord *prop, f32 size);
@@ -78,8 +108,8 @@ s32 sub_GAME_7F054A64(PropRecord *prop, bbox2d *bbox);
void sub_GAME_7F040384(rgba_s32 *arg0, s32 arg1, rgba_f32 *arg2);
void trigger_remote_mine_detonation(void);
void sub_GAME_7F04C044(PropRecord *prop);
void sub_GAME_7F040CF0(PropRecord *);
void objDetach(PropRecord *prop);
void objFreeEmbedmentOrProjectile(PropRecord *);
bool alarmIsActive();
void init_trigger_toxic_gas_effect(coord3d *source);
void chrSetWeaponFlag4(ChrRecord *chr, GUNHAND hand);
@@ -95,19 +125,27 @@ void countdownTimerSetRunning(bool enable);
void countdownTimerSetValue(f32 time);
void countdownTimerSetVisible(int clocklockbits, bool unset);
void sub_GAME_7F04088C(ObjectRecord *baseobj, PadRecord *pad, Mtxf *matrix, StandTile *stan, PadRecord *pad2);
bool sub_GAME_7F051E1C(WeaponObjRecord *wep, ChrRecord *chr);
bool chrEquipWeapon(WeaponObjRecord *wep, ChrRecord *chr);
INV_ITEM_TYPE collect_or_interact_object(PropRecord *prop, bool showstring);
INV_ITEM_TYPE propobjInteract(PropRecord *prop);
s32 do_something_if_object_destroyed(ObjectRecord *obj);
s32 objGetDestroyedLevel(ObjectRecord *obj);
void doorActivateWrapper(PropRecord *prop);
bool objIsHealthy(ObjectRecord *self);
ObjectRecord *weaponFindThrown(s32 ID);
bool check_if_toxic_gas_activated();
PropRecord *chrTryEquipHat(ChrRecord *self, s32 index, s32 flags);
void sub_GAME_7F04C044(PropRecord *prop);
HatRecord *hatCreate(bool musthaveprop, bool musthavemodel, ModelFileHeader *modeldef);
PropRecord* objInitWithAutoModel(ObjectRecord* obj);
Embedment *embedmentAllocate(void);
void objDetach(PropRecord *prop);
void sub_GAME_7F043650(struct WeaponObjRecord *arg0);
s32 sub_GAME_7F0446B8(struct rect4f *arg0, s32 arg1, struct rect4f *arg2, s32 arg3);
s32 chrobjTestPointPolygonCollision(struct coord3d *arg0, f32 arg1, struct rect4f *arg2, s32 arg3);
void sub_GAME_7F04DEFC(PropRecord *arg0, f32 arg1, struct coord3d *arg2, s32 arg3, s32 owner);
struct modeldata_unk_pos * sub_GAME_7F040078(ObjectRecord *arg0);
void maybe_detonate_object_and_its_children(PropRecord *arg0, f32 arg1, struct coord3d *arg2, s32 arg3, s32 owner);
struct ModelRoData_BoundingBoxRecord* chrobjGetBboxFromObjectRecord(ObjectRecord *arg0);
void deactivate_alarm_sound_effect(void);
s32 sub_GAME_7F03F598(coord3d* pos, f32 arg1, BoundPadRecord *boundpads);
void sub_GAME_7F0A1DA0(f32*, f32*, f32*, f32*, f32, f32, f32, f32, f32, f32);
void sub_GAME_7F03F90C(Model *model, f32 *arg1, f32 *arg2, f32 *arg3, f32 *arg4);
s32 sub_GAME_7F0448A8(struct PropRecord *arg0);
#endif
+660 -915
View File
File diff suppressed because it is too large. Load diff
+9 -121
View File
@@ -2,137 +2,25 @@
#include <PR/libaudio.h>
#include "game/player.h"
#ifdef NONMATCHING
// Address 0x7F007980 NTSC.
// Address 0x7F007900 PAL.
void cleanupplayersoundrelated(void)
{
int i;
int j=0;
int j;
for(i=0; i < getPlayerCount(); i++)
for (i = 0; i < getPlayerCount(); i++)
{
for(;j<2;j++)
for (j = 0; j < 2; j++)
{
if((&g_playerPointers[i]->hands[j])->field_A44 && sndGetPlayingState((&g_playerPointers[i]->hands[j])->field_A44))
struct hand *hand = &g_playerPointers[i]->hands[j];
if (hand->audioHandle != NULL && sndGetPlayingState(hand->audioHandle))
{
sndDeactivate((&g_playerPointers[i]->hands[j])->field_A44);
sndDeactivate(hand->audioHandle);
}
}
}
}
#else
#if defined(VERSION_US) || defined(VERSION_JP)
GLOBAL_ASM(
.text
glabel cleanupplayersoundrelated
/* 03C4B0 7F007980 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 03C4B4 7F007984 AFBF002C */ sw $ra, 0x2c($sp)
/* 03C4B8 7F007988 AFB40028 */ sw $s4, 0x28($sp)
/* 03C4BC 7F00798C AFB30024 */ sw $s3, 0x24($sp)
/* 03C4C0 7F007990 AFB20020 */ sw $s2, 0x20($sp)
/* 03C4C4 7F007994 AFB1001C */ sw $s1, 0x1c($sp)
/* 03C4C8 7F007998 AFB00018 */ sw $s0, 0x18($sp)
/* 03C4CC 7F00799C 0FC26919 */ jal getPlayerCount
/* 03C4D0 7F0079A0 0000A025 */ move $s4, $zero
/* 03C4D4 7F0079A4 1840001B */ blez $v0, .L7F007A14
/* 03C4D8 7F0079A8 00147080 */ sll $t6, $s4, 2
/* 03C4DC 7F0079AC 3C0F8008 */ lui $t7, %hi(g_playerPointers)
/* 03C4E0 7F0079B0 25EF9EE0 */ addiu $t7, %lo(g_playerPointers) # addiu $t7, $t7, -0x6120
/* 03C4E4 7F0079B4 01CF9021 */ addu $s2, $t6, $t7
/* 03C4E8 7F0079B8 24130750 */ li $s3, 1872
/* 03C4EC 7F0079BC 00008825 */ move $s1, $zero
.L7F0079C0:
/* 03C4F0 7F0079C0 8E580000 */ lw $t8, ($s2)
.L7F0079C4:
/* 03C4F4 7F0079C4 03118021 */ addu $s0, $t8, $s1
/* 03C4F8 7F0079C8 8E040A44 */ lw $a0, 0xa44($s0)
/* 03C4FC 7F0079CC 26100870 */ addiu $s0, $s0, 0x870
/* 03C500 7F0079D0 50800008 */ beql $a0, $zero, .L7F0079F4
/* 03C504 7F0079D4 263103A8 */ addiu $s1, $s1, 0x3a8
/* 03C508 7F0079D8 0C00237C */ jal sndGetPlayingState
/* 03C50C 7F0079DC 00000000 */ nop
/* 03C510 7F0079E0 50400004 */ beql $v0, $zero, .L7F0079F4
/* 03C514 7F0079E4 263103A8 */ addiu $s1, $s1, 0x3a8
/* 03C518 7F0079E8 0C002408 */ jal sndDeactivate
/* 03C51C 7F0079EC 8E0401D4 */ lw $a0, 0x1d4($s0)
/* 03C520 7F0079F0 263103A8 */ addiu $s1, $s1, 0x3a8
.L7F0079F4:
/* 03C524 7F0079F4 5633FFF3 */ bnel $s1, $s3, .L7F0079C4
/* 03C528 7F0079F8 8E580000 */ lw $t8, ($s2)
/* 03C52C 7F0079FC 26940001 */ addiu $s4, $s4, 1
/* 03C530 7F007A00 0FC26919 */ jal getPlayerCount
/* 03C534 7F007A04 26520004 */ addiu $s2, $s2, 4
/* 03C538 7F007A08 0282082A */ slt $at, $s4, $v0
/* 03C53C 7F007A0C 5420FFEC */ bnezl $at, .L7F0079C0
/* 03C540 7F007A10 00008825 */ move $s1, $zero
.L7F007A14:
/* 03C544 7F007A14 8FBF002C */ lw $ra, 0x2c($sp)
/* 03C548 7F007A18 8FB00018 */ lw $s0, 0x18($sp)
/* 03C54C 7F007A1C 8FB1001C */ lw $s1, 0x1c($sp)
/* 03C550 7F007A20 8FB20020 */ lw $s2, 0x20($sp)
/* 03C554 7F007A24 8FB30024 */ lw $s3, 0x24($sp)
/* 03C558 7F007A28 8FB40028 */ lw $s4, 0x28($sp)
/* 03C55C 7F007A2C 03E00008 */ jr $ra
/* 03C560 7F007A30 27BD0030 */ addiu $sp, $sp, 0x30
)
#endif
#if defined(VERSION_EU)
GLOBAL_ASM(
.text
glabel cleanupplayersoundrelated
/* 03A2F0 7F007900 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 03A2F4 7F007904 AFBF002C */ sw $ra, 0x2c($sp)
/* 03A2F8 7F007908 AFB40028 */ sw $s4, 0x28($sp)
/* 03A2FC 7F00790C AFB30024 */ sw $s3, 0x24($sp)
/* 03A300 7F007910 AFB20020 */ sw $s2, 0x20($sp)
/* 03A304 7F007914 AFB1001C */ sw $s1, 0x1c($sp)
/* 03A308 7F007918 AFB00018 */ sw $s0, 0x18($sp)
/* 03A30C 7F00791C 0FC26669 */ jal getPlayerCount
/* 03A310 7F007920 0000A025 */ move $s4, $zero
/* 03A314 7F007924 1840001B */ blez $v0, .L7F007994
/* 03A318 7F007928 00147080 */ sll $t6, $s4, 2
/* 03A31C 7F00792C 3C0F8007 */ lui $t7, %hi(g_playerPointers) # $t7, 0x8007
/* 03A320 7F007930 25EF89F0 */ addiu $t7, %lo(g_playerPointers) # addiu $t7, $t7, -0x7610
/* 03A324 7F007934 01CF9021 */ addu $s2, $t6, $t7
/* 03A328 7F007938 24130750 */ li $s3, 1872
/* 03A32C 7F00793C 00008825 */ move $s1, $zero
.L7F007940:
/* 03A330 7F007940 8E580000 */ lw $t8, ($s2)
.L7F007944:
/* 03A334 7F007944 03118021 */ addu $s0, $t8, $s1
/* 03A338 7F007948 8E040A3C */ lw $a0, 0xa3c($s0)
/* 03A33C 7F00794C 26100868 */ addiu $s0, $s0, 0x868
/* 03A340 7F007950 50800008 */ beql $a0, $zero, .L7F007974
/* 03A344 7F007954 263103A8 */ addiu $s1, $s1, 0x3a8
/* 03A348 7F007958 0C002094 */ jal sndGetPlayingState
/* 03A34C 7F00795C 00000000 */ nop
/* 03A350 7F007960 50400004 */ beql $v0, $zero, .L7F007974
/* 03A354 7F007964 263103A8 */ addiu $s1, $s1, 0x3a8
/* 03A358 7F007968 0C002120 */ jal sndDeactivate
/* 03A35C 7F00796C 8E0401D4 */ lw $a0, 0x1d4($s0)
/* 03A360 7F007970 263103A8 */ addiu $s1, $s1, 0x3a8
.L7F007974:
/* 03A364 7F007974 5633FFF3 */ bnel $s1, $s3, .L7F007944
/* 03A368 7F007978 8E580000 */ lw $t8, ($s2)
/* 03A36C 7F00797C 26940001 */ addiu $s4, $s4, 1
/* 03A370 7F007980 0FC26669 */ jal getPlayerCount
/* 03A374 7F007984 26520004 */ addiu $s2, $s2, 4
/* 03A378 7F007988 0282082A */ slt $at, $s4, $v0
/* 03A37C 7F00798C 5420FFEC */ bnezl $at, .L7F007940
/* 03A380 7F007990 00008825 */ move $s1, $zero
.L7F007994:
/* 03A384 7F007994 8FBF002C */ lw $ra, 0x2c($sp)
/* 03A388 7F007998 8FB00018 */ lw $s0, 0x18($sp)
/* 03A38C 7F00799C 8FB1001C */ lw $s1, 0x1c($sp)
/* 03A390 7F0079A0 8FB20020 */ lw $s2, 0x20($sp)
/* 03A394 7F0079A4 8FB30024 */ lw $s3, 0x24($sp)
/* 03A398 7F0079A8 8FB40028 */ lw $s4, 0x28($sp)
/* 03A39C 7F0079AC 03E00008 */ jr $ra
/* 03A3A0 7F0079B0 27BD0030 */ addiu $sp, $sp, 0x30
)
#endif
#endif
+6 -6
View File
@@ -4,19 +4,19 @@
#include "bondview.h"
void cleanupSFXRelated(void) {
if (SFX_80036458[0] != 0)
if (g_TankSfxState[0] != 0)
{
if (sndGetPlayingState(SFX_80036458[0]) != AL_STOPPED)
if (sndGetPlayingState(g_TankSfxState[0]) != AL_STOPPED)
{
sndDeactivate(SFX_80036458[0]);
sndDeactivate(g_TankSfxState[0]);
}
}
if (SFX_80036458[1] != 0)
if (g_TankSfxState[1] != 0)
{
if (sndGetPlayingState(SFX_80036458[1]) != AL_STOPPED)
if (sndGetPlayingState(g_TankSfxState[1]) != AL_STOPPED)
{
sndDeactivate(SFX_80036458[1]);
sndDeactivate(g_TankSfxState[1]);
}
}
+13 -13
View File
@@ -12,23 +12,23 @@ void cleanupGuardData(void) {
s32 phi_v1;
// Node 0
if (num_guards > 0)
if (g_NumChrSlots > 0)
{
// Node 1
phi_s0 = 0;
phi_s2 = 0;
phi_v1 = num_guards;
phi_v1 = g_NumChrSlots;
loop_2:
// Node 2
temp_v0 = (ptr_guard_data + phi_s0);
temp_v0 = (g_ChrSlots + phi_s0);
if (temp_v0->unk1C != 0)
{
// Node 3
disable_sounds_attached_to_player_then_something(temp_v0->unk18);
chrpropDelist((ptr_guard_data + phi_s0)->unk18);
chrpropDisable((ptr_guard_data + phi_s0)->unk18);
chrpropFree((ptr_guard_data + phi_s0)->unk18);
phi_v1 = num_guards;
chrpropDelist((g_ChrSlots + phi_s0)->unk18);
chrpropDisable((g_ChrSlots + phi_s0)->unk18);
chrpropFree((g_ChrSlots + phi_s0)->unk18);
phi_v1 = g_NumChrSlots;
}
// Node 4
temp_s2 = (phi_s2 + 1);
@@ -47,8 +47,8 @@ loop_2:
GLOBAL_ASM(
.text
glabel cleanupGuardData
/* 03BEE0 7F0073B0 3C038003 */ lui $v1, %hi(num_guards)
/* 03BEE4 7F0073B4 8C63CC68 */ lw $v1, %lo(num_guards)($v1)
/* 03BEE0 7F0073B0 3C038003 */ lui $v1, %hi(g_NumChrSlots)
/* 03BEE4 7F0073B4 8C63CC68 */ lw $v1, %lo(g_NumChrSlots)($v1)
/* 03BEE8 7F0073B8 27BDFFD8 */ addiu $sp, $sp, -0x28
/* 03BEEC 7F0073BC AFB20020 */ sw $s2, 0x20($sp)
/* 03BEF0 7F0073C0 AFBF0024 */ sw $ra, 0x24($sp)
@@ -56,8 +56,8 @@ glabel cleanupGuardData
/* 03BEF8 7F0073C8 AFB00018 */ sw $s0, 0x18($sp)
/* 03BEFC 7F0073CC 1860001D */ blez $v1, .L7F007444
/* 03BF00 7F0073D0 00009025 */ move $s2, $zero
/* 03BF04 7F0073D4 3C118003 */ lui $s1, %hi(ptr_guard_data)
/* 03BF08 7F0073D8 2631CC64 */ addiu $s1, %lo(ptr_guard_data) # addiu $s1, $s1, -0x339c
/* 03BF04 7F0073D4 3C118003 */ lui $s1, %hi(g_ChrSlots)
/* 03BF08 7F0073D8 2631CC64 */ addiu $s1, %lo(g_ChrSlots) # addiu $s1, $s1, -0x339c
/* 03BF0C 7F0073DC 00008025 */ move $s0, $zero
.L7F0073E0:
/* 03BF10 7F0073E0 8E2E0000 */ lw $t6, ($s1)
@@ -79,8 +79,8 @@ glabel cleanupGuardData
/* 03BF50 7F007420 01505821 */ addu $t3, $t2, $s0
/* 03BF54 7F007424 0FC0E921 */ jal chrpropFree
/* 03BF58 7F007428 8D640018 */ lw $a0, 0x18($t3)
/* 03BF5C 7F00742C 3C038003 */ lui $v1, %hi(num_guards)
/* 03BF60 7F007430 8C63CC68 */ lw $v1, %lo(num_guards)($v1)
/* 03BF5C 7F00742C 3C038003 */ lui $v1, %hi(g_NumChrSlots)
/* 03BF60 7F007430 8C63CC68 */ lw $v1, %lo(g_NumChrSlots)($v1)
/* 03BF64 7F007434 26520001 */ addiu $s2, $s2, 1
.L7F007438:
/* 03BF68 7F007438 0243082A */ slt $at, $s2, $v1
+1
View File
@@ -8,6 +8,7 @@
#include "aicommands2.h"
#include "dyn.h"
#include "memp.h"
#include <macro.h>
//i belong in a header, probably to another file
+40 -171
View File
@@ -181,234 +181,103 @@ void gotoBelowDebugOption(void)
#ifdef NONMATCHING
#if defined(LEFTOVERDEBUG)
void gotoRightDebugOption(void)
{
s32 i;
if (g_DMenuSelectedOption < g_DMenuCurOffsets[0]) {
if (g_DMenuNumGroups >= 2) {
g_DMenuSelectedOption += g_DMenuCurOffsets[0];
if (g_DMenuSelectedOption < g_DMenuCurOffsets[0])
{
g_DMenuSelectedOption += g_DMenuCurOffsets[0];
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[1]) {
g_DMenuSelectedOption = g_DMenuCurOffsets[1] - 1;
}
}
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[1])
{
g_DMenuSelectedOption = g_DMenuCurOffsets[1] - 1;
}
return;
}
for (i = 0; i < g_DMenuNumGroups; i++) {
if (g_DMenuSelectedOption < g_DMenuCurOffsets[i]) {
for (i = 0; i < g_DMenuNumGroups; i++)
{
if (g_DMenuSelectedOption < g_DMenuCurOffsets[i])
{
g_DMenuSelectedOption = g_DMenuSelectedOption + g_DMenuCurOffsets[i] - g_DMenuCurOffsets[i - 1];
if (g_DMenuCurOffsets[i + 1] < 0) {
if (g_DMenuCurOffsets[i + 1] < 0)
{
g_DMenuSelectedOption -= g_DMenuCurOffsets[i];
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[0]) {
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[0])
{
g_DMenuSelectedOption = g_DMenuCurOffsets[0] - 1;
}
} else {
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[i + 1]) {
}
else
{
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[i + 1])
{
g_DMenuSelectedOption = g_DMenuCurOffsets[i + 1] - 1;
}
}
return;
}
}
}
#else
#if defined(LEFTOVERDEBUG)
GLOBAL_ASM(
.text
glabel gotoRightDebugOption
/* 0C4DF0 7F0902C0 3C038003 */ lui $v1, %hi(g_DMenuCurOffsets)
/* 0C4DF4 7F0902C4 8C636B84 */ lw $v1, %lo(g_DMenuCurOffsets)($v1)
/* 0C4DF8 7F0902C8 3C088003 */ lui $t0, %hi(g_DMenuSelectedOption)
/* 0C4DFC 7F0902CC 25086B70 */ addiu $t0, %lo(g_DMenuSelectedOption) # addiu $t0, $t0, 0x6b70
/* 0C4E00 7F0902D0 8D020000 */ lw $v0, ($t0)
/* 0C4E04 7F0902D4 8C640000 */ lw $a0, ($v1)
/* 0C4E08 7F0902D8 3C058003 */ lui $a1, %hi(g_DMenuNumGroups )
/* 0C4E0C 7F0902DC 0044082A */ slt $at, $v0, $a0
/* 0C4E10 7F0902E0 10200008 */ beqz $at, .L7F090304
/* 0C4E14 7F0902E4 00447021 */ addu $t6, $v0, $a0
/* 0C4E18 7F0902E8 AD0E0000 */ sw $t6, ($t0)
/* 0C4E1C 7F0902EC 8C650004 */ lw $a1, 4($v1)
/* 0C4E20 7F0902F0 01C5082A */ slt $at, $t6, $a1
/* 0C4E24 7F0902F4 14200027 */ bnez $at, .L7F090394
/* 0C4E28 7F0902F8 24B8FFFF */ addiu $t8, $a1, -1
/* 0C4E2C 7F0902FC 03E00008 */ jr $ra
/* 0C4E30 7F090300 AD180000 */ sw $t8, ($t0)
.L7F090304:
/* 0C4E34 7F090304 8CA56B80 */ lw $a1, %lo(g_DMenuNumGroups )($a1)
/* 0C4E38 7F090308 00002025 */ move $a0, $zero
/* 0C4E3C 7F09030C 00603025 */ move $a2, $v1
/* 0C4E40 7F090310 18A00020 */ blez $a1, .L7F090394
/* 0C4E44 7F090314 00000000 */ nop
.L7F090318:
/* 0C4E48 7F090318 8CC70000 */ lw $a3, ($a2)
/* 0C4E4C 7F09031C 24840001 */ addiu $a0, $a0, 1
/* 0C4E50 7F090320 0047082A */ slt $at, $v0, $a3
/* 0C4E54 7F090324 50200019 */ beql $at, $zero, .L7F09038C
/* 0C4E58 7F090328 0085082A */ slt $at, $a0, $a1
/* 0C4E5C 7F09032C 8CC9FFFC */ lw $t1, -4($a2)
/* 0C4E60 7F090330 0047C821 */ addu $t9, $v0, $a3
/* 0C4E64 7F090334 03295023 */ subu $t2, $t9, $t1
/* 0C4E68 7F090338 AD0A0000 */ sw $t2, ($t0)
/* 0C4E6C 7F09033C 8CC40004 */ lw $a0, 4($a2)
/* 0C4E70 7F090340 0483000B */ bgezl $a0, .L7F090370
/* 0C4E74 7F090344 8D180000 */ lw $t8, ($t0)
/* 0C4E78 7F090348 8CCC0000 */ lw $t4, ($a2)
/* 0C4E7C 7F09034C 014C6823 */ subu $t5, $t2, $t4
/* 0C4E80 7F090350 AD0D0000 */ sw $t5, ($t0)
/* 0C4E84 7F090354 8C640000 */ lw $a0, ($v1)
/* 0C4E88 7F090358 01A4082A */ slt $at, $t5, $a0
/* 0C4E8C 7F09035C 1420000D */ bnez $at, .L7F090394
/* 0C4E90 7F090360 248FFFFF */ addiu $t7, $a0, -1
/* 0C4E94 7F090364 03E00008 */ jr $ra
/* 0C4E98 7F090368 AD0F0000 */ sw $t7, ($t0)
/* 0C4E9C 7F09036C 8D180000 */ lw $t8, ($t0)
.L7F090370:
/* 0C4EA0 7F090370 2499FFFF */ addiu $t9, $a0, -1
/* 0C4EA4 7F090374 0304082A */ slt $at, $t8, $a0
/* 0C4EA8 7F090378 14200006 */ bnez $at, .L7F090394
/* 0C4EAC 7F09037C 00000000 */ nop
/* 0C4EB0 7F090380 03E00008 */ jr $ra
/* 0C4EB4 7F090384 AD190000 */ sw $t9, ($t0)
/* 0C4EB8 7F090388 0085082A */ slt $at, $a0, $a1
.L7F09038C:
/* 0C4EBC 7F09038C 1420FFE2 */ bnez $at, .L7F090318
/* 0C4EC0 7F090390 24C60004 */ addiu $a2, $a2, 4
.L7F090394:
/* 0C4EC4 7F090394 03E00008 */ jr $ra
/* 0C4EC8 7F090398 00000000 */ nop
)
#else
void gotoRightDebugOption(void)
{
}
#endif
#endif
#ifdef NONMATCHING
#if defined(LEFTOVERDEBUG)
void gotoLeftDebugOption(void)
{
s32 i;
// First group
if (g_DMenuSelectedOption < g_DMenuCurOffsets[0]) {
if (g_DMenuSelectedOption < g_DMenuCurOffsets[0])
{
s32 i;
for (i = 0; i < g_DMenuNumGroups - 1; i++);
for (i = 0; i < g_DMenuNumGroups - 1; i++)
{}
if (i > 0) {
g_DMenuSelectedOption += g_DMenuCurOffsets[i - 1];
g_DMenuSelectedOption += g_DMenuCurOffsets[i - 1];
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[i]) {
g_DMenuSelectedOption = g_DMenuCurOffsets[i] - 1;
}
}
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[i])
{
g_DMenuSelectedOption = g_DMenuCurOffsets[i] - 1;
}
return;
}
// Any other group
for (i = 0; g_DMenuSelectedOption >= g_DMenuCurOffsets[i]; i++);
for (i = 0; g_DMenuSelectedOption >= g_DMenuCurOffsets[i]; i++)
{}
g_DMenuSelectedOption -= g_DMenuCurOffsets[i - 1];
if (i - 2 >= 0) {
if (i - 2 >= 0)
{
g_DMenuSelectedOption += g_DMenuCurOffsets[i - 2];
}
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[i - 1]) {
if (g_DMenuSelectedOption >= g_DMenuCurOffsets[i - 1])
{
g_DMenuSelectedOption = g_DMenuCurOffsets[i - 1] - 1;
}
}
#else
#if defined(LEFTOVERDEBUG)
GLOBAL_ASM(
.text
glabel gotoLeftDebugOption
/* 0C4ECC 7F09039C 3C038003 */ lui $v1, %hi(g_DMenuCurOffsets)
/* 0C4ED0 7F0903A0 8C636B84 */ lw $v1, %lo(g_DMenuCurOffsets)($v1)
/* 0C4ED4 7F0903A4 3C078003 */ lui $a3, %hi(g_DMenuSelectedOption)
/* 0C4ED8 7F0903A8 24E76B70 */ addiu $a3, %lo(g_DMenuSelectedOption) # addiu $a3, $a3, 0x6b70
/* 0C4EDC 7F0903AC 8CE20000 */ lw $v0, ($a3)
/* 0C4EE0 7F0903B0 8C640000 */ lw $a0, ($v1)
/* 0C4EE4 7F0903B4 3C058003 */ lui $a1, %hi(g_DMenuNumGroups )
/* 0C4EE8 7F0903B8 0044082A */ slt $at, $v0, $a0
/* 0C4EEC 7F0903BC 50200016 */ beql $at, $zero, .L7F090418
/* 0C4EF0 7F0903C0 0044082A */ slt $at, $v0, $a0
/* 0C4EF4 7F0903C4 8CA56B80 */ lw $a1, %lo(g_DMenuNumGroups )($a1)
/* 0C4EF8 7F0903C8 00002025 */ move $a0, $zero
/* 0C4EFC 7F0903CC 24A5FFFF */ addiu $a1, $a1, -1
/* 0C4F00 7F0903D0 58A00006 */ blezl $a1, .L7F0903EC
/* 0C4F04 7F0903D4 00047080 */ sll $t6, $a0, 2
/* 0C4F08 7F0903D8 24840001 */ addiu $a0, $a0, 1
.L7F0903DC:
/* 0C4F0C 7F0903DC 0085082A */ slt $at, $a0, $a1
/* 0C4F10 7F0903E0 5420FFFE */ bnezl $at, .L7F0903DC
/* 0C4F14 7F0903E4 24840001 */ addiu $a0, $a0, 1
/* 0C4F18 7F0903E8 00047080 */ sll $t6, $a0, 2
.L7F0903EC:
/* 0C4F1C 7F0903EC 006E2821 */ addu $a1, $v1, $t6
/* 0C4F20 7F0903F0 8CAFFFFC */ lw $t7, -4($a1)
/* 0C4F24 7F0903F4 004FC021 */ addu $t8, $v0, $t7
/* 0C4F28 7F0903F8 ACF80000 */ sw $t8, ($a3)
/* 0C4F2C 7F0903FC 8CA60000 */ lw $a2, ($a1)
/* 0C4F30 7F090400 0306082A */ slt $at, $t8, $a2
/* 0C4F34 7F090404 1420001E */ bnez $at, .L7F090480
/* 0C4F38 7F090408 24C8FFFF */ addiu $t0, $a2, -1
/* 0C4F3C 7F09040C 03E00008 */ jr $ra
/* 0C4F40 7F090410 ACE80000 */ sw $t0, ($a3)
/* 0C4F44 7F090414 0044082A */ slt $at, $v0, $a0
.L7F090418:
/* 0C4F48 7F090418 14200008 */ bnez $at, .L7F09043C
/* 0C4F4C 7F09041C 00002825 */ move $a1, $zero
/* 0C4F50 7F090420 00602025 */ move $a0, $v1
/* 0C4F54 7F090424 8C890004 */ lw $t1, 4($a0)
.L7F090428:
/* 0C4F58 7F090428 24A50001 */ addiu $a1, $a1, 1
/* 0C4F5C 7F09042C 24840004 */ addiu $a0, $a0, 4
/* 0C4F60 7F090430 0049082A */ slt $at, $v0, $t1
/* 0C4F64 7F090434 5020FFFC */ beql $at, $zero, .L7F090428
/* 0C4F68 7F090438 8C890004 */ lw $t1, 4($a0)
.L7F09043C:
/* 0C4F6C 7F09043C 00055080 */ sll $t2, $a1, 2
/* 0C4F70 7F090440 006A2021 */ addu $a0, $v1, $t2
/* 0C4F74 7F090444 8C8BFFFC */ lw $t3, -4($a0)
/* 0C4F78 7F090448 24ADFFFE */ addiu $t5, $a1, -2
/* 0C4F7C 7F09044C 004B6023 */ subu $t4, $v0, $t3
/* 0C4F80 7F090450 05A00004 */ bltz $t5, .L7F090464
/* 0C4F84 7F090454 ACEC0000 */ sw $t4, ($a3)
/* 0C4F88 7F090458 8C8FFFF8 */ lw $t7, -8($a0)
/* 0C4F8C 7F09045C 018FC021 */ addu $t8, $t4, $t7
/* 0C4F90 7F090460 ACF80000 */ sw $t8, ($a3)
.L7F090464:
/* 0C4F94 7F090464 8C82FFFC */ lw $v0, -4($a0)
/* 0C4F98 7F090468 8CF90000 */ lw $t9, ($a3)
/* 0C4F9C 7F09046C 2448FFFF */ addiu $t0, $v0, -1
/* 0C4FA0 7F090470 0322082A */ slt $at, $t9, $v0
/* 0C4FA4 7F090474 14200002 */ bnez $at, .L7F090480
/* 0C4FA8 7F090478 00000000 */ nop
/* 0C4FAC 7F09047C ACE80000 */ sw $t0, ($a3)
.L7F090480:
/* 0C4FB0 7F090480 03E00008 */ jr $ra
/* 0C4FB4 7F090484 00000000 */ nop
)
#else
void gotoLeftDebugOption(void)
{
}
#endif
#endif
File diff suppressed because it is too large. Load diff
+1 -1
View File
@@ -31,7 +31,7 @@ s32 get_debug_joy2skyedit_flag(void);
s32 get_debug_joy2hitsedit_flag(void);
s32 get_debug_joy2detailedit_flag(void);
s32 get_debug_explosioninfo_flag(void);
s32 get_debug_prroomloads_flag(void);
s32 debugIsRoomStateDebugEnabled(void);
s32 get_debug_VisCVG_flag(void);
void set_debug_VisCVG_flag(s32 flag);
s32 get_debug_007_unlock_flag(void);
Loaded 100 of 216 files, more files were not shown because too many files have changed in this diff. Show more