This commit is contained in:
TakaRikka
2021-12-04 05:29:00 -08:00
896 changed files with 8438 additions and 9115 deletions
+1 -1
View File
@@ -15,6 +15,6 @@ jobs:
with:
token: ${{secrets.MY_REPO_PAT}}
- name: Copy in dol and compilers
run: cp /tmp/baserom.dol ./baserom.dol && cp -r /tmp/mwcc_compiler/ tools/mwcc_compiler && chown root /github/home/
run: cp /tmp/baserom.dol ./baserom.dol && cp -r /tmp/mwcc_compiler/ tools/mwcc_compiler && cp tools/mwcc_compiler/2.7/mwcceppc.exe tools/mwcc_compiler/2.7/mwcceppc_patched.exe && chown root /github/home/
- name: Run Make (OK)
run: make
+30 -18
View File
@@ -19,7 +19,8 @@ TARGET_COL := wii
TARGET := dolzel2
BUILD_DIR := build/$(TARGET)
BUILD_PATH := build
BUILD_DIR := $(BUILD_PATH)/$(TARGET)
SRC_DIRS := $(shell find src/ libs/ -type f -name '*.cpp')
ASM_DIRS := $(shell find asm/ -type f -name '*.s')
@@ -33,7 +34,7 @@ ELF := $(DOL:.dol=.elf)
MAP := $(BUILD_DIR)/dolzel2.map
# include list of object files
-include obj_files.mk
include obj_files.mk
#-------------------------------------------------------------------------------
# Tools
@@ -60,15 +61,15 @@ endif
AS := $(DEVKITPPC)/bin/powerpc-eabi-as
OBJCOPY := $(DEVKITPPC)/bin/powerpc-eabi-objcopy
STRIP := $(DEVKITPPC)/bin/powerpc-eabi-strip
CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc.exe
CC := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwcceppc_patched.exe
LD := $(WINE) tools/mwcc_compiler/$(MWCC_VERSION)/mwldeppc.exe
ELF2DOL := tools/elf2dol
ELF2DOL := $(BUILD_PATH)/elf2dol
PYTHON := python3
ICONV := iconv
DOXYGEN := doxygen
MAKEREL := tools/makerel.py
IMAGENAME := gz2e01.iso
POSTPROC := tools/postprocess.py
# Options
INCLUDES := -i include -i include/dolphin/ -i src
@@ -95,44 +96,52 @@ default: all
all: dirs $(DOL)
ALL_DIRS := build $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) $(ASM_DIRS))
# Make sure build directory exists before compiling anything
dirs:
$(shell mkdir -p $(ALL_DIRS))
@mkdir -p build
@mkdir -p $(BUILD_DIR)
$(DOL): $(ELF) | tools
$(ELF2DOL) $< $@ $(SDATA_PDHR) $(SBSS_PDHR) $(TARGET_COL)
$(SHA1SUM) -c $(TARGET).sha1
clean:
rm -f -d -r build
$(MAKE) -C tools clean
rm -f -d -r $(BUILD_DIR)/libs
rm -f -d -r $(BUILD_DIR)/src
rm -f $(ELF)
rm -f $(DOL)
rm -f $(BUILD_DIR)/*.a
tools:
@$(MAKE) -C tools
clean_all:
rm -f -d -r build
clean_rels:
rm -f -d -r $(BUILD_DIR)/rel
rm -f $(BUILD_PATH)/*.rel
tools: $(ELF2DOL)
assets:
@cd game; python3 ../tools/extract_game_assets.py ../$(IMAGENAME)
@cd game; $(PYTHON) ../tools/extract_game_assets.py ../$(IMAGENAME)
docs:
$(DOXYGEN) Doxyfile
rels: $(ELF) $(RELS)
@echo generating RELs from .plf
@python3 tools/makerel.py build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF)
@$(PYTHON) $(MAKEREL) build --string-table $(BUILD_DIR)/frameworkF.str $(RELS) $(ELF)
$(ELF): $(LIBS) $(O_FILES)
@echo $(O_FILES) > build/o_files
@python3 tools/lcf.py dol --output $(LDSCRIPT)
@$(PYTHON) tools/lcf.py dol --output $(LDSCRIPT)
$(LD) -application $(LDFLAGS) -o $@ -lcf $(LDSCRIPT) @build/o_files $(LIBS)
#
$(BUILD_DIR)/%.o: %.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) -c -o $@ $(basename $@).cpp
# shared cpp files for RELs
$(BUILD_DIR)/rel/%.o: rel/%.cpp
@@ -142,6 +151,9 @@ $(BUILD_DIR)/rel/%.o: rel/%.cpp
# include library and rel makefiles
-include include_link.mk
# tools
include tools/elf2dol/Makefile
### Debug Print ###
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
@@ -1,17 +0,0 @@
lbl_8026FA80:
/* 8026FA80 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026FA84 EC 20 00 72 */ fmuls f1, f0, f1
/* 8026FA88 FC 01 10 40 */ fcmpo cr0, f1, f2
/* 8026FA8C 40 81 00 0C */ ble lbl_8026FA98
/* 8026FA90 FC 20 10 90 */ fmr f1, f2
/* 8026FA94 48 00 00 14 */ b lbl_8026FAA8
lbl_8026FA98:
/* 8026FA98 FC 00 10 50 */ fneg f0, f2
/* 8026FA9C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FAA0 40 80 00 08 */ bge lbl_8026FAA8
/* 8026FAA4 FC 20 00 90 */ fmr f1, f0
lbl_8026FAA8:
/* 8026FAA8 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026FAAC EC 00 08 28 */ fsubs f0, f0, f1
/* 8026FAB0 D0 03 00 00 */ stfs f0, 0(r3)
/* 8026FAB4 4E 80 00 20 */ blr
@@ -1,20 +0,0 @@
lbl_8026FA3C:
/* 8026FA3C C0 03 00 00 */ lfs f0, 0(r3)
/* 8026FA40 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 8026FA44 4D 82 00 20 */ beqlr
/* 8026FA48 EC 01 00 28 */ fsubs f0, f1, f0
/* 8026FA4C EC 22 00 32 */ fmuls f1, f2, f0
/* 8026FA50 FC 01 18 40 */ fcmpo cr0, f1, f3
/* 8026FA54 40 81 00 0C */ ble lbl_8026FA60
/* 8026FA58 FC 20 18 90 */ fmr f1, f3
/* 8026FA5C 48 00 00 14 */ b lbl_8026FA70
lbl_8026FA60:
/* 8026FA60 FC 00 18 50 */ fneg f0, f3
/* 8026FA64 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FA68 40 80 00 08 */ bge lbl_8026FA70
/* 8026FA6C FC 20 00 90 */ fmr f1, f0
lbl_8026FA70:
/* 8026FA70 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026FA74 EC 00 08 2A */ fadds f0, f0, f1
/* 8026FA78 D0 03 00 00 */ stfs f0, 0(r3)
/* 8026FA7C 4E 80 00 20 */ blr
@@ -1,24 +0,0 @@
lbl_80270608:
/* 80270608 A8 E3 00 00 */ lha r7, 0(r3)
/* 8027060C 7C 07 20 50 */ subf r0, r7, r4
/* 80270610 7C 04 07 34 */ extsh r4, r0
/* 80270614 7C A0 07 34 */ extsh r0, r5
/* 80270618 7C 04 03 D6 */ divw r0, r4, r0
/* 8027061C 7C 04 07 34 */ extsh r4, r0
/* 80270620 7C C0 07 34 */ extsh r0, r6
/* 80270624 7C 04 00 00 */ cmpw r4, r0
/* 80270628 40 81 00 10 */ ble lbl_80270638
/* 8027062C 7C 07 32 14 */ add r0, r7, r6
/* 80270630 B0 03 00 00 */ sth r0, 0(r3)
/* 80270634 4E 80 00 20 */ blr
lbl_80270638:
/* 80270638 7C 00 00 D0 */ neg r0, r0
/* 8027063C 7C 04 00 00 */ cmpw r4, r0
/* 80270640 40 80 00 10 */ bge lbl_80270650
/* 80270644 7C 06 38 50 */ subf r0, r6, r7
/* 80270648 B0 03 00 00 */ sth r0, 0(r3)
/* 8027064C 4E 80 00 20 */ blr
lbl_80270650:
/* 80270650 7C 07 22 14 */ add r0, r7, r4
/* 80270654 B0 03 00 00 */ sth r0, 0(r3)
/* 80270658 4E 80 00 20 */ blr
@@ -1,57 +0,0 @@
lbl_80270540:
/* 80270540 A9 03 00 00 */ lha r8, 0(r3)
/* 80270544 7C 89 07 34 */ extsh r9, r4
/* 80270548 7C 08 48 50 */ subf r0, r8, r9
/* 8027054C 7C 0A 07 34 */ extsh r10, r0
/* 80270550 7C 08 48 00 */ cmpw r8, r9
/* 80270554 41 82 00 A4 */ beq lbl_802705F8
/* 80270558 7C A0 07 34 */ extsh r0, r5
/* 8027055C 7C 0A 03 D6 */ divw r0, r10, r0
/* 80270560 7C 05 07 34 */ extsh r5, r0
/* 80270564 7C E0 07 34 */ extsh r0, r7
/* 80270568 7C 05 00 00 */ cmpw r5, r0
/* 8027056C 41 81 00 10 */ bgt lbl_8027057C
/* 80270570 7C 00 00 D0 */ neg r0, r0
/* 80270574 7C 05 00 00 */ cmpw r5, r0
/* 80270578 40 80 00 3C */ bge lbl_802705B4
lbl_8027057C:
/* 8027057C 7C C0 07 34 */ extsh r0, r6
/* 80270580 7C 05 00 00 */ cmpw r5, r0
/* 80270584 40 81 00 08 */ ble lbl_8027058C
/* 80270588 7C C5 33 78 */ mr r5, r6
lbl_8027058C:
/* 8027058C 7C A4 07 34 */ extsh r4, r5
/* 80270590 7C C0 07 34 */ extsh r0, r6
/* 80270594 7C 00 00 D0 */ neg r0, r0
/* 80270598 7C 04 00 00 */ cmpw r4, r0
/* 8027059C 40 80 00 08 */ bge lbl_802705A4
/* 802705A0 7C 05 07 34 */ extsh r5, r0
lbl_802705A4:
/* 802705A4 A8 03 00 00 */ lha r0, 0(r3)
/* 802705A8 7C 00 2A 14 */ add r0, r0, r5
/* 802705AC B0 03 00 00 */ sth r0, 0(r3)
/* 802705B0 48 00 00 48 */ b lbl_802705F8
lbl_802705B4:
/* 802705B4 7D 40 07 35 */ extsh. r0, r10
/* 802705B8 41 80 00 24 */ blt lbl_802705DC
/* 802705BC 7C 08 3A 14 */ add r0, r8, r7
/* 802705C0 B0 03 00 00 */ sth r0, 0(r3)
/* 802705C4 A8 03 00 00 */ lha r0, 0(r3)
/* 802705C8 7C 00 48 50 */ subf r0, r0, r9
/* 802705CC 7C 00 07 35 */ extsh. r0, r0
/* 802705D0 41 81 00 28 */ bgt lbl_802705F8
/* 802705D4 B0 83 00 00 */ sth r4, 0(r3)
/* 802705D8 48 00 00 20 */ b lbl_802705F8
lbl_802705DC:
/* 802705DC 7C 07 40 50 */ subf r0, r7, r8
/* 802705E0 B0 03 00 00 */ sth r0, 0(r3)
/* 802705E4 A8 03 00 00 */ lha r0, 0(r3)
/* 802705E8 7C 00 48 50 */ subf r0, r0, r9
/* 802705EC 7C 00 07 35 */ extsh. r0, r0
/* 802705F0 41 80 00 08 */ blt lbl_802705F8
/* 802705F4 B0 83 00 00 */ sth r4, 0(r3)
lbl_802705F8:
/* 802705F8 A8 03 00 00 */ lha r0, 0(r3)
/* 802705FC 7C 00 48 50 */ subf r0, r0, r9
/* 80270600 7C 03 07 34 */ extsh r3, r0
/* 80270604 4E 80 00 20 */ blr
@@ -1,130 +0,0 @@
lbl_80270178:
/* 80270178 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8027017C 7C 08 02 A6 */ mflr r0
/* 80270180 90 01 00 74 */ stw r0, 0x74(r1)
/* 80270184 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 80270188 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
/* 8027018C DB C1 00 50 */ stfd f30, 0x50(r1)
/* 80270190 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */
/* 80270194 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80270198 93 C1 00 48 */ stw r30, 0x48(r1)
/* 8027019C 7C 7E 1B 78 */ mr r30, r3
/* 802701A0 7C 9F 23 78 */ mr r31, r4
/* 802701A4 FF C0 08 90 */ fmr f30, f1
/* 802701A8 FF E0 10 90 */ fmr f31, f2
/* 802701AC 4B FF 6E C1 */ bl __ne__4cXyzCFRC3Vec
/* 802701B0 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 802701B4 41 82 01 74 */ beq lbl_80270328
/* 802701B8 38 61 00 24 */ addi r3, r1, 0x24
/* 802701BC 7F C4 F3 78 */ mr r4, r30
/* 802701C0 7F E5 FB 78 */ mr r5, r31
/* 802701C4 4B FF 69 71 */ bl __mi__4cXyzCFRC3Vec
/* 802701C8 38 61 00 18 */ addi r3, r1, 0x18
/* 802701CC 38 81 00 24 */ addi r4, r1, 0x24
/* 802701D0 FC 20 F0 90 */ fmr f1, f30
/* 802701D4 4B FF 69 B1 */ bl __ml__4cXyzCFf
/* 802701D8 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 802701DC D0 01 00 30 */ stfs f0, 0x30(r1)
/* 802701E0 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 802701E4 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 802701E8 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 802701EC D0 01 00 38 */ stfs f0, 0x38(r1)
/* 802701F0 38 61 00 30 */ addi r3, r1, 0x30
/* 802701F4 48 0D 6F 45 */ bl PSVECSquareMag
/* 802701F8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 802701FC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270200 40 81 00 58 */ ble lbl_80270258
/* 80270204 FC 00 08 34 */ frsqrte f0, f1
/* 80270208 C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 8027020C FC 44 00 32 */ fmul f2, f4, f0
/* 80270210 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 80270214 FC 00 00 32 */ fmul f0, f0, f0
/* 80270218 FC 01 00 32 */ fmul f0, f1, f0
/* 8027021C FC 03 00 28 */ fsub f0, f3, f0
/* 80270220 FC 02 00 32 */ fmul f0, f2, f0
/* 80270224 FC 44 00 32 */ fmul f2, f4, f0
/* 80270228 FC 00 00 32 */ fmul f0, f0, f0
/* 8027022C FC 01 00 32 */ fmul f0, f1, f0
/* 80270230 FC 03 00 28 */ fsub f0, f3, f0
/* 80270234 FC 02 00 32 */ fmul f0, f2, f0
/* 80270238 FC 44 00 32 */ fmul f2, f4, f0
/* 8027023C FC 00 00 32 */ fmul f0, f0, f0
/* 80270240 FC 01 00 32 */ fmul f0, f1, f0
/* 80270244 FC 03 00 28 */ fsub f0, f3, f0
/* 80270248 FC 02 00 32 */ fmul f0, f2, f0
/* 8027024C FC 21 00 32 */ fmul f1, f1, f0
/* 80270250 FC 20 08 18 */ frsp f1, f1
/* 80270254 48 00 00 88 */ b lbl_802702DC
lbl_80270258:
/* 80270258 C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 8027025C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270260 40 80 00 10 */ bge lbl_80270270
/* 80270264 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80270268 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 8027026C 48 00 00 70 */ b lbl_802702DC
lbl_80270270:
/* 80270270 D0 21 00 08 */ stfs f1, 8(r1)
/* 80270274 80 81 00 08 */ lwz r4, 8(r1)
/* 80270278 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 8027027C 3C 00 7F 80 */ lis r0, 0x7f80
/* 80270280 7C 03 00 00 */ cmpw r3, r0
/* 80270284 41 82 00 14 */ beq lbl_80270298
/* 80270288 40 80 00 40 */ bge lbl_802702C8
/* 8027028C 2C 03 00 00 */ cmpwi r3, 0
/* 80270290 41 82 00 20 */ beq lbl_802702B0
/* 80270294 48 00 00 34 */ b lbl_802702C8
lbl_80270298:
/* 80270298 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8027029C 41 82 00 0C */ beq lbl_802702A8
/* 802702A0 38 00 00 01 */ li r0, 1
/* 802702A4 48 00 00 28 */ b lbl_802702CC
lbl_802702A8:
/* 802702A8 38 00 00 02 */ li r0, 2
/* 802702AC 48 00 00 20 */ b lbl_802702CC
lbl_802702B0:
/* 802702B0 54 80 02 7F */ clrlwi. r0, r4, 9
/* 802702B4 41 82 00 0C */ beq lbl_802702C0
/* 802702B8 38 00 00 05 */ li r0, 5
/* 802702BC 48 00 00 10 */ b lbl_802702CC
lbl_802702C0:
/* 802702C0 38 00 00 03 */ li r0, 3
/* 802702C4 48 00 00 08 */ b lbl_802702CC
lbl_802702C8:
/* 802702C8 38 00 00 04 */ li r0, 4
lbl_802702CC:
/* 802702CC 2C 00 00 01 */ cmpwi r0, 1
/* 802702D0 40 82 00 0C */ bne lbl_802702DC
/* 802702D4 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 802702D8 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_802702DC:
/* 802702DC FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 802702E0 40 81 00 38 */ ble lbl_80270318
/* 802702E4 38 61 00 0C */ addi r3, r1, 0xc
/* 802702E8 38 81 00 30 */ addi r4, r1, 0x30
/* 802702EC 4B FF 6A 45 */ bl normZP__4cXyzCFv
/* 802702F0 C0 01 00 0C */ lfs f0, 0xc(r1)
/* 802702F4 D0 01 00 30 */ stfs f0, 0x30(r1)
/* 802702F8 C0 01 00 10 */ lfs f0, 0x10(r1)
/* 802702FC D0 01 00 34 */ stfs f0, 0x34(r1)
/* 80270300 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 80270304 D0 01 00 38 */ stfs f0, 0x38(r1)
/* 80270308 38 61 00 30 */ addi r3, r1, 0x30
/* 8027030C 7C 64 1B 78 */ mr r4, r3
/* 80270310 FC 20 F8 90 */ fmr f1, f31
/* 80270314 48 0D 6D C5 */ bl PSVECScale
lbl_80270318:
/* 80270318 7F C3 F3 78 */ mr r3, r30
/* 8027031C 38 81 00 30 */ addi r4, r1, 0x30
/* 80270320 7F C5 F3 78 */ mr r5, r30
/* 80270324 48 0D 6D 91 */ bl PSVECSubtract
lbl_80270328:
/* 80270328 E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
/* 8027032C CB E1 00 60 */ lfd f31, 0x60(r1)
/* 80270330 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */
/* 80270334 CB C1 00 50 */ lfd f30, 0x50(r1)
/* 80270338 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 8027033C 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80270340 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80270344 7C 08 03 A6 */ mtlr r0
/* 80270348 38 21 00 70 */ addi r1, r1, 0x70
/* 8027034C 4E 80 00 20 */ blr
@@ -1,137 +0,0 @@
lbl_80270350:
/* 80270350 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 80270354 7C 08 02 A6 */ mflr r0
/* 80270358 90 01 00 74 */ stw r0, 0x74(r1)
/* 8027035C DB E1 00 60 */ stfd f31, 0x60(r1)
/* 80270360 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
/* 80270364 DB C1 00 50 */ stfd f30, 0x50(r1)
/* 80270368 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */
/* 8027036C 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 80270370 7C 7F 1B 78 */ mr r31, r3
/* 80270374 7C 85 23 78 */ mr r5, r4
/* 80270378 FF C0 08 90 */ fmr f30, f1
/* 8027037C FF E0 10 90 */ fmr f31, f2
/* 80270380 C0 23 00 00 */ lfs f1, 0(r3)
/* 80270384 C0 04 00 00 */ lfs f0, 0(r4)
/* 80270388 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8027038C 40 82 00 14 */ bne lbl_802703A0
/* 80270390 C0 3F 00 08 */ lfs f1, 8(r31)
/* 80270394 C0 05 00 08 */ lfs f0, 8(r5)
/* 80270398 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8027039C 41 82 01 80 */ beq lbl_8027051C
lbl_802703A0:
/* 802703A0 38 61 00 24 */ addi r3, r1, 0x24
/* 802703A4 7F E4 FB 78 */ mr r4, r31
/* 802703A8 4B FF 67 8D */ bl __mi__4cXyzCFRC3Vec
/* 802703AC 38 61 00 18 */ addi r3, r1, 0x18
/* 802703B0 38 81 00 24 */ addi r4, r1, 0x24
/* 802703B4 FC 20 F0 90 */ fmr f1, f30
/* 802703B8 4B FF 67 CD */ bl __ml__4cXyzCFf
/* 802703BC C0 41 00 18 */ lfs f2, 0x18(r1)
/* 802703C0 D0 41 00 30 */ stfs f2, 0x30(r1)
/* 802703C4 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 802703C8 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 802703CC C0 21 00 20 */ lfs f1, 0x20(r1)
/* 802703D0 D0 21 00 38 */ stfs f1, 0x38(r1)
/* 802703D4 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 802703D8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 802703DC D0 01 00 10 */ stfs f0, 0x10(r1)
/* 802703E0 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 802703E4 38 61 00 0C */ addi r3, r1, 0xc
/* 802703E8 48 0D 6D 51 */ bl PSVECSquareMag
/* 802703EC C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 802703F0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802703F4 40 81 00 58 */ ble lbl_8027044C
/* 802703F8 FC 00 08 34 */ frsqrte f0, f1
/* 802703FC C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 80270400 FC 44 00 32 */ fmul f2, f4, f0
/* 80270404 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 80270408 FC 00 00 32 */ fmul f0, f0, f0
/* 8027040C FC 01 00 32 */ fmul f0, f1, f0
/* 80270410 FC 03 00 28 */ fsub f0, f3, f0
/* 80270414 FC 02 00 32 */ fmul f0, f2, f0
/* 80270418 FC 44 00 32 */ fmul f2, f4, f0
/* 8027041C FC 00 00 32 */ fmul f0, f0, f0
/* 80270420 FC 01 00 32 */ fmul f0, f1, f0
/* 80270424 FC 03 00 28 */ fsub f0, f3, f0
/* 80270428 FC 02 00 32 */ fmul f0, f2, f0
/* 8027042C FC 44 00 32 */ fmul f2, f4, f0
/* 80270430 FC 00 00 32 */ fmul f0, f0, f0
/* 80270434 FC 01 00 32 */ fmul f0, f1, f0
/* 80270438 FC 03 00 28 */ fsub f0, f3, f0
/* 8027043C FC 02 00 32 */ fmul f0, f2, f0
/* 80270440 FC 21 00 32 */ fmul f1, f1, f0
/* 80270444 FC 20 08 18 */ frsp f1, f1
/* 80270448 48 00 00 88 */ b lbl_802704D0
lbl_8027044C:
/* 8027044C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 80270450 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270454 40 80 00 10 */ bge lbl_80270464
/* 80270458 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8027045C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 80270460 48 00 00 70 */ b lbl_802704D0
lbl_80270464:
/* 80270464 D0 21 00 08 */ stfs f1, 8(r1)
/* 80270468 80 81 00 08 */ lwz r4, 8(r1)
/* 8027046C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 80270470 3C 00 7F 80 */ lis r0, 0x7f80
/* 80270474 7C 03 00 00 */ cmpw r3, r0
/* 80270478 41 82 00 14 */ beq lbl_8027048C
/* 8027047C 40 80 00 40 */ bge lbl_802704BC
/* 80270480 2C 03 00 00 */ cmpwi r3, 0
/* 80270484 41 82 00 20 */ beq lbl_802704A4
/* 80270488 48 00 00 34 */ b lbl_802704BC
lbl_8027048C:
/* 8027048C 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270490 41 82 00 0C */ beq lbl_8027049C
/* 80270494 38 00 00 01 */ li r0, 1
/* 80270498 48 00 00 28 */ b lbl_802704C0
lbl_8027049C:
/* 8027049C 38 00 00 02 */ li r0, 2
/* 802704A0 48 00 00 20 */ b lbl_802704C0
lbl_802704A4:
/* 802704A4 54 80 02 7F */ clrlwi. r0, r4, 9
/* 802704A8 41 82 00 0C */ beq lbl_802704B4
/* 802704AC 38 00 00 05 */ li r0, 5
/* 802704B0 48 00 00 10 */ b lbl_802704C0
lbl_802704B4:
/* 802704B4 38 00 00 03 */ li r0, 3
/* 802704B8 48 00 00 08 */ b lbl_802704C0
lbl_802704BC:
/* 802704BC 38 00 00 04 */ li r0, 4
lbl_802704C0:
/* 802704C0 2C 00 00 01 */ cmpwi r0, 1
/* 802704C4 40 82 00 0C */ bne lbl_802704D0
/* 802704C8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 802704CC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_802704D0:
/* 802704D0 FC 00 0A 10 */ fabs f0, f1
/* 802704D4 FC 40 00 18 */ frsp f2, f0
/* 802704D8 C0 02 B8 00 */ lfs f0, lit_2382(r2)
/* 802704DC FC 02 00 40 */ fcmpo cr0, f2, f0
/* 802704E0 41 80 00 3C */ blt lbl_8027051C
/* 802704E4 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 802704E8 40 81 00 14 */ ble lbl_802704FC
/* 802704EC 38 61 00 30 */ addi r3, r1, 0x30
/* 802704F0 7C 64 1B 78 */ mr r4, r3
/* 802704F4 EC 3F 08 24 */ fdivs f1, f31, f1
/* 802704F8 48 0D 6B E1 */ bl PSVECScale
lbl_802704FC:
/* 802704FC C0 3F 00 00 */ lfs f1, 0(r31)
/* 80270500 C0 01 00 30 */ lfs f0, 0x30(r1)
/* 80270504 EC 01 00 28 */ fsubs f0, f1, f0
/* 80270508 D0 1F 00 00 */ stfs f0, 0(r31)
/* 8027050C C0 3F 00 08 */ lfs f1, 8(r31)
/* 80270510 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 80270514 EC 01 00 28 */ fsubs f0, f1, f0
/* 80270518 D0 1F 00 08 */ stfs f0, 8(r31)
lbl_8027051C:
/* 8027051C E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
/* 80270520 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 80270524 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */
/* 80270528 CB C1 00 50 */ lfd f30, 0x50(r1)
/* 8027052C 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80270530 80 01 00 74 */ lwz r0, 0x74(r1)
/* 80270534 7C 08 03 A6 */ mtlr r0
/* 80270538 38 21 00 70 */ addi r1, r1, 0x70
/* 8027053C 4E 80 00 20 */ blr
@@ -1,250 +0,0 @@
lbl_8026FDF4:
/* 8026FDF4 94 21 FF 60 */ stwu r1, -0xa0(r1)
/* 8026FDF8 7C 08 02 A6 */ mflr r0
/* 8026FDFC 90 01 00 A4 */ stw r0, 0xa4(r1)
/* 8026FE00 DB E1 00 90 */ stfd f31, 0x90(r1)
/* 8026FE04 F3 E1 00 98 */ psq_st f31, 152(r1), 0, 0 /* qr0 */
/* 8026FE08 DB C1 00 80 */ stfd f30, 0x80(r1)
/* 8026FE0C F3 C1 00 88 */ psq_st f30, 136(r1), 0, 0 /* qr0 */
/* 8026FE10 DB A1 00 70 */ stfd f29, 0x70(r1)
/* 8026FE14 F3 A1 00 78 */ psq_st f29, 120(r1), 0, 0 /* qr0 */
/* 8026FE18 DB 81 00 60 */ stfd f28, 0x60(r1)
/* 8026FE1C F3 81 00 68 */ psq_st f28, 104(r1), 0, 0 /* qr0 */
/* 8026FE20 93 E1 00 5C */ stw r31, 0x5c(r1)
/* 8026FE24 93 C1 00 58 */ stw r30, 0x58(r1)
/* 8026FE28 7C 7E 1B 78 */ mr r30, r3
/* 8026FE2C 7C 9F 23 78 */ mr r31, r4
/* 8026FE30 FF A0 08 90 */ fmr f29, f1
/* 8026FE34 FF C0 10 90 */ fmr f30, f2
/* 8026FE38 FF E0 18 90 */ fmr f31, f3
/* 8026FE3C C0 23 00 00 */ lfs f1, 0(r3)
/* 8026FE40 C0 04 00 00 */ lfs f0, 0(r4)
/* 8026FE44 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8026FE48 40 82 00 14 */ bne lbl_8026FE5C
/* 8026FE4C C0 3E 00 08 */ lfs f1, 8(r30)
/* 8026FE50 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8026FE54 FC 01 00 00 */ fcmpu cr0, f1, f0
/* 8026FE58 41 82 01 D4 */ beq lbl_8027002C
lbl_8026FE5C:
/* 8026FE5C 38 61 00 34 */ addi r3, r1, 0x34
/* 8026FE60 7F C4 F3 78 */ mr r4, r30
/* 8026FE64 7F E5 FB 78 */ mr r5, r31
/* 8026FE68 4B FF 6C CD */ bl __mi__4cXyzCFRC3Vec
/* 8026FE6C C0 41 00 34 */ lfs f2, 0x34(r1)
/* 8026FE70 D0 41 00 40 */ stfs f2, 0x40(r1)
/* 8026FE74 C0 01 00 38 */ lfs f0, 0x38(r1)
/* 8026FE78 D0 01 00 44 */ stfs f0, 0x44(r1)
/* 8026FE7C C0 21 00 3C */ lfs f1, 0x3c(r1)
/* 8026FE80 D0 21 00 48 */ stfs f1, 0x48(r1)
/* 8026FE84 D0 41 00 1C */ stfs f2, 0x1c(r1)
/* 8026FE88 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 8026FE8C D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8026FE90 D0 21 00 24 */ stfs f1, 0x24(r1)
/* 8026FE94 38 61 00 1C */ addi r3, r1, 0x1c
/* 8026FE98 48 0D 72 A1 */ bl PSVECSquareMag
/* 8026FE9C C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 8026FEA0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FEA4 40 81 00 58 */ ble lbl_8026FEFC
/* 8026FEA8 FC 00 08 34 */ frsqrte f0, f1
/* 8026FEAC C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 8026FEB0 FC 44 00 32 */ fmul f2, f4, f0
/* 8026FEB4 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 8026FEB8 FC 00 00 32 */ fmul f0, f0, f0
/* 8026FEBC FC 01 00 32 */ fmul f0, f1, f0
/* 8026FEC0 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FEC4 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FEC8 FC 44 00 32 */ fmul f2, f4, f0
/* 8026FECC FC 00 00 32 */ fmul f0, f0, f0
/* 8026FED0 FC 01 00 32 */ fmul f0, f1, f0
/* 8026FED4 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FED8 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FEDC FC 44 00 32 */ fmul f2, f4, f0
/* 8026FEE0 FC 00 00 32 */ fmul f0, f0, f0
/* 8026FEE4 FC 01 00 32 */ fmul f0, f1, f0
/* 8026FEE8 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FEEC FC 02 00 32 */ fmul f0, f2, f0
/* 8026FEF0 FC 21 00 32 */ fmul f1, f1, f0
/* 8026FEF4 FC 20 08 18 */ frsp f1, f1
/* 8026FEF8 48 00 00 88 */ b lbl_8026FF80
lbl_8026FEFC:
/* 8026FEFC C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 8026FF00 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FF04 40 80 00 10 */ bge lbl_8026FF14
/* 8026FF08 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8026FF0C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 8026FF10 48 00 00 70 */ b lbl_8026FF80
lbl_8026FF14:
/* 8026FF14 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 8026FF18 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8026FF1C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 8026FF20 3C 00 7F 80 */ lis r0, 0x7f80
/* 8026FF24 7C 03 00 00 */ cmpw r3, r0
/* 8026FF28 41 82 00 14 */ beq lbl_8026FF3C
/* 8026FF2C 40 80 00 40 */ bge lbl_8026FF6C
/* 8026FF30 2C 03 00 00 */ cmpwi r3, 0
/* 8026FF34 41 82 00 20 */ beq lbl_8026FF54
/* 8026FF38 48 00 00 34 */ b lbl_8026FF6C
lbl_8026FF3C:
/* 8026FF3C 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8026FF40 41 82 00 0C */ beq lbl_8026FF4C
/* 8026FF44 38 00 00 01 */ li r0, 1
/* 8026FF48 48 00 00 28 */ b lbl_8026FF70
lbl_8026FF4C:
/* 8026FF4C 38 00 00 02 */ li r0, 2
/* 8026FF50 48 00 00 20 */ b lbl_8026FF70
lbl_8026FF54:
/* 8026FF54 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8026FF58 41 82 00 0C */ beq lbl_8026FF64
/* 8026FF5C 38 00 00 05 */ li r0, 5
/* 8026FF60 48 00 00 10 */ b lbl_8026FF70
lbl_8026FF64:
/* 8026FF64 38 00 00 03 */ li r0, 3
/* 8026FF68 48 00 00 08 */ b lbl_8026FF70
lbl_8026FF6C:
/* 8026FF6C 38 00 00 04 */ li r0, 4
lbl_8026FF70:
/* 8026FF70 2C 00 00 01 */ cmpwi r0, 1
/* 8026FF74 40 82 00 0C */ bne lbl_8026FF80
/* 8026FF78 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8026FF7C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_8026FF80:
/* 8026FF80 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 8026FF84 40 80 00 18 */ bge lbl_8026FF9C
/* 8026FF88 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8026FF8C D0 1E 00 00 */ stfs f0, 0(r30)
/* 8026FF90 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8026FF94 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8026FF98 48 00 00 94 */ b lbl_8027002C
lbl_8026FF9C:
/* 8026FF9C EF 81 07 72 */ fmuls f28, f1, f29
/* 8026FFA0 38 61 00 40 */ addi r3, r1, 0x40
/* 8026FFA4 7C 64 1B 78 */ mr r4, r3
/* 8026FFA8 FC 20 E8 90 */ fmr f1, f29
/* 8026FFAC 48 0D 71 2D */ bl PSVECScale
/* 8026FFB0 FC 00 E2 10 */ fabs f0, f28
/* 8026FFB4 FC 20 00 18 */ frsp f1, f0
/* 8026FFB8 C0 02 B8 00 */ lfs f0, lit_2382(r2)
/* 8026FFBC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FFC0 41 80 00 5C */ blt lbl_8027001C
/* 8026FFC4 FC 1C F0 40 */ fcmpo cr0, f28, f30
/* 8026FFC8 40 81 00 18 */ ble lbl_8026FFE0
/* 8026FFCC 38 61 00 40 */ addi r3, r1, 0x40
/* 8026FFD0 7C 64 1B 78 */ mr r4, r3
/* 8026FFD4 EC 3E E0 24 */ fdivs f1, f30, f28
/* 8026FFD8 48 0D 71 01 */ bl PSVECScale
/* 8026FFDC 48 00 00 1C */ b lbl_8026FFF8
lbl_8026FFE0:
/* 8026FFE0 FC 1C F8 40 */ fcmpo cr0, f28, f31
/* 8026FFE4 40 80 00 14 */ bge lbl_8026FFF8
/* 8026FFE8 38 61 00 40 */ addi r3, r1, 0x40
/* 8026FFEC 7C 64 1B 78 */ mr r4, r3
/* 8026FFF0 EC 3F E0 24 */ fdivs f1, f31, f28
/* 8026FFF4 48 0D 70 E5 */ bl PSVECScale
lbl_8026FFF8:
/* 8026FFF8 C0 3E 00 00 */ lfs f1, 0(r30)
/* 8026FFFC C0 01 00 40 */ lfs f0, 0x40(r1)
/* 80270000 EC 01 00 28 */ fsubs f0, f1, f0
/* 80270004 D0 1E 00 00 */ stfs f0, 0(r30)
/* 80270008 C0 3E 00 08 */ lfs f1, 8(r30)
/* 8027000C C0 01 00 48 */ lfs f0, 0x48(r1)
/* 80270010 EC 01 00 28 */ fsubs f0, f1, f0
/* 80270014 D0 1E 00 08 */ stfs f0, 8(r30)
/* 80270018 48 00 00 14 */ b lbl_8027002C
lbl_8027001C:
/* 8027001C C0 1F 00 00 */ lfs f0, 0(r31)
/* 80270020 D0 1E 00 00 */ stfs f0, 0(r30)
/* 80270024 C0 1F 00 08 */ lfs f0, 8(r31)
/* 80270028 D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8027002C:
/* 8027002C 38 61 00 28 */ addi r3, r1, 0x28
/* 80270030 7F C4 F3 78 */ mr r4, r30
/* 80270034 7F E5 FB 78 */ mr r5, r31
/* 80270038 4B FF 6A FD */ bl __mi__4cXyzCFRC3Vec
/* 8027003C C0 01 00 28 */ lfs f0, 0x28(r1)
/* 80270040 D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80270044 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270048 D0 01 00 14 */ stfs f0, 0x14(r1)
/* 8027004C C0 01 00 30 */ lfs f0, 0x30(r1)
/* 80270050 D0 01 00 18 */ stfs f0, 0x18(r1)
/* 80270054 38 61 00 10 */ addi r3, r1, 0x10
/* 80270058 48 0D 70 E1 */ bl PSVECSquareMag
/* 8027005C C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270060 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270064 40 81 00 58 */ ble lbl_802700BC
/* 80270068 FC 00 08 34 */ frsqrte f0, f1
/* 8027006C C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 80270070 FC 44 00 32 */ fmul f2, f4, f0
/* 80270074 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 80270078 FC 00 00 32 */ fmul f0, f0, f0
/* 8027007C FC 01 00 32 */ fmul f0, f1, f0
/* 80270080 FC 03 00 28 */ fsub f0, f3, f0
/* 80270084 FC 02 00 32 */ fmul f0, f2, f0
/* 80270088 FC 44 00 32 */ fmul f2, f4, f0
/* 8027008C FC 00 00 32 */ fmul f0, f0, f0
/* 80270090 FC 01 00 32 */ fmul f0, f1, f0
/* 80270094 FC 03 00 28 */ fsub f0, f3, f0
/* 80270098 FC 02 00 32 */ fmul f0, f2, f0
/* 8027009C FC 44 00 32 */ fmul f2, f4, f0
/* 802700A0 FC 00 00 32 */ fmul f0, f0, f0
/* 802700A4 FC 01 00 32 */ fmul f0, f1, f0
/* 802700A8 FC 03 00 28 */ fsub f0, f3, f0
/* 802700AC FC 02 00 32 */ fmul f0, f2, f0
/* 802700B0 FC 21 00 32 */ fmul f1, f1, f0
/* 802700B4 FC 20 08 18 */ frsp f1, f1
/* 802700B8 48 00 00 88 */ b lbl_80270140
lbl_802700BC:
/* 802700BC C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 802700C0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 802700C4 40 80 00 10 */ bge lbl_802700D4
/* 802700C8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 802700CC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 802700D0 48 00 00 70 */ b lbl_80270140
lbl_802700D4:
/* 802700D4 D0 21 00 08 */ stfs f1, 8(r1)
/* 802700D8 80 81 00 08 */ lwz r4, 8(r1)
/* 802700DC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 802700E0 3C 00 7F 80 */ lis r0, 0x7f80
/* 802700E4 7C 03 00 00 */ cmpw r3, r0
/* 802700E8 41 82 00 14 */ beq lbl_802700FC
/* 802700EC 40 80 00 40 */ bge lbl_8027012C
/* 802700F0 2C 03 00 00 */ cmpwi r3, 0
/* 802700F4 41 82 00 20 */ beq lbl_80270114
/* 802700F8 48 00 00 34 */ b lbl_8027012C
lbl_802700FC:
/* 802700FC 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270100 41 82 00 0C */ beq lbl_8027010C
/* 80270104 38 00 00 01 */ li r0, 1
/* 80270108 48 00 00 28 */ b lbl_80270130
lbl_8027010C:
/* 8027010C 38 00 00 02 */ li r0, 2
/* 80270110 48 00 00 20 */ b lbl_80270130
lbl_80270114:
/* 80270114 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270118 41 82 00 0C */ beq lbl_80270124
/* 8027011C 38 00 00 05 */ li r0, 5
/* 80270120 48 00 00 10 */ b lbl_80270130
lbl_80270124:
/* 80270124 38 00 00 03 */ li r0, 3
/* 80270128 48 00 00 08 */ b lbl_80270130
lbl_8027012C:
/* 8027012C 38 00 00 04 */ li r0, 4
lbl_80270130:
/* 80270130 2C 00 00 01 */ cmpwi r0, 1
/* 80270134 40 82 00 0C */ bne lbl_80270140
/* 80270138 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8027013C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_80270140:
/* 80270140 E3 E1 00 98 */ psq_l f31, 152(r1), 0, 0 /* qr0 */
/* 80270144 CB E1 00 90 */ lfd f31, 0x90(r1)
/* 80270148 E3 C1 00 88 */ psq_l f30, 136(r1), 0, 0 /* qr0 */
/* 8027014C CB C1 00 80 */ lfd f30, 0x80(r1)
/* 80270150 E3 A1 00 78 */ psq_l f29, 120(r1), 0, 0 /* qr0 */
/* 80270154 CB A1 00 70 */ lfd f29, 0x70(r1)
/* 80270158 E3 81 00 68 */ psq_l f28, 104(r1), 0, 0 /* qr0 */
/* 8027015C CB 81 00 60 */ lfd f28, 0x60(r1)
/* 80270160 83 E1 00 5C */ lwz r31, 0x5c(r1)
/* 80270164 83 C1 00 58 */ lwz r30, 0x58(r1)
/* 80270168 80 01 00 A4 */ lwz r0, 0xa4(r1)
/* 8027016C 7C 08 03 A6 */ mtlr r0
/* 80270170 38 21 00 A0 */ addi r1, r1, 0xa0
/* 80270174 4E 80 00 20 */ blr
@@ -1,231 +0,0 @@
lbl_8026FAB8:
/* 8026FAB8 94 21 FF 90 */ stwu r1, -0x70(r1)
/* 8026FABC 7C 08 02 A6 */ mflr r0
/* 8026FAC0 90 01 00 74 */ stw r0, 0x74(r1)
/* 8026FAC4 DB E1 00 60 */ stfd f31, 0x60(r1)
/* 8026FAC8 F3 E1 00 68 */ psq_st f31, 104(r1), 0, 0 /* qr0 */
/* 8026FACC DB C1 00 50 */ stfd f30, 0x50(r1)
/* 8026FAD0 F3 C1 00 58 */ psq_st f30, 88(r1), 0, 0 /* qr0 */
/* 8026FAD4 DB A1 00 40 */ stfd f29, 0x40(r1)
/* 8026FAD8 F3 A1 00 48 */ psq_st f29, 72(r1), 0, 0 /* qr0 */
/* 8026FADC DB 81 00 30 */ stfd f28, 0x30(r1)
/* 8026FAE0 F3 81 00 38 */ psq_st f28, 56(r1), 0, 0 /* qr0 */
/* 8026FAE4 93 E1 00 2C */ stw r31, 0x2c(r1)
/* 8026FAE8 93 C1 00 28 */ stw r30, 0x28(r1)
/* 8026FAEC 7C 7E 1B 78 */ mr r30, r3
/* 8026FAF0 7C 9F 23 78 */ mr r31, r4
/* 8026FAF4 FF A0 08 90 */ fmr f29, f1
/* 8026FAF8 FF C0 10 90 */ fmr f30, f2
/* 8026FAFC FF E0 18 90 */ fmr f31, f3
/* 8026FB00 4B FF 75 6D */ bl __ne__4cXyzCFRC3Vec
/* 8026FB04 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 8026FB08 41 82 01 C4 */ beq lbl_8026FCCC
/* 8026FB0C 38 61 00 10 */ addi r3, r1, 0x10
/* 8026FB10 7F C4 F3 78 */ mr r4, r30
/* 8026FB14 7F E5 FB 78 */ mr r5, r31
/* 8026FB18 4B FF 70 1D */ bl __mi__4cXyzCFRC3Vec
/* 8026FB1C C0 01 00 10 */ lfs f0, 0x10(r1)
/* 8026FB20 D0 01 00 1C */ stfs f0, 0x1c(r1)
/* 8026FB24 C0 01 00 14 */ lfs f0, 0x14(r1)
/* 8026FB28 D0 01 00 20 */ stfs f0, 0x20(r1)
/* 8026FB2C C0 01 00 18 */ lfs f0, 0x18(r1)
/* 8026FB30 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 8026FB34 38 61 00 1C */ addi r3, r1, 0x1c
/* 8026FB38 48 0D 76 01 */ bl PSVECSquareMag
/* 8026FB3C C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 8026FB40 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FB44 40 81 00 58 */ ble lbl_8026FB9C
/* 8026FB48 FC 00 08 34 */ frsqrte f0, f1
/* 8026FB4C C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 8026FB50 FC 44 00 32 */ fmul f2, f4, f0
/* 8026FB54 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 8026FB58 FC 00 00 32 */ fmul f0, f0, f0
/* 8026FB5C FC 01 00 32 */ fmul f0, f1, f0
/* 8026FB60 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FB64 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FB68 FC 44 00 32 */ fmul f2, f4, f0
/* 8026FB6C FC 00 00 32 */ fmul f0, f0, f0
/* 8026FB70 FC 01 00 32 */ fmul f0, f1, f0
/* 8026FB74 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FB78 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FB7C FC 44 00 32 */ fmul f2, f4, f0
/* 8026FB80 FC 00 00 32 */ fmul f0, f0, f0
/* 8026FB84 FC 01 00 32 */ fmul f0, f1, f0
/* 8026FB88 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FB8C FC 02 00 32 */ fmul f0, f2, f0
/* 8026FB90 FC 21 00 32 */ fmul f1, f1, f0
/* 8026FB94 FC 20 08 18 */ frsp f1, f1
/* 8026FB98 48 00 00 88 */ b lbl_8026FC20
lbl_8026FB9C:
/* 8026FB9C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 8026FBA0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FBA4 40 80 00 10 */ bge lbl_8026FBB4
/* 8026FBA8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8026FBAC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 8026FBB0 48 00 00 70 */ b lbl_8026FC20
lbl_8026FBB4:
/* 8026FBB4 D0 21 00 0C */ stfs f1, 0xc(r1)
/* 8026FBB8 80 81 00 0C */ lwz r4, 0xc(r1)
/* 8026FBBC 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 8026FBC0 3C 00 7F 80 */ lis r0, 0x7f80
/* 8026FBC4 7C 03 00 00 */ cmpw r3, r0
/* 8026FBC8 41 82 00 14 */ beq lbl_8026FBDC
/* 8026FBCC 40 80 00 40 */ bge lbl_8026FC0C
/* 8026FBD0 2C 03 00 00 */ cmpwi r3, 0
/* 8026FBD4 41 82 00 20 */ beq lbl_8026FBF4
/* 8026FBD8 48 00 00 34 */ b lbl_8026FC0C
lbl_8026FBDC:
/* 8026FBDC 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8026FBE0 41 82 00 0C */ beq lbl_8026FBEC
/* 8026FBE4 38 00 00 01 */ li r0, 1
/* 8026FBE8 48 00 00 28 */ b lbl_8026FC10
lbl_8026FBEC:
/* 8026FBEC 38 00 00 02 */ li r0, 2
/* 8026FBF0 48 00 00 20 */ b lbl_8026FC10
lbl_8026FBF4:
/* 8026FBF4 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8026FBF8 41 82 00 0C */ beq lbl_8026FC04
/* 8026FBFC 38 00 00 05 */ li r0, 5
/* 8026FC00 48 00 00 10 */ b lbl_8026FC10
lbl_8026FC04:
/* 8026FC04 38 00 00 03 */ li r0, 3
/* 8026FC08 48 00 00 08 */ b lbl_8026FC10
lbl_8026FC0C:
/* 8026FC0C 38 00 00 04 */ li r0, 4
lbl_8026FC10:
/* 8026FC10 2C 00 00 01 */ cmpwi r0, 1
/* 8026FC14 40 82 00 0C */ bne lbl_8026FC20
/* 8026FC18 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8026FC1C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_8026FC20:
/* 8026FC20 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 8026FC24 40 80 00 20 */ bge lbl_8026FC44
/* 8026FC28 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8026FC2C D0 1E 00 00 */ stfs f0, 0(r30)
/* 8026FC30 C0 1F 00 04 */ lfs f0, 4(r31)
/* 8026FC34 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8026FC38 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8026FC3C D0 1E 00 08 */ stfs f0, 8(r30)
/* 8026FC40 48 00 00 8C */ b lbl_8026FCCC
lbl_8026FC44:
/* 8026FC44 EF 81 07 72 */ fmuls f28, f1, f29
/* 8026FC48 38 61 00 1C */ addi r3, r1, 0x1c
/* 8026FC4C 7C 64 1B 78 */ mr r4, r3
/* 8026FC50 FC 20 E8 90 */ fmr f1, f29
/* 8026FC54 48 0D 74 85 */ bl PSVECScale
/* 8026FC58 FC 00 E2 10 */ fabs f0, f28
/* 8026FC5C FC 20 00 18 */ frsp f1, f0
/* 8026FC60 C0 02 B8 00 */ lfs f0, lit_2382(r2)
/* 8026FC64 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FC68 41 80 00 4C */ blt lbl_8026FCB4
/* 8026FC6C FC 1C F0 40 */ fcmpo cr0, f28, f30
/* 8026FC70 40 81 00 18 */ ble lbl_8026FC88
/* 8026FC74 38 61 00 1C */ addi r3, r1, 0x1c
/* 8026FC78 7C 64 1B 78 */ mr r4, r3
/* 8026FC7C EC 3E E0 24 */ fdivs f1, f30, f28
/* 8026FC80 48 0D 74 59 */ bl PSVECScale
/* 8026FC84 48 00 00 1C */ b lbl_8026FCA0
lbl_8026FC88:
/* 8026FC88 FC 1C F8 40 */ fcmpo cr0, f28, f31
/* 8026FC8C 40 80 00 14 */ bge lbl_8026FCA0
/* 8026FC90 38 61 00 1C */ addi r3, r1, 0x1c
/* 8026FC94 7C 64 1B 78 */ mr r4, r3
/* 8026FC98 EC 3F E0 24 */ fdivs f1, f31, f28
/* 8026FC9C 48 0D 74 3D */ bl PSVECScale
lbl_8026FCA0:
/* 8026FCA0 7F C3 F3 78 */ mr r3, r30
/* 8026FCA4 38 81 00 1C */ addi r4, r1, 0x1c
/* 8026FCA8 7F C5 F3 78 */ mr r5, r30
/* 8026FCAC 48 0D 74 09 */ bl PSVECSubtract
/* 8026FCB0 48 00 00 1C */ b lbl_8026FCCC
lbl_8026FCB4:
/* 8026FCB4 C0 1F 00 00 */ lfs f0, 0(r31)
/* 8026FCB8 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8026FCBC C0 1F 00 04 */ lfs f0, 4(r31)
/* 8026FCC0 D0 1E 00 04 */ stfs f0, 4(r30)
/* 8026FCC4 C0 1F 00 08 */ lfs f0, 8(r31)
/* 8026FCC8 D0 1E 00 08 */ stfs f0, 8(r30)
lbl_8026FCCC:
/* 8026FCCC 7F C3 F3 78 */ mr r3, r30
/* 8026FCD0 7F E4 FB 78 */ mr r4, r31
/* 8026FCD4 48 0D 76 C9 */ bl PSVECSquareDistance
/* 8026FCD8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 8026FCDC FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FCE0 40 81 00 58 */ ble lbl_8026FD38
/* 8026FCE4 FC 00 08 34 */ frsqrte f0, f1
/* 8026FCE8 C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 8026FCEC FC 44 00 32 */ fmul f2, f4, f0
/* 8026FCF0 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 8026FCF4 FC 00 00 32 */ fmul f0, f0, f0
/* 8026FCF8 FC 01 00 32 */ fmul f0, f1, f0
/* 8026FCFC FC 03 00 28 */ fsub f0, f3, f0
/* 8026FD00 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FD04 FC 44 00 32 */ fmul f2, f4, f0
/* 8026FD08 FC 00 00 32 */ fmul f0, f0, f0
/* 8026FD0C FC 01 00 32 */ fmul f0, f1, f0
/* 8026FD10 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FD14 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FD18 FC 44 00 32 */ fmul f2, f4, f0
/* 8026FD1C FC 00 00 32 */ fmul f0, f0, f0
/* 8026FD20 FC 01 00 32 */ fmul f0, f1, f0
/* 8026FD24 FC 03 00 28 */ fsub f0, f3, f0
/* 8026FD28 FC 02 00 32 */ fmul f0, f2, f0
/* 8026FD2C FC 21 00 32 */ fmul f1, f1, f0
/* 8026FD30 FC 20 08 18 */ frsp f1, f1
/* 8026FD34 48 00 00 88 */ b lbl_8026FDBC
lbl_8026FD38:
/* 8026FD38 C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 8026FD3C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 8026FD40 40 80 00 10 */ bge lbl_8026FD50
/* 8026FD44 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8026FD48 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 8026FD4C 48 00 00 70 */ b lbl_8026FDBC
lbl_8026FD50:
/* 8026FD50 D0 21 00 08 */ stfs f1, 8(r1)
/* 8026FD54 80 81 00 08 */ lwz r4, 8(r1)
/* 8026FD58 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 8026FD5C 3C 00 7F 80 */ lis r0, 0x7f80
/* 8026FD60 7C 03 00 00 */ cmpw r3, r0
/* 8026FD64 41 82 00 14 */ beq lbl_8026FD78
/* 8026FD68 40 80 00 40 */ bge lbl_8026FDA8
/* 8026FD6C 2C 03 00 00 */ cmpwi r3, 0
/* 8026FD70 41 82 00 20 */ beq lbl_8026FD90
/* 8026FD74 48 00 00 34 */ b lbl_8026FDA8
lbl_8026FD78:
/* 8026FD78 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8026FD7C 41 82 00 0C */ beq lbl_8026FD88
/* 8026FD80 38 00 00 01 */ li r0, 1
/* 8026FD84 48 00 00 28 */ b lbl_8026FDAC
lbl_8026FD88:
/* 8026FD88 38 00 00 02 */ li r0, 2
/* 8026FD8C 48 00 00 20 */ b lbl_8026FDAC
lbl_8026FD90:
/* 8026FD90 54 80 02 7F */ clrlwi. r0, r4, 9
/* 8026FD94 41 82 00 0C */ beq lbl_8026FDA0
/* 8026FD98 38 00 00 05 */ li r0, 5
/* 8026FD9C 48 00 00 10 */ b lbl_8026FDAC
lbl_8026FDA0:
/* 8026FDA0 38 00 00 03 */ li r0, 3
/* 8026FDA4 48 00 00 08 */ b lbl_8026FDAC
lbl_8026FDA8:
/* 8026FDA8 38 00 00 04 */ li r0, 4
lbl_8026FDAC:
/* 8026FDAC 2C 00 00 01 */ cmpwi r0, 1
/* 8026FDB0 40 82 00 0C */ bne lbl_8026FDBC
/* 8026FDB4 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 8026FDB8 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_8026FDBC:
/* 8026FDBC E3 E1 00 68 */ psq_l f31, 104(r1), 0, 0 /* qr0 */
/* 8026FDC0 CB E1 00 60 */ lfd f31, 0x60(r1)
/* 8026FDC4 E3 C1 00 58 */ psq_l f30, 88(r1), 0, 0 /* qr0 */
/* 8026FDC8 CB C1 00 50 */ lfd f30, 0x50(r1)
/* 8026FDCC E3 A1 00 48 */ psq_l f29, 72(r1), 0, 0 /* qr0 */
/* 8026FDD0 CB A1 00 40 */ lfd f29, 0x40(r1)
/* 8026FDD4 E3 81 00 38 */ psq_l f28, 56(r1), 0, 0 /* qr0 */
/* 8026FDD8 CB 81 00 30 */ lfd f28, 0x30(r1)
/* 8026FDDC 83 E1 00 2C */ lwz r31, 0x2c(r1)
/* 8026FDE0 83 C1 00 28 */ lwz r30, 0x28(r1)
/* 8026FDE4 80 01 00 74 */ lwz r0, 0x74(r1)
/* 8026FDE8 7C 08 03 A6 */ mtlr r0
/* 8026FDEC 38 21 00 70 */ addi r1, r1, 0x70
/* 8026FDF0 4E 80 00 20 */ blr
@@ -1,55 +0,0 @@
lbl_8026F97C:
/* 8026F97C C0 A3 00 00 */ lfs f5, 0(r3)
/* 8026F980 FC 05 08 00 */ fcmpu cr0, f5, f1
/* 8026F984 41 82 00 A4 */ beq lbl_8026FA28
/* 8026F988 EC 01 28 28 */ fsubs f0, f1, f5
/* 8026F98C EC C2 00 32 */ fmuls f6, f2, f0
/* 8026F990 FC 06 20 40 */ fcmpo cr0, f6, f4
/* 8026F994 4C 41 13 82 */ cror 2, 1, 2
/* 8026F998 41 82 00 14 */ beq lbl_8026F9AC
/* 8026F99C FC 40 20 50 */ fneg f2, f4
/* 8026F9A0 FC 06 10 40 */ fcmpo cr0, f6, f2
/* 8026F9A4 4C 40 13 82 */ cror 2, 0, 2
/* 8026F9A8 40 82 00 30 */ bne lbl_8026F9D8
lbl_8026F9AC:
/* 8026F9AC FC 06 18 40 */ fcmpo cr0, f6, f3
/* 8026F9B0 40 81 00 08 */ ble lbl_8026F9B8
/* 8026F9B4 FC C0 18 90 */ fmr f6, f3
lbl_8026F9B8:
/* 8026F9B8 FC 00 18 50 */ fneg f0, f3
/* 8026F9BC FC 06 00 40 */ fcmpo cr0, f6, f0
/* 8026F9C0 40 80 00 08 */ bge lbl_8026F9C8
/* 8026F9C4 FC C0 00 90 */ fmr f6, f0
lbl_8026F9C8:
/* 8026F9C8 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026F9CC EC 00 30 2A */ fadds f0, f0, f6
/* 8026F9D0 D0 03 00 00 */ stfs f0, 0(r3)
/* 8026F9D4 48 00 00 54 */ b lbl_8026FA28
lbl_8026F9D8:
/* 8026F9D8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 8026F9DC FC 06 00 40 */ fcmpo cr0, f6, f0
/* 8026F9E0 40 81 00 28 */ ble lbl_8026FA08
/* 8026F9E4 FC 06 20 40 */ fcmpo cr0, f6, f4
/* 8026F9E8 40 80 00 40 */ bge lbl_8026FA28
/* 8026F9EC EC 05 20 2A */ fadds f0, f5, f4
/* 8026F9F0 D0 03 00 00 */ stfs f0, 0(r3)
/* 8026F9F4 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026F9F8 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8026F9FC 40 81 00 2C */ ble lbl_8026FA28
/* 8026FA00 D0 23 00 00 */ stfs f1, 0(r3)
/* 8026FA04 48 00 00 24 */ b lbl_8026FA28
lbl_8026FA08:
/* 8026FA08 FC 06 10 40 */ fcmpo cr0, f6, f2
/* 8026FA0C 40 81 00 1C */ ble lbl_8026FA28
/* 8026FA10 EC 05 10 2A */ fadds f0, f5, f2
/* 8026FA14 D0 03 00 00 */ stfs f0, 0(r3)
/* 8026FA18 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026FA1C FC 00 08 40 */ fcmpo cr0, f0, f1
/* 8026FA20 40 80 00 08 */ bge lbl_8026FA28
/* 8026FA24 D0 23 00 00 */ stfs f1, 0(r3)
lbl_8026FA28:
/* 8026FA28 C0 03 00 00 */ lfs f0, 0(r3)
/* 8026FA2C EC 01 00 28 */ fsubs f0, f1, f0
/* 8026FA30 FC 00 02 10 */ fabs f0, f0
/* 8026FA34 FC 20 00 18 */ frsp f1, f0
/* 8026FA38 4E 80 00 20 */ blr
@@ -1,33 +0,0 @@
lbl_80270B90:
/* 80270B90 7C A0 07 35 */ extsh. r0, r5
/* 80270B94 41 82 00 50 */ beq lbl_80270BE4
/* 80270B98 7C 86 07 34 */ extsh r6, r4
/* 80270B9C A8 03 00 00 */ lha r0, 0(r3)
/* 80270BA0 7C 06 00 50 */ subf r0, r6, r0
/* 80270BA4 7C 00 07 35 */ extsh. r0, r0
/* 80270BA8 40 81 00 0C */ ble lbl_80270BB4
/* 80270BAC 7C 05 00 D0 */ neg r0, r5
/* 80270BB0 7C 05 07 34 */ extsh r5, r0
lbl_80270BB4:
/* 80270BB4 A8 03 00 00 */ lha r0, 0(r3)
/* 80270BB8 7C 00 2A 14 */ add r0, r0, r5
/* 80270BBC B0 03 00 00 */ sth r0, 0(r3)
/* 80270BC0 7C A5 07 34 */ extsh r5, r5
/* 80270BC4 A8 03 00 00 */ lha r0, 0(r3)
/* 80270BC8 7C 06 00 50 */ subf r0, r6, r0
/* 80270BCC 7C 00 07 34 */ extsh r0, r0
/* 80270BD0 7C 05 01 D7 */ mullw. r0, r5, r0
/* 80270BD4 41 80 00 28 */ blt lbl_80270BFC
/* 80270BD8 B0 83 00 00 */ sth r4, 0(r3)
/* 80270BDC 38 60 00 01 */ li r3, 1
/* 80270BE0 4E 80 00 20 */ blr
lbl_80270BE4:
/* 80270BE4 A8 63 00 00 */ lha r3, 0(r3)
/* 80270BE8 7C 80 07 34 */ extsh r0, r4
/* 80270BEC 7C 03 00 00 */ cmpw r3, r0
/* 80270BF0 40 82 00 0C */ bne lbl_80270BFC
/* 80270BF4 38 60 00 01 */ li r3, 1
/* 80270BF8 4E 80 00 20 */ blr
lbl_80270BFC:
/* 80270BFC 38 60 00 00 */ li r3, 0
/* 80270C00 4E 80 00 20 */ blr
@@ -1,31 +0,0 @@
lbl_80270740:
/* 80270740 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270744 FC 02 00 00 */ fcmpu cr0, f2, f0
/* 80270748 41 82 00 48 */ beq lbl_80270790
/* 8027074C C0 03 00 00 */ lfs f0, 0(r3)
/* 80270750 FC 00 08 40 */ fcmpo cr0, f0, f1
/* 80270754 40 81 00 08 */ ble lbl_8027075C
/* 80270758 FC 40 10 50 */ fneg f2, f2
lbl_8027075C:
/* 8027075C C0 03 00 00 */ lfs f0, 0(r3)
/* 80270760 EC 00 10 2A */ fadds f0, f0, f2
/* 80270764 D0 03 00 00 */ stfs f0, 0(r3)
/* 80270768 C0 03 00 00 */ lfs f0, 0(r3)
/* 8027076C EC 00 08 28 */ fsubs f0, f0, f1
/* 80270770 EC 42 00 32 */ fmuls f2, f2, f0
/* 80270774 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270778 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 8027077C 4C 41 13 82 */ cror 2, 1, 2
/* 80270780 40 82 00 24 */ bne lbl_802707A4
/* 80270784 D0 23 00 00 */ stfs f1, 0(r3)
/* 80270788 38 60 00 01 */ li r3, 1
/* 8027078C 4E 80 00 20 */ blr
lbl_80270790:
/* 80270790 C0 03 00 00 */ lfs f0, 0(r3)
/* 80270794 FC 00 08 00 */ fcmpu cr0, f0, f1
/* 80270798 40 82 00 0C */ bne lbl_802707A4
/* 8027079C 38 60 00 01 */ li r3, 1
/* 802707A0 4E 80 00 20 */ blr
lbl_802707A4:
/* 802707A4 38 60 00 00 */ li r3, 0
/* 802707A8 4E 80 00 20 */ blr
@@ -1,143 +0,0 @@
lbl_80270990:
/* 80270990 94 21 FF A0 */ stwu r1, -0x60(r1)
/* 80270994 7C 08 02 A6 */ mflr r0
/* 80270998 90 01 00 64 */ stw r0, 0x64(r1)
/* 8027099C DB E1 00 50 */ stfd f31, 0x50(r1)
/* 802709A0 F3 E1 00 58 */ psq_st f31, 88(r1), 0, 0 /* qr0 */
/* 802709A4 93 E1 00 4C */ stw r31, 0x4c(r1)
/* 802709A8 93 C1 00 48 */ stw r30, 0x48(r1)
/* 802709AC 7C 7E 1B 78 */ mr r30, r3
/* 802709B0 7C 9F 23 78 */ mr r31, r4
/* 802709B4 FF E0 08 90 */ fmr f31, f1
/* 802709B8 38 61 00 24 */ addi r3, r1, 0x24
/* 802709BC 7F C4 F3 78 */ mr r4, r30
/* 802709C0 7F E5 FB 78 */ mr r5, r31
/* 802709C4 4B FF 61 71 */ bl __mi__4cXyzCFRC3Vec
/* 802709C8 C0 41 00 24 */ lfs f2, 0x24(r1)
/* 802709CC D0 41 00 30 */ stfs f2, 0x30(r1)
/* 802709D0 C0 01 00 28 */ lfs f0, 0x28(r1)
/* 802709D4 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 802709D8 C0 21 00 2C */ lfs f1, 0x2c(r1)
/* 802709DC D0 21 00 38 */ stfs f1, 0x38(r1)
/* 802709E0 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 802709E4 D0 01 00 34 */ stfs f0, 0x34(r1)
/* 802709E8 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 802709EC D0 01 00 10 */ stfs f0, 0x10(r1)
/* 802709F0 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 802709F4 38 61 00 0C */ addi r3, r1, 0xc
/* 802709F8 48 0D 67 41 */ bl PSVECSquareMag
/* 802709FC C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270A00 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270A04 40 81 00 58 */ ble lbl_80270A5C
/* 80270A08 FC 00 08 34 */ frsqrte f0, f1
/* 80270A0C C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 80270A10 FC 44 00 32 */ fmul f2, f4, f0
/* 80270A14 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 80270A18 FC 00 00 32 */ fmul f0, f0, f0
/* 80270A1C FC 01 00 32 */ fmul f0, f1, f0
/* 80270A20 FC 03 00 28 */ fsub f0, f3, f0
/* 80270A24 FC 02 00 32 */ fmul f0, f2, f0
/* 80270A28 FC 44 00 32 */ fmul f2, f4, f0
/* 80270A2C FC 00 00 32 */ fmul f0, f0, f0
/* 80270A30 FC 01 00 32 */ fmul f0, f1, f0
/* 80270A34 FC 03 00 28 */ fsub f0, f3, f0
/* 80270A38 FC 02 00 32 */ fmul f0, f2, f0
/* 80270A3C FC 44 00 32 */ fmul f2, f4, f0
/* 80270A40 FC 00 00 32 */ fmul f0, f0, f0
/* 80270A44 FC 01 00 32 */ fmul f0, f1, f0
/* 80270A48 FC 03 00 28 */ fsub f0, f3, f0
/* 80270A4C FC 02 00 32 */ fmul f0, f2, f0
/* 80270A50 FC 21 00 32 */ fmul f1, f1, f0
/* 80270A54 FC 20 08 18 */ frsp f1, f1
/* 80270A58 48 00 00 88 */ b lbl_80270AE0
lbl_80270A5C:
/* 80270A5C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 80270A60 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270A64 40 80 00 10 */ bge lbl_80270A74
/* 80270A68 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80270A6C C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 80270A70 48 00 00 70 */ b lbl_80270AE0
lbl_80270A74:
/* 80270A74 D0 21 00 08 */ stfs f1, 8(r1)
/* 80270A78 80 81 00 08 */ lwz r4, 8(r1)
/* 80270A7C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 80270A80 3C 00 7F 80 */ lis r0, 0x7f80
/* 80270A84 7C 03 00 00 */ cmpw r3, r0
/* 80270A88 41 82 00 14 */ beq lbl_80270A9C
/* 80270A8C 40 80 00 40 */ bge lbl_80270ACC
/* 80270A90 2C 03 00 00 */ cmpwi r3, 0
/* 80270A94 41 82 00 20 */ beq lbl_80270AB4
/* 80270A98 48 00 00 34 */ b lbl_80270ACC
lbl_80270A9C:
/* 80270A9C 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270AA0 41 82 00 0C */ beq lbl_80270AAC
/* 80270AA4 38 00 00 01 */ li r0, 1
/* 80270AA8 48 00 00 28 */ b lbl_80270AD0
lbl_80270AAC:
/* 80270AAC 38 00 00 02 */ li r0, 2
/* 80270AB0 48 00 00 20 */ b lbl_80270AD0
lbl_80270AB4:
/* 80270AB4 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270AB8 41 82 00 0C */ beq lbl_80270AC4
/* 80270ABC 38 00 00 05 */ li r0, 5
/* 80270AC0 48 00 00 10 */ b lbl_80270AD0
lbl_80270AC4:
/* 80270AC4 38 00 00 03 */ li r0, 3
/* 80270AC8 48 00 00 08 */ b lbl_80270AD0
lbl_80270ACC:
/* 80270ACC 38 00 00 04 */ li r0, 4
lbl_80270AD0:
/* 80270AD0 2C 00 00 01 */ cmpwi r0, 1
/* 80270AD4 40 82 00 0C */ bne lbl_80270AE0
/* 80270AD8 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80270ADC C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_80270AE0:
/* 80270AE0 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270AE4 FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 80270AE8 41 82 00 68 */ beq lbl_80270B50
/* 80270AEC FC 00 0A 10 */ fabs f0, f1
/* 80270AF0 FC 40 00 18 */ frsp f2, f0
/* 80270AF4 C0 02 B8 00 */ lfs f0, lit_2382(r2)
/* 80270AF8 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80270AFC 41 80 00 10 */ blt lbl_80270B0C
/* 80270B00 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 80270B04 4C 40 13 82 */ cror 2, 0, 2
/* 80270B08 40 82 00 24 */ bne lbl_80270B2C
lbl_80270B0C:
/* 80270B0C C0 1F 00 00 */ lfs f0, 0(r31)
/* 80270B10 D0 1E 00 00 */ stfs f0, 0(r30)
/* 80270B14 C0 1F 00 04 */ lfs f0, 4(r31)
/* 80270B18 D0 1E 00 04 */ stfs f0, 4(r30)
/* 80270B1C C0 1F 00 08 */ lfs f0, 8(r31)
/* 80270B20 D0 1E 00 08 */ stfs f0, 8(r30)
/* 80270B24 38 60 00 01 */ li r3, 1
/* 80270B28 48 00 00 48 */ b lbl_80270B70
lbl_80270B2C:
/* 80270B2C 38 61 00 18 */ addi r3, r1, 0x18
/* 80270B30 38 81 00 30 */ addi r4, r1, 0x30
/* 80270B34 EC 3F 08 24 */ fdivs f1, f31, f1
/* 80270B38 4B FF 60 4D */ bl __ml__4cXyzCFf
/* 80270B3C 7F C3 F3 78 */ mr r3, r30
/* 80270B40 38 81 00 18 */ addi r4, r1, 0x18
/* 80270B44 7F C5 F3 78 */ mr r5, r30
/* 80270B48 48 0D 65 6D */ bl PSVECSubtract
/* 80270B4C 48 00 00 20 */ b lbl_80270B6C
lbl_80270B50:
/* 80270B50 FC 00 0A 10 */ fabs f0, f1
/* 80270B54 FC 20 00 18 */ frsp f1, f0
/* 80270B58 C0 02 B8 00 */ lfs f0, lit_2382(r2)
/* 80270B5C FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270B60 40 80 00 0C */ bge lbl_80270B6C
/* 80270B64 38 60 00 01 */ li r3, 1
/* 80270B68 48 00 00 08 */ b lbl_80270B70
lbl_80270B6C:
/* 80270B6C 38 60 00 00 */ li r3, 0
lbl_80270B70:
/* 80270B70 E3 E1 00 58 */ psq_l f31, 88(r1), 0, 0 /* qr0 */
/* 80270B74 CB E1 00 50 */ lfd f31, 0x50(r1)
/* 80270B78 83 E1 00 4C */ lwz r31, 0x4c(r1)
/* 80270B7C 83 C1 00 48 */ lwz r30, 0x48(r1)
/* 80270B80 80 01 00 64 */ lwz r0, 0x64(r1)
/* 80270B84 7C 08 03 A6 */ mtlr r0
/* 80270B88 38 21 00 60 */ addi r1, r1, 0x60
/* 80270B8C 4E 80 00 20 */ blr
@@ -1,136 +0,0 @@
lbl_802707AC:
/* 802707AC 94 21 FF B0 */ stwu r1, -0x50(r1)
/* 802707B0 7C 08 02 A6 */ mflr r0
/* 802707B4 90 01 00 54 */ stw r0, 0x54(r1)
/* 802707B8 DB E1 00 40 */ stfd f31, 0x40(r1)
/* 802707BC F3 E1 00 48 */ psq_st f31, 72(r1), 0, 0 /* qr0 */
/* 802707C0 93 E1 00 3C */ stw r31, 0x3c(r1)
/* 802707C4 93 C1 00 38 */ stw r30, 0x38(r1)
/* 802707C8 7C 7E 1B 78 */ mr r30, r3
/* 802707CC 7C 9F 23 78 */ mr r31, r4
/* 802707D0 FF E0 08 90 */ fmr f31, f1
/* 802707D4 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 802707D8 FC 1F 00 00 */ fcmpu cr0, f31, f0
/* 802707DC 41 82 01 7C */ beq lbl_80270958
/* 802707E0 38 61 00 18 */ addi r3, r1, 0x18
/* 802707E4 7F C4 F3 78 */ mr r4, r30
/* 802707E8 7F E5 FB 78 */ mr r5, r31
/* 802707EC 4B FF 63 49 */ bl __mi__4cXyzCFRC3Vec
/* 802707F0 C0 01 00 18 */ lfs f0, 0x18(r1)
/* 802707F4 D0 01 00 24 */ stfs f0, 0x24(r1)
/* 802707F8 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 802707FC D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80270800 C0 01 00 20 */ lfs f0, 0x20(r1)
/* 80270804 D0 01 00 2C */ stfs f0, 0x2c(r1)
/* 80270808 38 61 00 24 */ addi r3, r1, 0x24
/* 8027080C 48 0D 69 2D */ bl PSVECSquareMag
/* 80270810 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270814 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270818 40 81 00 58 */ ble lbl_80270870
/* 8027081C FC 00 08 34 */ frsqrte f0, f1
/* 80270820 C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 80270824 FC 44 00 32 */ fmul f2, f4, f0
/* 80270828 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 8027082C FC 00 00 32 */ fmul f0, f0, f0
/* 80270830 FC 01 00 32 */ fmul f0, f1, f0
/* 80270834 FC 03 00 28 */ fsub f0, f3, f0
/* 80270838 FC 02 00 32 */ fmul f0, f2, f0
/* 8027083C FC 44 00 32 */ fmul f2, f4, f0
/* 80270840 FC 00 00 32 */ fmul f0, f0, f0
/* 80270844 FC 01 00 32 */ fmul f0, f1, f0
/* 80270848 FC 03 00 28 */ fsub f0, f3, f0
/* 8027084C FC 02 00 32 */ fmul f0, f2, f0
/* 80270850 FC 44 00 32 */ fmul f2, f4, f0
/* 80270854 FC 00 00 32 */ fmul f0, f0, f0
/* 80270858 FC 01 00 32 */ fmul f0, f1, f0
/* 8027085C FC 03 00 28 */ fsub f0, f3, f0
/* 80270860 FC 02 00 32 */ fmul f0, f2, f0
/* 80270864 FC 21 00 32 */ fmul f1, f1, f0
/* 80270868 FC 20 08 18 */ frsp f1, f1
/* 8027086C 48 00 00 88 */ b lbl_802708F4
lbl_80270870:
/* 80270870 C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 80270874 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270878 40 80 00 10 */ bge lbl_80270888
/* 8027087C 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80270880 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
/* 80270884 48 00 00 70 */ b lbl_802708F4
lbl_80270888:
/* 80270888 D0 21 00 08 */ stfs f1, 8(r1)
/* 8027088C 80 81 00 08 */ lwz r4, 8(r1)
/* 80270890 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 80270894 3C 00 7F 80 */ lis r0, 0x7f80
/* 80270898 7C 03 00 00 */ cmpw r3, r0
/* 8027089C 41 82 00 14 */ beq lbl_802708B0
/* 802708A0 40 80 00 40 */ bge lbl_802708E0
/* 802708A4 2C 03 00 00 */ cmpwi r3, 0
/* 802708A8 41 82 00 20 */ beq lbl_802708C8
/* 802708AC 48 00 00 34 */ b lbl_802708E0
lbl_802708B0:
/* 802708B0 54 80 02 7F */ clrlwi. r0, r4, 9
/* 802708B4 41 82 00 0C */ beq lbl_802708C0
/* 802708B8 38 00 00 01 */ li r0, 1
/* 802708BC 48 00 00 28 */ b lbl_802708E4
lbl_802708C0:
/* 802708C0 38 00 00 02 */ li r0, 2
/* 802708C4 48 00 00 20 */ b lbl_802708E4
lbl_802708C8:
/* 802708C8 54 80 02 7F */ clrlwi. r0, r4, 9
/* 802708CC 41 82 00 0C */ beq lbl_802708D8
/* 802708D0 38 00 00 05 */ li r0, 5
/* 802708D4 48 00 00 10 */ b lbl_802708E4
lbl_802708D8:
/* 802708D8 38 00 00 03 */ li r0, 3
/* 802708DC 48 00 00 08 */ b lbl_802708E4
lbl_802708E0:
/* 802708E0 38 00 00 04 */ li r0, 4
lbl_802708E4:
/* 802708E4 2C 00 00 01 */ cmpwi r0, 1
/* 802708E8 40 82 00 0C */ bne lbl_802708F4
/* 802708EC 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 802708F0 C0 23 0A E0 */ lfs f1, __float_nan@l(r3) /* 0x80450AE0@l */
lbl_802708F4:
/* 802708F4 FC 00 0A 10 */ fabs f0, f1
/* 802708F8 FC 40 00 18 */ frsp f2, f0
/* 802708FC C0 02 B8 00 */ lfs f0, lit_2382(r2)
/* 80270900 FC 02 00 40 */ fcmpo cr0, f2, f0
/* 80270904 41 80 00 10 */ blt lbl_80270914
/* 80270908 FC 01 F8 40 */ fcmpo cr0, f1, f31
/* 8027090C 4C 40 13 82 */ cror 2, 0, 2
/* 80270910 40 82 00 24 */ bne lbl_80270934
lbl_80270914:
/* 80270914 C0 1F 00 00 */ lfs f0, 0(r31)
/* 80270918 D0 1E 00 00 */ stfs f0, 0(r30)
/* 8027091C C0 1F 00 04 */ lfs f0, 4(r31)
/* 80270920 D0 1E 00 04 */ stfs f0, 4(r30)
/* 80270924 C0 1F 00 08 */ lfs f0, 8(r31)
/* 80270928 D0 1E 00 08 */ stfs f0, 8(r30)
/* 8027092C 38 60 00 01 */ li r3, 1
/* 80270930 48 00 00 40 */ b lbl_80270970
lbl_80270934:
/* 80270934 38 61 00 0C */ addi r3, r1, 0xc
/* 80270938 38 81 00 24 */ addi r4, r1, 0x24
/* 8027093C EC 3F 08 24 */ fdivs f1, f31, f1
/* 80270940 4B FF 62 45 */ bl __ml__4cXyzCFf
/* 80270944 7F C3 F3 78 */ mr r3, r30
/* 80270948 38 81 00 0C */ addi r4, r1, 0xc
/* 8027094C 7F C5 F3 78 */ mr r5, r30
/* 80270950 48 0D 67 65 */ bl PSVECSubtract
/* 80270954 48 00 00 18 */ b lbl_8027096C
lbl_80270958:
/* 80270958 4B FF 66 D5 */ bl __eq__4cXyzCFRC3Vec
/* 8027095C 54 60 06 3F */ clrlwi. r0, r3, 0x18
/* 80270960 41 82 00 0C */ beq lbl_8027096C
/* 80270964 38 60 00 01 */ li r3, 1
/* 80270968 48 00 00 08 */ b lbl_80270970
lbl_8027096C:
/* 8027096C 38 60 00 00 */ li r3, 0
lbl_80270970:
/* 80270970 E3 E1 00 48 */ psq_l f31, 72(r1), 0, 0 /* qr0 */
/* 80270974 CB E1 00 40 */ lfd f31, 0x40(r1)
/* 80270978 83 E1 00 3C */ lwz r31, 0x3c(r1)
/* 8027097C 83 C1 00 38 */ lwz r30, 0x38(r1)
/* 80270980 80 01 00 54 */ lwz r0, 0x54(r1)
/* 80270984 7C 08 03 A6 */ mtlr r0
/* 80270988 38 21 00 50 */ addi r1, r1, 0x50
/* 8027098C 4E 80 00 20 */ blr
@@ -1,32 +0,0 @@
lbl_802706D0:
/* 802706D0 7C A0 07 35 */ extsh. r0, r5
/* 802706D4 41 82 00 4C */ beq lbl_80270720
/* 802706D8 A8 C3 00 00 */ lha r6, 0(r3)
/* 802706DC 7C 80 07 34 */ extsh r0, r4
/* 802706E0 7C 06 00 00 */ cmpw r6, r0
/* 802706E4 40 81 00 0C */ ble lbl_802706F0
/* 802706E8 7C 05 00 D0 */ neg r0, r5
/* 802706EC 7C 05 07 34 */ extsh r5, r0
lbl_802706F0:
/* 802706F0 A8 03 00 00 */ lha r0, 0(r3)
/* 802706F4 7C 00 2A 14 */ add r0, r0, r5
/* 802706F8 B0 03 00 00 */ sth r0, 0(r3)
/* 802706FC 7C A6 07 34 */ extsh r6, r5
/* 80270700 7C 85 07 34 */ extsh r5, r4
/* 80270704 A8 03 00 00 */ lha r0, 0(r3)
/* 80270708 7C 05 00 50 */ subf r0, r5, r0
/* 8027070C 7C 06 01 D7 */ mullw. r0, r6, r0
/* 80270710 41 80 00 28 */ blt lbl_80270738
/* 80270714 B0 83 00 00 */ sth r4, 0(r3)
/* 80270718 38 60 00 01 */ li r3, 1
/* 8027071C 4E 80 00 20 */ blr
lbl_80270720:
/* 80270720 A8 63 00 00 */ lha r3, 0(r3)
/* 80270724 7C 80 07 34 */ extsh r0, r4
/* 80270728 7C 03 00 00 */ cmpw r3, r0
/* 8027072C 40 82 00 0C */ bne lbl_80270738
/* 80270730 38 60 00 01 */ li r3, 1
/* 80270734 4E 80 00 20 */ blr
lbl_80270738:
/* 80270738 38 60 00 00 */ li r3, 0
/* 8027073C 4E 80 00 20 */ blr
@@ -1,34 +0,0 @@
lbl_8027065C:
/* 8027065C 54 A5 06 3F */ clrlwi. r5, r5, 0x18
/* 80270660 41 82 00 50 */ beq lbl_802706B0
/* 80270664 88 E3 00 00 */ lbz r7, 0(r3)
/* 80270668 54 88 06 3E */ clrlwi r8, r4, 0x18
/* 8027066C 7C E0 07 34 */ extsh r0, r7
/* 80270670 7C 00 40 00 */ cmpw r0, r8
/* 80270674 40 81 00 0C */ ble lbl_80270680
/* 80270678 7C 05 00 D0 */ neg r0, r5
/* 8027067C 7C 05 07 34 */ extsh r5, r0
lbl_80270680:
/* 80270680 7C E7 2A 14 */ add r7, r7, r5
/* 80270684 7C A6 07 34 */ extsh r6, r5
/* 80270688 7D 05 07 34 */ extsh r5, r8
/* 8027068C 7C E0 07 34 */ extsh r0, r7
/* 80270690 7C 05 00 50 */ subf r0, r5, r0
/* 80270694 7C 06 01 D7 */ mullw. r0, r6, r0
/* 80270698 41 80 00 10 */ blt lbl_802706A8
/* 8027069C 98 83 00 00 */ stb r4, 0(r3)
/* 802706A0 38 60 00 01 */ li r3, 1
/* 802706A4 4E 80 00 20 */ blr
lbl_802706A8:
/* 802706A8 98 E3 00 00 */ stb r7, 0(r3)
/* 802706AC 48 00 00 1C */ b lbl_802706C8
lbl_802706B0:
/* 802706B0 88 63 00 00 */ lbz r3, 0(r3)
/* 802706B4 54 80 06 3E */ clrlwi r0, r4, 0x18
/* 802706B8 7C 03 00 40 */ cmplw r3, r0
/* 802706BC 40 82 00 0C */ bne lbl_802706C8
/* 802706C0 38 60 00 01 */ li r3, 1
/* 802706C4 4E 80 00 20 */ blr
lbl_802706C8:
/* 802706C8 38 60 00 00 */ li r3, 0
/* 802706CC 4E 80 00 20 */ blr
@@ -1,26 +0,0 @@
lbl_80270DC0:
/* 80270DC0 3C E0 80 44 */ lis r7, sincosTable___5JMath@ha /* 0x80439A20@ha */
/* 80270DC4 38 E7 9A 20 */ addi r7, r7, sincosTable___5JMath@l /* 0x80439A20@l */
/* 80270DC8 54 A0 04 38 */ rlwinm r0, r5, 0, 0x10, 0x1c
/* 80270DCC 7C A7 02 14 */ add r5, r7, r0
/* 80270DD0 C0 A5 00 04 */ lfs f5, 4(r5)
/* 80270DD4 7C C7 04 2E */ lfsx f6, r7, r0
/* 80270DD8 C0 44 00 00 */ lfs f2, 0(r4)
/* 80270DDC C0 86 00 00 */ lfs f4, 0(r6)
/* 80270DE0 EC 24 01 72 */ fmuls f1, f4, f5
/* 80270DE4 C0 66 00 08 */ lfs f3, 8(r6)
/* 80270DE8 EC 03 01 B2 */ fmuls f0, f3, f6
/* 80270DEC EC 01 00 2A */ fadds f0, f1, f0
/* 80270DF0 EC 02 00 2A */ fadds f0, f2, f0
/* 80270DF4 D0 03 00 00 */ stfs f0, 0(r3)
/* 80270DF8 C0 24 00 04 */ lfs f1, 4(r4)
/* 80270DFC C0 06 00 04 */ lfs f0, 4(r6)
/* 80270E00 EC 01 00 2A */ fadds f0, f1, f0
/* 80270E04 D0 03 00 04 */ stfs f0, 4(r3)
/* 80270E08 C0 44 00 08 */ lfs f2, 8(r4)
/* 80270E0C EC 23 01 72 */ fmuls f1, f3, f5
/* 80270E10 EC 04 01 B2 */ fmuls f0, f4, f6
/* 80270E14 EC 01 00 28 */ fsubs f0, f1, f0
/* 80270E18 EC 02 00 2A */ fadds f0, f2, f0
/* 80270E1C D0 03 00 08 */ stfs f0, 8(r3)
/* 80270E20 4E 80 00 20 */ blr
@@ -1,94 +0,0 @@
lbl_80270C74:
/* 80270C74 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80270C78 7C 08 02 A6 */ mflr r0
/* 80270C7C 90 01 00 34 */ stw r0, 0x34(r1)
/* 80270C80 7C 65 1B 78 */ mr r5, r3
/* 80270C84 38 61 00 18 */ addi r3, r1, 0x18
/* 80270C88 4B FF 5E AD */ bl __mi__4cXyzCFRC3Vec
/* 80270C8C C0 41 00 18 */ lfs f2, 0x18(r1)
/* 80270C90 D0 41 00 24 */ stfs f2, 0x24(r1)
/* 80270C94 C0 01 00 1C */ lfs f0, 0x1c(r1)
/* 80270C98 D0 01 00 28 */ stfs f0, 0x28(r1)
/* 80270C9C C0 21 00 20 */ lfs f1, 0x20(r1)
/* 80270CA0 D0 21 00 2C */ stfs f1, 0x2c(r1)
/* 80270CA4 D0 41 00 0C */ stfs f2, 0xc(r1)
/* 80270CA8 C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270CAC D0 01 00 10 */ stfs f0, 0x10(r1)
/* 80270CB0 D0 21 00 14 */ stfs f1, 0x14(r1)
/* 80270CB4 38 61 00 0C */ addi r3, r1, 0xc
/* 80270CB8 48 0D 64 81 */ bl PSVECSquareMag
/* 80270CBC C0 02 B7 E0 */ lfs f0, lit_2262(r2)
/* 80270CC0 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270CC4 40 81 00 58 */ ble lbl_80270D1C
/* 80270CC8 FC 00 08 34 */ frsqrte f0, f1
/* 80270CCC C8 82 B7 E8 */ lfd f4, lit_2379(r2)
/* 80270CD0 FC 44 00 32 */ fmul f2, f4, f0
/* 80270CD4 C8 62 B7 F0 */ lfd f3, lit_2380(r2)
/* 80270CD8 FC 00 00 32 */ fmul f0, f0, f0
/* 80270CDC FC 01 00 32 */ fmul f0, f1, f0
/* 80270CE0 FC 03 00 28 */ fsub f0, f3, f0
/* 80270CE4 FC 02 00 32 */ fmul f0, f2, f0
/* 80270CE8 FC 44 00 32 */ fmul f2, f4, f0
/* 80270CEC FC 00 00 32 */ fmul f0, f0, f0
/* 80270CF0 FC 01 00 32 */ fmul f0, f1, f0
/* 80270CF4 FC 03 00 28 */ fsub f0, f3, f0
/* 80270CF8 FC 02 00 32 */ fmul f0, f2, f0
/* 80270CFC FC 44 00 32 */ fmul f2, f4, f0
/* 80270D00 FC 00 00 32 */ fmul f0, f0, f0
/* 80270D04 FC 01 00 32 */ fmul f0, f1, f0
/* 80270D08 FC 03 00 28 */ fsub f0, f3, f0
/* 80270D0C FC 02 00 32 */ fmul f0, f2, f0
/* 80270D10 FC 41 00 32 */ fmul f2, f1, f0
/* 80270D14 FC 40 10 18 */ frsp f2, f2
/* 80270D18 48 00 00 90 */ b lbl_80270DA8
lbl_80270D1C:
/* 80270D1C C8 02 B7 F8 */ lfd f0, lit_2381(r2)
/* 80270D20 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80270D24 40 80 00 10 */ bge lbl_80270D34
/* 80270D28 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80270D2C C0 43 0A E0 */ lfs f2, __float_nan@l(r3) /* 0x80450AE0@l */
/* 80270D30 48 00 00 78 */ b lbl_80270DA8
lbl_80270D34:
/* 80270D34 D0 21 00 08 */ stfs f1, 8(r1)
/* 80270D38 80 81 00 08 */ lwz r4, 8(r1)
/* 80270D3C 54 83 00 50 */ rlwinm r3, r4, 0, 1, 8
/* 80270D40 3C 00 7F 80 */ lis r0, 0x7f80
/* 80270D44 7C 03 00 00 */ cmpw r3, r0
/* 80270D48 41 82 00 14 */ beq lbl_80270D5C
/* 80270D4C 40 80 00 40 */ bge lbl_80270D8C
/* 80270D50 2C 03 00 00 */ cmpwi r3, 0
/* 80270D54 41 82 00 20 */ beq lbl_80270D74
/* 80270D58 48 00 00 34 */ b lbl_80270D8C
lbl_80270D5C:
/* 80270D5C 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270D60 41 82 00 0C */ beq lbl_80270D6C
/* 80270D64 38 00 00 01 */ li r0, 1
/* 80270D68 48 00 00 28 */ b lbl_80270D90
lbl_80270D6C:
/* 80270D6C 38 00 00 02 */ li r0, 2
/* 80270D70 48 00 00 20 */ b lbl_80270D90
lbl_80270D74:
/* 80270D74 54 80 02 7F */ clrlwi. r0, r4, 9
/* 80270D78 41 82 00 0C */ beq lbl_80270D84
/* 80270D7C 38 00 00 05 */ li r0, 5
/* 80270D80 48 00 00 10 */ b lbl_80270D90
lbl_80270D84:
/* 80270D84 38 00 00 03 */ li r0, 3
/* 80270D88 48 00 00 08 */ b lbl_80270D90
lbl_80270D8C:
/* 80270D8C 38 00 00 04 */ li r0, 4
lbl_80270D90:
/* 80270D90 2C 00 00 01 */ cmpwi r0, 1
/* 80270D94 40 82 00 10 */ bne lbl_80270DA4
/* 80270D98 3C 60 80 45 */ lis r3, __float_nan@ha /* 0x80450AE0@ha */
/* 80270D9C C0 43 0A E0 */ lfs f2, __float_nan@l(r3) /* 0x80450AE0@l */
/* 80270DA0 48 00 00 08 */ b lbl_80270DA8
lbl_80270DA4:
/* 80270DA4 FC 40 08 90 */ fmr f2, f1
lbl_80270DA8:
/* 80270DA8 C0 21 00 28 */ lfs f1, 0x28(r1)
/* 80270DAC 4B FF 68 C9 */ bl cM_atan2s__Fff
/* 80270DB0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80270DB4 7C 08 03 A6 */ mtlr r0
/* 80270DB8 38 21 00 30 */ addi r1, r1, 0x30
/* 80270DBC 4E 80 00 20 */ blr
+48
View File
@@ -3,4 +3,52 @@
#include "dolphin/types.h"
namespace JGadget {
namespace binary {
struct TEBit {
u32 value;
};
const void* parseVariableUInt_16_32_following(const void* pu16, u32* pu32First, u32* pu32Second,
TEBit* tebit);
inline u32 align_roundUp(u32 arg0, u32 uAlign) {
return (arg0 + uAlign - 1) & ~(uAlign - 1);
}
struct TParseData {
TParseData(const void* pContent) : raw(pContent) {}
const void* getRaw() const { return raw; }
void setRaw(const void* p) { raw = p; }
const void* raw;
};
template <int T>
struct TParseData_aligned : public TParseData {
TParseData_aligned(const void* pContent) : TParseData(pContent) {}
void setRaw(const void* p) {
if ((u32)p % T != 0) {
JUTWarn w;
w << "misaligned : " << (u32)p;
}
static_cast<TParseData*>(this)->setRaw(p);
}
};
// Base for header and/or block parsing
struct TParse_header_block {
virtual ~TParse_header_block();
virtual bool parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 arg2) = 0;
virtual bool parseBlock_next(const void** ppData_inout, u32* puData_out, u32 arg2) = 0;
bool parse_next(const void** ppData_inout, u32 a2);
};
} // namespace binary
} // namespace JGadget
#endif /* BINARY_H */
+12 -7
View File
@@ -22,15 +22,15 @@ struct TNodeLinkList {
TLinkListNode* node;
};
TNodeLinkList() : mListNode() { Initialize_(); }
TNodeLinkList() : ocObject_() { Initialize_(); }
void Initialize_() {
ptr = NULL;
mListNode.mNext = &mListNode;
mListNode.mPrev = &mListNode;
ocObject_.mNext = &ocObject_;
ocObject_.mPrev = &ocObject_;
}
iterator end() {
iterator iter(&mListNode);
iterator iter(&ocObject_);
return iter;
}
@@ -40,11 +40,11 @@ struct TNodeLinkList {
/* 802DCB08 */ void splice(JGadget::TNodeLinkList::iterator, JGadget::TNodeLinkList&,
JGadget::TNodeLinkList::iterator);
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
/* 802DCBD4 */ iterator Erase(JGadget::TLinkListNode*);
/* 802DCBF8 */ void Remove(JGadget::TLinkListNode*);
/* 0x00 */ TNodeLinkList* ptr;
/* 0x04 */ TLinkListNode mListNode;
/* 0x04 */ TLinkListNode ocObject_;
}; // Size: 0xC
template <typename T, int I>
@@ -55,13 +55,18 @@ struct TLinkList : public TNodeLinkList {
iterator(TNodeLinkList::iterator iter) : TNodeLinkList::iterator(iter) {}
};
TLinkListNode* Element_toNode(T* element) const { return &element->mListNode; }
TLinkListNode* Element_toNode(T* element) const { return &element->ocObject_; }
void Insert(TLinkList::iterator iter, T* element) {
TLinkListNode* node = Element_toNode(element);
TNodeLinkList::Insert(iter, node);
}
iterator Erase(T* element) {
TLinkListNode* node = Element_toNode(element);
return ((TNodeLinkList*)this)->Erase(node);
}
TLinkList::iterator end() {
TNodeLinkList::iterator node_iter = TNodeLinkList::end();
TLinkList::iterator iter(node_iter);
+19
View File
@@ -0,0 +1,19 @@
#ifndef SEARCH_H
#define SEARCH_H
#include "global.h"
namespace JGadget {
//! @todo: mangled name isn't correct, fix this
//! Current: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d
//! Target: toValueFromIndex<PFdd_d>__7JGadgetFiPCPFdd_dUlRCPFdd_d_RCPFdd_d
template <typename T>
inline const T& toValueFromIndex(int idx, const T* pValue, u32 count, const T& fallback) {
ASSERT(pValue != NULL);
return (idx >= count) ? fallback : pValue[idx];
}
} // namespace JGadget
#endif /* SEARCH_H */
+71
View File
@@ -0,0 +1,71 @@
#ifndef VECTOR_H
#define VECTOR_H
#include "global.h"
extern u8 data_804511E0;
extern u8 lit_569[];
namespace JGadget {
namespace vector {
u32 extend_default(u32 arg1, u32 arg2, u32 arg3);
typedef u32 (*ExtendFunc)(u32, u32, u32);
} // namespace vector
template <typename T>
struct TAllocator {
static TAllocator get() {}
inline TAllocator() { _0 = lit_569[0]; }
/* 0x0 */ u8 _0;
/* 0x4 */ u32 _4;
/* 0x8 */ u32 _8;
/* 0xc */ u32 _c;
};
template <typename T, template <class> class Allocator>
struct TVector {
TVector(Allocator<T> alloc) {
_0 = NULL;
pBegin_ = _0;
_c = NULL;
extend = vector::extend_default;
}
void** begin() { return pBegin_; }
void** end() { return pEnd_; }
// void erase(void** arg1, void** arg2) {}
void** _0;
void** pBegin_;
void** pEnd_;
u32 _c;
vector::ExtendFunc extend;
};
struct TVector_pointer_void : TVector<void*, TAllocator> {
/* 802DCCD0 */ TVector_pointer_void(JGadget::TAllocator<void*> const&);
/* 802DCCFC */ ~TVector_pointer_void();
/* 802DCDC4 */ void erase(void**, void**);
void insert(void**, void* const&);
void clear() { erase(begin(), end()); }
void push_back(const void*& ref) { insert(end(), (void* const&)ref); }
};
template <typename T>
struct TVector_pointer : TVector_pointer_void {
// TVector_pointer(const TAllocator<void*>& allocator) : TVector_pointer_void(allocator) {}
~TVector_pointer() {}
void push_back(const T& ref) {
static_cast<TVector_pointer_void*>(this)->push_back((const void*&)ref);
}
};
} // namespace JGadget
#endif /* VECTOR_H */
@@ -1,6 +1,392 @@
#ifndef FUNCTIONVALUE_H
#define FUNCTIONVALUE_H
#include "JSystem/JGadget/search.h"
#include "JSystem/JGadget/vector.h"
#include "dolphin/types.h"
extern u8 lit_652[];
namespace JStudio {
typedef f64 (*ExtrapolateParameter)(f64, f64);
class TFunctionValue;
class TFunctionValueAttributeSet;
class TFunctionValueAttribute_refer;
class TFunctionValueAttribute_range;
class TFunctionValueAttribute_interpolate;
class TFunctionValue {
public:
enum TEProgress { PROG_INIT };
enum TEAdjust { ADJ_INIT };
enum TEOutside { OUT_INIT };
enum TEInterpolate {};
/* 80281690 */ TFunctionValue();
/* 802816A0 */ virtual ~TFunctionValue() = 0;
virtual u32 getType() const = 0;
virtual TFunctionValueAttributeSet getAttributeSet() = 0;
virtual void initialize() = 0;
virtual void prepare() = 0;
virtual f64 getValue(f64 arg1) = 0;
/* 80281648 */ static ExtrapolateParameter toFunction_outside(int);
static ExtrapolateParameter toFunction(TFunctionValue::TEOutside outside) {
return toFunction_outside(outside);
}
};
class TFunctionValueAttributeSet_const {
public:
TFunctionValueAttributeSet_const(TFunctionValueAttribute_refer* refer,
TFunctionValueAttribute_range* range,
TFunctionValueAttribute_interpolate* interp)
: refer_(refer), range_(range), interp_(interp) {}
TFunctionValueAttribute_refer* refer_get() const { return refer_; }
TFunctionValueAttribute_range* range_get() const { return range_; }
TFunctionValueAttribute_interpolate* interpolate_get() const { return interp_; }
private:
/* 0x00 */ TFunctionValueAttribute_refer* refer_;
/* 0x04 */ TFunctionValueAttribute_range* range_;
/* 0x08 */ TFunctionValueAttribute_interpolate* interp_;
};
class TFunctionValueAttributeSet : public TFunctionValueAttributeSet_const {
public:
TFunctionValueAttributeSet(TFunctionValueAttribute_refer* refer,
TFunctionValueAttribute_range* range,
TFunctionValueAttribute_interpolate* interp)
: TFunctionValueAttributeSet_const(refer, range, interp) {}
TFunctionValueAttribute_refer* refer_get() const {
return static_cast<const TFunctionValueAttributeSet_const*>(this)->refer_get();
}
TFunctionValueAttribute_range* range_get() const {
return static_cast<const TFunctionValueAttributeSet_const*>(this)->range_get();
}
TFunctionValueAttribute_interpolate* interpolate_get() const {
return static_cast<const TFunctionValueAttributeSet_const*>(this)->interpolate_get();
}
};
class TFunctionValueAttribute_refer : public JGadget::TVector_pointer<TFunctionValue*> {
public:
// TFunctionValueAttribute_refer() :
// JGadget::TVector_pointer<TFunctionValue*>(JGadget::TAllocator<void*>()) {}
~TFunctionValueAttribute_refer() {}
/* 802816E8 */ void refer_initialize();
const TFunctionValueAttribute_refer* refer_getContainer() const { return this; }
JGadget::TVector_pointer<TFunctionValue*>& refer_referContainer() { return *this; }
bool refer_isReferring(const TFunctionValue* p) const { return false; } // todo
};
class TFunctionValueAttribute_range {
public:
/* 80281D18 */ TFunctionValueAttribute_range();
/* 80281918 */ void range_initialize();
/* 8028194C */ void range_prepare();
/* 802819F4 */ void range_set(f64, f64);
/* 80281A08 */ f64 range_getParameter(f64, f64, f64) const;
TFunctionValue::TEProgress range_getProgress() const {
return (TFunctionValue::TEProgress)mProgress;
}
void range_setProgress(TFunctionValue::TEProgress progress) { mProgress = progress; }
TFunctionValue::TEAdjust range_getAdjust() const { return (TFunctionValue::TEAdjust)mAdjust; }
void range_setAdjust(TFunctionValue::TEAdjust adjust) { mAdjust = adjust; }
void range_setOutside(TFunctionValue::TEOutside outside) { range_setOutside(outside, outside); }
void range_setOutside(TFunctionValue::TEOutside begin, TFunctionValue::TEOutside end) {
range_setOutside_begin(begin);
range_setOutside_end(end);
}
void range_setOutside_begin(TFunctionValue::TEOutside begin) { mBegin = begin; }
void range_setOutside_end(TFunctionValue::TEOutside end) { mEnd = end; }
f64 range_getParameter_outside(f64 arg1) const {
f64 temp = arg1 - fBegin_;
f64 result = temp;
if (temp < *(f64*)&lit_652) {
result = TFunctionValue::toFunction(mBegin)(temp, fDifference_);
} else if (temp >= fDifference_) {
result = TFunctionValue::toFunction(mEnd)(temp, fDifference_);
}
return result + fBegin_;
}
f64 range_getParameter_progress(f64 arg1) const { return _20 + _28 * (arg1 - _20); }
private:
/* 0x00 */ f64 fBegin_;
/* 0x08 */ f64 fEnd_;
/* 0x10 */ f64 fDifference_;
/* 0x18 */ s8 mProgress;
/* 0x19 */ s8 mAdjust;
/* 0x1A */ s8 _1a[2];
/* 0x1C */ u32 _1c;
/* 0x20 */ f64 _20;
/* 0x28 */ f64 _28;
/* 0x30 */ TFunctionValue::TEOutside mBegin;
/* 0x34 */ TFunctionValue::TEOutside mEnd;
};
class TFunctionValueAttribute_interpolate {
public:
TFunctionValueAttribute_interpolate() : interpolate_(0) {}
void interpolate_initialize() { interpolate_ = 0; }
void interpolate_prepare() {}
u32 interpolate_get() const { return interpolate_; }
void interpolate_set(TFunctionValue::TEInterpolate interpolate) { interpolate_ = interpolate; }
private:
/* 0x0 */ u32 interpolate_;
};
class TFunctionValue_constant : public TFunctionValue {
public:
/* 8028236C */ TFunctionValue_constant();
/* 80283D44 */ virtual ~TFunctionValue_constant() {}
/* 802823B4 */ virtual u32 getType() const;
/* 802823BC */ virtual TFunctionValueAttributeSet getAttributeSet();
/* 802823D0 */ virtual void initialize();
/* 802823E0 */ virtual void prepare();
/* 802823E4 */ virtual f64 getValue(f64);
void data_set(f64 value) { fValue_ = value; }
private:
f64 fValue_;
};
class TFunctionValue_composite : TFunctionValue, TFunctionValueAttribute_refer {
public:
struct TData {
TData(void* data) : u32data((u32)data) {}
TData(const void* data) : rawData(data) {}
TData(u32 data) : u32data(data) {}
TData(f32 data) : f32data(data) {}
inline void operator=(const TData& rhs) { f32data = rhs.f32data; }
union {
const void* rawData;
u32 u32data;
f64 f32data;
};
};
typedef f64 (*UnkFunc)(f64, const TFunctionValueAttribute_refer*,
const TFunctionValue_composite::TData*);
typedef f64 (*CompositeFunc)(const JGadget::TVector_pointer<TFunctionValue>&,
const TFunctionValue_composite::TData&, f64);
/* 80281D5C */ TFunctionValue_composite();
/* 80283DA4 */ virtual ~TFunctionValue_composite() {}
/* 80281DB8 */ virtual u32 getType() const;
/* 80281DC0 */ virtual TFunctionValueAttributeSet getAttributeSet();
/* 80281DE0 */ virtual void initialize();
/* 80281E24 */ virtual void prepare();
/* 80281E28 */ virtual f64 getValue(f64);
/* 80281E5C */ void composite_raw(TVector_pointer<TFunctionValue*> const&, TData const&, f64);
/* 80281EC8 */ void composite_index(TVector_pointer<TFunctionValue*> const&, TData const&, f64);
/* 8028202C */ void composite_parameter(TVector_pointer<TFunctionValue*> const&, TData const&,
f64);
/* 80282094 */ void composite_add(TVector_pointer<JStudio::TFunctionValue*> const&,
TData const&, f64);
/* 80282118 */ void composite_subtract(TVector_pointer<TFunctionValue*> const&, TData const&,
f64);
/* 80282200 */ void composite_multiply(TVector_pointer<TFunctionValue*> const&, TData const&,
f64);
/* 80282284 */ void composite_divide(TVector_pointer<TFunctionValue*> const&, TData const&,
f64);
void data_set(CompositeFunc fn, const TData& dat) {
pfn_ = (UnkFunc)fn;
data_setData(dat);
}
const TData* data_getData() const { return &data; }
void data_setData(const TData& dat) { data = dat; }
private:
UnkFunc pfn_;
TData data;
};
class TFunctionValue_transition : TFunctionValue,
TFunctionValueAttribute_range,
TFunctionValueAttribute_interpolate {
public:
/* 802823EC */ TFunctionValue_transition();
/* 80283CE4 */ virtual ~TFunctionValue_transition() {}
/* 8028244C */ virtual u32 getType() const;
/* 80282454 */ virtual TFunctionValueAttributeSet getAttributeSet();
/* 80282484 */ virtual void initialize();
/* 802824D0 */ virtual void prepare();
/* 802824F4 */ virtual f64 getValue(f64);
void data_set(f64 a1, f64 a2) {
_48 = a1;
_50 = a2;
}
private:
/* 0x48 */ f64 _48;
/* 0x50 */ f64 _50;
};
class TFunctionValue_list : TFunctionValue,
TFunctionValueAttribute_range,
TFunctionValueAttribute_interpolate {
public:
struct TIndexData_ {
f64 _0;
f64 _8;
u32 _10;
};
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list&, const TIndexData_&);
/* 802826BC */ TFunctionValue_list();
virtual ~TFunctionValue_list() {}
/* 80282720 */ virtual u32 getType() const;
/* 80282728 */ virtual TFunctionValueAttributeSet getAttributeSet();
/* 80282758 */ virtual void initialize();
/* 802827A8 */ virtual void prepare();
/* 80282858 */ virtual f64 getValue(f64);
void data_set(const f32* pf, u32 u) {
ASSERT((pf != NULL) || (u == 0));
_44 = pf;
_48 = u;
}
void data_setInterval(f64 f) {
ASSERT(f > TValue(0));
_50 = f;
}
/* 80282C10 */ static f64
update_INTERPOLATE_NONE_(JStudio::TFunctionValue_list const&,
JStudio::TFunctionValue_list::TIndexData_ const&);
/* 80282C24 */ static f64
update_INTERPOLATE_LINEAR_(JStudio::TFunctionValue_list const&,
JStudio::TFunctionValue_list::TIndexData_ const&);
/* 80282C58 */ static f64
update_INTERPOLATE_PLATEAU_(JStudio::TFunctionValue_list const&,
JStudio::TFunctionValue_list::TIndexData_ const&);
/* 80282CA8 */ static f64
update_INTERPOLATE_BSPLINE_dataMore3_(JStudio::TFunctionValue_list const&,
JStudio::TFunctionValue_list::TIndexData_ const&);
private:
/* 0x44 */ const f32* _44;
/* 0x48 */ u32 _48;
/* 0x50 */ f64 _50;
/* 0x58 */ update_INTERPOLATE _58;
};
class TFunctionValue_list_parameter : TFunctionValue,
TFunctionValueAttribute_range,
TFunctionValueAttribute_interpolate {
public:
struct TIterator_data_ {
TIterator_data_(const f32* value) : value_(value) {}
TIterator_data_(const TIterator_data_& other) : value_(other.value_) {}
void operator=(const TIterator_data_& rhs) { value_ = rhs.value_; }
const f32* get() const { return value_; }
void set(const f32* value) { value_ = value; }
const f32* value_;
};
typedef f64 (*update_INTERPOLATE)(const TFunctionValue_list_parameter&, f64);
/* 80282D34 */ TFunctionValue_list_parameter();
/* 80283C24 */ virtual ~TFunctionValue_list_parameter() {}
/* 80282DA0 */ virtual u32 getType() const;
/* 80282DA8 */ virtual TFunctionValueAttributeSet getAttributeSet();
/* 80282DD8 */ void data_set(f32 const*, u32);
/* 80282E08 */ virtual void initialize();
/* 80282E60 */ virtual void prepare();
/* 80282F10 */ virtual f64 getValue(f64);
/* 80282FE8 */ static f64
update_INTERPOLATE_NONE_(JStudio::TFunctionValue_list_parameter const&, f64);
/* 80282FF4 */ static f64
update_INTERPOLATE_LINEAR_(JStudio::TFunctionValue_list_parameter const&, f64);
/* 80283024 */ static f64
update_INTERPOLATE_PLATEAU_(JStudio::TFunctionValue_list_parameter const&, f64);
/* 80283060 */ static f64
update_INTERPOLATE_BSPLINE_dataMore3_(JStudio::TFunctionValue_list_parameter const&, f64);
private:
/* 0x44 */ const f32* _44;
/* 0x48 */ u32 _48;
/* 0x4c */ TIterator_data_ dat1;
/* 0x50 */ TIterator_data_ dat2;
/* 0x54 */ TIterator_data_ dat3;
/* 0x58 */ update_INTERPOLATE _58;
};
class TFunctionValue_hermite : TFunctionValue, TFunctionValueAttribute_range {
public:
struct TIterator_data_ {
TIterator_data_(const TFunctionValue_hermite& rParent, const f32* value) {
value_ = value;
size_ = rParent.data_getSize();
}
TIterator_data_(const TIterator_data_& other) {
value_ = other.value_;
size_ = other.size_;
}
void set(const f32* value, u32 size) {
value_ = value;
size_ = size;
}
void operator=(const TIterator_data_& rhs) {
value_ = rhs.value_;
size_ = rhs.size_;
}
/* 0x00 */ const f32* value_;
/* 0x04 */ u32 size_;
};
/* 802832C4 */ TFunctionValue_hermite();
/* 80283BC4 */ virtual ~TFunctionValue_hermite() {}
/* 80283344 */ virtual u32 getType() const;
/* 8028334C */ virtual TFunctionValueAttributeSet getAttributeSet();
/* 8028336C */ void data_set(f32 const*, u32, u32);
/* 802833BC */ virtual void initialize();
/* 80283428 */ virtual void prepare();
/* 8028344C */ virtual f64 getValue(f64);
u32 data_getSize() const { return uSize_; }
private:
/* 0x40 */ const f32* pf_;
/* 0x44 */ u32 u_;
/* 0x48 */ u32 uSize_;
/* 0x4c */ TIterator_data_ dat1;
/* 0x50 */ TIterator_data_ dat2;
/* 0x54 */ TIterator_data_ dat3;
};
} // namespace JStudio
#endif /* FUNCTIONVALUE_H */
@@ -1,6 +1,52 @@
#ifndef FVB_DATA_PARSE_H
#define FVB_DATA_PARSE_H
#include "dolphin/types.h"
#include "JSystem/JStudio/JStudio/fvb-data.h"
namespace JStudio {
namespace fvb {
namespace data {
class TParse_TBlock : public TParseData_aligned<4> {
public:
TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {}
const TBlock* get() const { return (TBlock*)getRaw(); }
u32 get_size() const { return get()->size; }
const void* getNext() const {
u32 size = get_size();
return (const void*)((u8*)getRaw() + size);
}
u16 get_type() const { return get()->type; }
u16 get_IDSize() const { return get()->id_size; }
const void* getBlockEnd_() const { return (u8*)getRaw() + sizeof(TBlock); }
const void* get_ID() const {
const void* ret = 0;
if (get_IDSize())
ret = getBlockEnd_();
return ret;
}
const void* getContent() const {
u32 size = align_roundUp(get_IDSize(), 4);
return (const void*)((int)getBlockEnd_() + size);
}
};
class TParse_TParagraph : public TParseData_aligned<4> {
public:
struct TData {
/* 0x04 */ u32 u32Size;
/* 0x08 */ u32 u32Type;
/* 0x0C */ const void* pContent;
};
TParse_TParagraph(const void* content) : TParseData_aligned<4>(content) {}
/* 802850AC */ void getData(JStudio::fvb::data::TParse_TParagraph::TData*) const;
};
} // namespace data
} // namespace fvb
} // namespace JStudio
#endif /* FVB_DATA_PARSE_H */
+58 -1
View File
@@ -1,6 +1,63 @@
#ifndef FVB_DATA_H
#define FVB_DATA_H
#include "dolphin/types.h"
#include "JSystem/JGadget/binary.h"
#include "JSystem/JStudio/JStudio/functionvalue.h"
using namespace JGadget::binary;
namespace JStudio {
namespace fvb {
namespace data {
extern f32 ga4cSignature[1 + 1 /* padding */];
const int PARAGRAPH_DATA = 1;
typedef enum TEComposite {
/* 0x0 */ COMPOSITE_NONE,
/* 0x1 */ COMPOSITE_RAW,
/* 0x2 */ COMPOSITE_IDX,
/* 0x3 */ COMPOSITE_PARAM,
/* 0x4 */ COMPOSITE_ADD,
/* 0x5 */ COMPOSITE_SUB,
/* 0x6 */ COMPOSITE_MUL,
/* 0x7 */ COMPOSITE_DIV,
/* 0x8 */ COMPOSITE_ENUM_SIZE,
};
typedef const void* (*CompositeOperation)(TFunctionValue_composite::TData);
struct TBlock {
/* 0x0 */ u32 size;
/* 0x4 */ u16 type;
/* 0x6 */ u16 id_size;
/* 0x8 */ u8 id[0];
};
struct THeader {
/* 0x00 */ char signature[4];
/* 0x04 */ u16 byte_order; // must be 0xFEFF
/* 0x06 */ u16 version; // 0-1 = obselete, 2-7 = OK
/* 0x08 */ u32 _8;
/* 0x0C */ u32 block_number;
/* 0x10 */ u8 content[0];
};
// Parses a THeader
class TParse_THeader : public TParseData_aligned<4> {
public:
TParse_THeader(const void* p) : TParseData_aligned<4>(p) {}
const THeader* get() const { return (THeader*)getRaw(); }
const void* getContent() const { return ((THeader*)getRaw())->content; }
const char* get_signature() const { return get()->signature; }
u16 get_byteOrder() const { return get()->byte_order; }
u16 get_version() const { return get()->version; }
u32 get_blockNumber() const { return get()->block_number; }
};
} // namespace data
} // namespace fvb
} // namespace JStudio
#endif /* FVB_DATA_H */
+154 -1
View File
@@ -1,6 +1,159 @@
#ifndef FVB_H
#define FVB_H
#include "dolphin/types.h"
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/JStudio/fvb-data-parse.h"
#include "JSystem/JStudio/JStudio/object-id.h"
#include "global.h"
namespace JStudio {
namespace fvb {
class TControl;
class TParse : public TParse_header_block {
public:
/* 80284ADC */ TParse(JStudio::fvb::TControl*);
/* 80284AFC */ virtual ~TParse();
/* 80284B5C */ virtual bool parseHeader_next(void const**, u32*, u32);
/* 80284BF0 */ virtual bool parseBlock_next(void const**, u32*, u32);
TControl* getControl() const { return pControl_; }
private:
TControl* pControl_;
};
class TObject : public object::TObject_ID {
public:
TObject(const data::TParse_TBlock& block);
TObject(void const* id, u32 id_size, TFunctionValue* value);
explicit TObject(const data::TParse_TBlock& block, TFunctionValue* value)
: TObject_ID(block.get_ID(), block.get_IDSize()), pfv_(value) {
ASSERT(pfv_ != NULL);
}
virtual ~TObject() = 0;
virtual void prepare_data_(const data::TParse_TParagraph::TData& data, TControl* control) = 0;
void prepare(const data::TParse_TBlock& block, TControl* control);
TFunctionValue* const& referFunctionValue() { return pfv_; }
private:
/* 0x0C */ JGadget::TLinkListNode mNode;
/* 0x14 */ TFunctionValue* pfv_;
};
class TFactory {
public:
/* 80284918 */ virtual ~TFactory();
/* 80284960 */ virtual TObject* create(JStudio::fvb::data::TParse_TBlock const&);
/* 80284AA0 */ virtual void destroy(JStudio::fvb::TObject*);
};
class TControl {
public:
/* 80284668 */ TControl();
/* 80284698 */ virtual ~TControl();
/* 80284704 */ void appendObject(JStudio::fvb::TObject*);
/* 80284750 */ void removeObject(JStudio::fvb::TObject*);
/* 80284780 */ void destroyObject(JStudio::fvb::TObject*);
/* 802847D0 */ void destroyObject_all();
/* 80284834 */ TObject* getObject(void const*, u32);
/* 802848D4 */ TObject* getObject_index(u32);
TFactory* getFactory() const { return pFactory; }
private:
TFactory* pFactory;
JGadget::TLinkList<TObject, 12> ocObject_;
};
class TObject_composite : public TObject {
public:
/* 80284254 */ TObject_composite(JStudio::fvb::data::TParse_TBlock const&);
/* 802842D4 */ virtual void prepare_data_(JStudio::fvb::data::TParse_TParagraph::TData const&,
JStudio::fvb::TControl*);
/* 80284F78 */ virtual ~TObject_composite() {}
private:
TFunctionValue_composite fnValue;
};
class TObject_constant : public TObject {
public:
/* 80284338 */ TObject_constant(data::TParse_TBlock const&);
/* 80284EF4 */ virtual ~TObject_constant() {}
/* 802843B8 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_constant fnValue;
};
class TObject_transition : public TObject {
public:
/* 802843C8 */ TObject_transition(data::TParse_TBlock const&);
/* 80284E70 */ virtual ~TObject_transition() {}
/* 80284448 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_transition fnValue;
};
class TObject_list : public TObject {
public:
struct ListData {
/* 0x0 */ f32 _0;
/* 0x4 */ u32 _4;
/* 0x8 */ f32 _8[0];
};
/* 80284460 */ TObject_list(data::TParse_TBlock const&);
/* 80284DEC */ virtual ~TObject_list() {}
/* 802844E0 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_list fnValue;
};
class TObject_list_parameter : public TObject {
public:
struct ListData {
u32 _0;
f32 _4[0];
};
/* 80284500 */ TObject_list_parameter(data::TParse_TBlock const&);
/* 80284D68 */ virtual ~TObject_list_parameter() {}
/* 80284580 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_list_parameter fnValue;
};
struct TObject_hermite : public TObject {
public:
struct ListData {
u32 _0; // u : 28, uSize : 4
f32 _4[0];
};
/* 802845B0 */ TObject_hermite(data::TParse_TBlock const&);
/* 80284CE4 */ virtual ~TObject_hermite() {}
/* 80284630 */ virtual void prepare_data_(data::TParse_TParagraph::TData const&, TControl*);
private:
TFunctionValue_hermite fnValue;
};
} // namespace fvb
} // namespace JStudio
#endif /* FVB_H */
@@ -3,4 +3,27 @@
#include "dolphin/types.h"
namespace JStudio {
namespace object {
struct TPRObject_ID_equal {};
struct TIDData {
public:
TIDData(const void* id, u32 id_size) : mID(id), mID_size(id_size) {}
/* 80288988 */ void isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
private:
const void* mID;
u32 mID_size;
};
struct TObject_ID : public TIDData {
TObject_ID(const void* id, u32 id_size) : TIDData(id, id_size) {}
};
} // namespace object
} // namespace JStudio
#endif /* OBJECT_ID_H */
@@ -1,6 +1,110 @@
#ifndef STB_DATA_PARSE_H
#define STB_DATA_PARSE_H
#include "dolphin/types.h"
#include "JSystem/JGadget/binary.h"
#include "JSystem/JStudio/JStudio/stb-data.h"
using namespace JGadget::binary;
namespace JStudio {
namespace stb {
namespace data {
// Parses a THeader
class TParse_THeader : public TParseData_aligned<4> {
public:
TParse_THeader(const void* p) : TParseData_aligned<4>(p) {}
const THeader* get() const { return (THeader*)getRaw(); }
const void* getContent() const { return ((THeader*)getRaw())->content; }
const char* get_signature() const { return get()->signature; }
u16 get_byteOrder() const { return get()->byte_order; }
u16 get_version() const { return get()->version; }
u32 get_blockNumber() const { return get()->block_number; }
};
class TParse_TBlock : public TParseData_aligned<4> {
public:
TParse_TBlock(const void* content) : TParseData_aligned<4>(content) {}
const TBlock* get() const { return (TBlock*)getRaw(); }
const TBlock* getNext() const { return (TBlock*)((u8*)getRaw() + get_size()); }
u32 get_size() const { return get()->size; }
u32 get_type() const { return get()->type; }
};
class TParse_TSequence : public TParseData_aligned<4> {
public:
struct TData {
/* 0x00 */ u8 type;
/* 0x04 */ u32 param;
/* 0x08 */ const void* content;
/* 0x0C */ const void* next;
};
TParse_TSequence(const void* content) : TParseData_aligned<4>(content) {}
/* 802899BC */ void getData(TData*) const;
const void* get() const { return getRaw(); }
u32 get_head() const { return *(u32*)get(); }
};
class TParse_TParagraph : public TParseData_aligned<4> {
public:
struct TData {
/* 0x00 */ u32 type;
/* 0x04 */ u32 param;
/* 0x08 */ const void* content;
/* 0x0C */ const void* next;
};
TParse_TParagraph(const void* content) : TParseData_aligned<4>(content) {}
/* 80289A08 */ void getData(TData*) const;
};
struct TParse_TParagraph_data : public TParseData_aligned<4> {
struct TData {
/* 0x00 */ u8 _0;
/* 0x04 */ u32 _4;
/* 0x08 */ u32 _8;
/* 0x0C */ const void* _c;
/* 0x10 */ const void* _10;
};
TParse_TParagraph_data(const void* content) : TParseData_aligned<4>(content) {}
/* 80289A80 */ void getData(TData*) const;
};
// Parses a TObject ("demo object")
class TParse_TBlock_object : public TParse_TBlock {
public:
TParse_TBlock_object(const void* content) : TParse_TBlock(content) {}
const TBlock_object* get() const { return (TBlock_object*)getRaw(); }
const void* getContent() const {
return ((TBlock_object*)getRaw())->id + align_roundUp(get_IDSize(), 4);
}
u16 get_flag() const { return get()->flag; }
u16 get_IDSize() const { return get()->id_size; }
const void* get_ID() const { return get()->id; }
};
class TParse_TParagraph_dataID : public TParseData_aligned<4> {
public:
TParse_TParagraph_dataID(const void* pContent) : TParseData_aligned<4>(pContent) {}
const TParagraph* get() const { return (TParagraph*)getRaw(); }
u16 get_IDSize() const { return get()->id_size; }
const void* get_ID() const { return get()->id; }
const void* getContent() const {
return ((TParagraph*)getRaw())->id + align_roundUp(get_IDSize(), 4);
}
};
} // namespace data
} // namespace stb
} // namespace JStudio
#endif /* STB_DATA_PARSE_H */
@@ -3,4 +3,67 @@
#include "dolphin/types.h"
namespace JStudio {
namespace stb {
namespace data {
const int guBit_TSequence_type = 24;
const int BLOCK_SOUND = 'JSND';
const int BLOCK_ACTOR = 'JACT';
const int BLOCK_AMBIENTLIGHT = 'JABL';
const int BLOCK_CAMERA = 'JCMR';
const int BLOCK_FOG = 'JFOG';
const int BLOCK_LIGHT = 'JLIT';
const int BLOCK_MESSAGE = 'JMSG';
const int BLOCK_PARTICLE = 'JPTC';
const int BLOCK_NONE = -1;
// Used to expand a signed 24 int to a signed 32 int
const u32 gu32Mask_TSequence_value_signExpansion = 0xFF000000;
extern const u32 ga4cSignature; // 'STB/0'
extern const u8 gauDataSize_TEParagraph_data[32];
inline void toString_block(char* a5c, u32 arg1) {
// from debug, todo
}
struct THeader {
struct Target {
/* 0x00 */ char name[8]; // "jstudio"
/* 0x08 */ u16 _8[3];
/* 0x0E */ u16 target_version;
};
/* 0x00 */ char signature[4];
/* 0x04 */ u16 byte_order; // must be 0xFEFF
/* 0x06 */ u16 version; // 0-1 = obselete, 2-7 = OK
/* 0x08 */ u32 _8;
/* 0x0C */ u32 block_number;
/* 0x10 */ Target target;
/* 0x20 */ u8 content[0];
};
struct TBlock {
/* 0x0 */ u32 size;
/* 0x4 */ u32 type; // char[4] JMSG, JSND, JACT, ...
};
struct TBlock_object : TBlock {
/* 0x8 */ u16 flag;
/* 0xA */ u16 id_size;
/* 0xC */ u8 id[0]; // unique identifier
///* ??? */ u8 content[0];
};
struct TParagraph {
/* 0x0 */ u16 _0;
/* 0x2 */ u16 id_size;
/* 0x4 */ u8 id[0]; // unique identifier
};
} // namespace data
} // namespace stb
} // namespace JStudio
#endif /* STB_DATA_H */
+149 -1
View File
@@ -1,6 +1,154 @@
#ifndef STB_H
#define STB_H
#include "dolphin/types.h"
#include "JSystem/JGadget/linklist.h"
#include "JSystem/JStudio/JStudio/object-id.h"
#include "JSystem/JStudio/JStudio/stb-data-parse.h"
#include "global.h"
namespace JStudio {
namespace stb {
class TControl;
class TParse : public TParse_header_block {
public:
/* 80289640 */ TParse(TControl*);
/* 80289660 */ virtual ~TParse();
/* 802896C0 */ virtual bool parseHeader_next(void const**, u32*, u32);
/* 8028978C */ virtual bool parseBlock_next(void const**, u32*, u32);
/* 802897E0 */ virtual bool parseHeader(data::TParse_THeader const&, u32);
/* 802897E8 */ virtual bool parseBlock_block(data::TParse_TBlock const&, u32);
/* 80289820 */ virtual bool parseBlock_object(data::TParse_TBlock_object const&, u32);
TControl* getControl() const { return pControl; }
private:
TControl* pControl;
};
class TObject : public object::TObject_ID {
public:
enum TEStatus {
/* 0x0 */ STATUS_STILL = 0,
/* 0x1 */ STATUS_END = 1 << 0,
/* 0x2 */ STATUS_WAIT = 1 << 1,
/* 0x4 */ STATUS_SUSPEND = 1 << 2,
/* 0x8 */ STATUS_INACTIVE = 1 << 3,
};
/* 80288AC0 */ TObject(data::TParse_TBlock_object const&);
/* 80288A78 */ explicit TObject(u32, void const*, u32);
/* 80288B30 */ virtual ~TObject();
/* 80288B78 */ void setFlag_operation(u8, int);
/* 80288BD0 */ void reset(void const*);
/* 80288BE8 */ int forward(u32);
/* 80288E18 */ virtual void do_begin();
/* 80288E1C */ virtual void do_end();
/* 80288E20 */ virtual void do_paragraph(u32, void const*, u32);
/* 80288E24 */ virtual void do_wait(u32);
/* 80288E28 */ virtual void do_data(void const*, u32, void const*, u32);
/* 80288E2C */ void process_sequence_();
/* 80288F80 */ void process_paragraph_reserved_(u32, void const*, u32);
const char* toString_status(int status);
void on_begin() { do_begin(); }
void on_end() { do_end(); }
void on_paragraph(u32 arg1, const void* arg2, u32 arg3) { do_paragraph(arg1, arg2, arg3); }
void on_wait(u32 arg1) { do_wait(arg1); }
void on_data(const void* arg1, u32 arg2, const void* arg3, u32 arg4) {
do_data(arg1, arg2, arg3, arg4);
}
TControl* getControl() const { return pControl; }
void setControl_(TControl* control) { pControl = control; }
int getSuspend() const { return _20; }
void setSuspend(s32 val) { _20 = val; }
bool isSuspended() const { return getSuspend() > 0; }
void suspend(s32 val) { _20 += val; }
const void* getSequence() const { return pSequence; }
void setSequence_(const void* arg1) { pSequence = arg1; }
const void* getSequence_offset(s32 i_no) const {
int s32Val = (s32)getSequence();
return (const void*)(s32Val + i_no);
}
const void* getSequence_next() const { return pSequence_next; }
void setSequence_next(const void* seq) { pSequence_next = seq; }
u32 getWait() const { return u32Wait_; }
void setWait(u32 wait) { u32Wait_ = wait; }
TEStatus getStatus() const { return mStatus; }
void setStatus_(TEStatus status) { mStatus = status; }
u32 toInt32FromUInt24_(u32 val) {
if (val & 0x800000) {
val |= data::gu32Mask_TSequence_value_signExpansion;
}
return val;
}
void setFlag_operation_(u32 u32Data) {
ASSERT((u32Data >> data::guBit_TSequence_type) == 0);
setFlag_operation(u32Data >> 16, u32Data & 0xFFFF);
}
/* 0x10 */ JGadget::TLinkListNode ocObject_;
private:
/* 0x14 */ TControl* pControl;
/* 0x18 */ u32 signature;
/* 0x1C */ u16 mFlag;
/* 0x1E */ u8 bSequence_;
/* 0x20 */ u32 _20; // "second per frame"?
/* 0x24 */ const void* pSequence;
/* 0x28 */ const void* pSequence_next;
/* 0x2C */ u32 u32Wait_;
/* 0x30 */ TEStatus mStatus;
};
class TFactory {
public:
/* 802895B4 */ virtual ~TFactory();
/* 802895FC */ virtual TObject* create(data::TParse_TBlock_object const&);
/* 80289604 */ virtual void destroy(TObject*);
};
class TObject_control : public TObject {
public:
/* 80289068 */ TObject_control(void const*, u32);
/* 80289134 */ ~TObject_control() {}
};
// Manages TObjects
class TControl {
public:
/* 802890B4 */ TControl();
/* 80289194 */ virtual ~TControl();
/* 80289228 */ void appendObject(TObject*);
/* 80289278 */ void removeObject(TObject*);
/* 802892B0 */ void destroyObject(TObject*);
/* 80289300 */ void destroyObject_all();
/* 80289364 */ TObject* getObject(void const*, u32);
/* 80289404 */ void reset();
/* 802894B4 */ void forward(u32);
void setStatus_(u32 status) { mStatus = status; }
void resetStatus_() { setStatus_(0); }
bool isSuspended() const { return _54 > 0; }
TFactory* getFactory() const { return pFactory; }
TObject_control& referObject_control() { return mObject_control; }
private:
/* 0x04 */ u32 _4;
/* 0x08 */ u32 _8;
/* 0x0C */ TFactory* pFactory;
/* 0x10 */ JGadget::TLinkList<TObject, 12> mObjectContainer;
/* 0x1C */ u32 mStatus;
/* 0x20 */ TObject_control mObject_control;
/* 0x54 */ s32 _54; // "second per frame"?
};
} // namespace stb
} // namespace JStudio
#endif /* STB_H */
+5
View File
@@ -4,6 +4,11 @@
#include "SSystem/SComponent/c_xyz.h"
#include "dolphin/mtx/mtx.h"
#include "dolphin/types.h"
#include "msl_c/math.h"
inline bool cLib_IsZero(f32 f) {
return fabsf(f) < 8e-11f;
}
void cLib_memCpy(void* dst, const void* src, unsigned long size);
void cLib_memSet(void* ptr, int value, unsigned long size);
+7 -4
View File
@@ -4,6 +4,7 @@
#include "dolphin/mtx/vec.h"
#include "msl_c/math.h"
#include "global.h"
#include "msl_c/math.h"
struct cXyz : Vec {
static const cXyz Zero;
@@ -51,11 +52,13 @@ struct cXyz : Vec {
y -= f;
z -= f;
}
void operator-=(const Vec& other) { PSVECSubtract(this, &other, this); }
void operator+=(const Vec& vec) {
x += vec.x;
y += vec.y;
z += vec.z;
}
void operator*=(f32 scale) { PSVECScale(this, this, scale); }
/* 80266C6C */ cXyz getCrossProduct(Vec const&) const;
/* 80266CBC */ cXyz outprod(Vec const&) const;
/* 80266CE4 */ cXyz norm() const;
@@ -117,10 +120,10 @@ struct cXyz : Vec {
cXyz tmp2(other.x, 0, other.z);
return tmp.abs2(tmp2);
}
f32 absXZ(const Vec& other) const {
f32 abs = abs2XZ(other);
return sqrtf(abs);
}
f32 abs() const { return sqrtf(this->abs2()); }
f32 abs(const Vec& other) const { return sqrtf(this->abs2(other)); }
f32 absXZ() const { return sqrtf(this->abs2XZ()); }
f32 absXZ(const Vec& other) const { return sqrtf(this->abs2XZ(other)); }
f32 getMagXZ() const { return cXyz(this->x, 0, this->z).getSquareMag(); }
};
+15 -5
View File
@@ -165,7 +165,7 @@ public:
void setMaxOxygen(int max) { mMaxOxygen = max; }
u8 getDoStatus() { return mDoStatus; }
u8 getRStatus() { return mRStatus; }
char* getStartStageName() { return mStartStage.getName(); }
const char* getStartStageName() { return mStartStage.getName(); }
s8 getStartStageRoomNo() { return mStartStage.getRoomNo(); }
s8 getStartStageLayer() { return mStartStage.getLayer(); }
u8 isHeapLockFlag() { return mHeapLockFlag; }
@@ -181,6 +181,8 @@ public:
dAttention_c& getAttention() { return mAttention; }
JKRArchive* getMsgDtArchive(int idx) { return mMsgDtArchive[idx]; }
s16 getStartStagePoint() { return mStartStage.getPoint(); }
s8 getStartStageDarkArea() { return mStartStage.getDarkArea(); }
void setStartStageDarkArea(s8 darkArea) { mStartStage.setDarkArea(darkArea); }
void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; }
JKRArchive* getMain2DArchive() { return mMain2DArchive; }
J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; }
@@ -773,7 +775,7 @@ inline u32 dComIfGp_getNowVibration() {
return g_dComIfG_gameInfo.play.getNowVibration();
}
inline char* dComIfGp_getStartStageName() {
inline const char* dComIfGp_getStartStageName() {
return g_dComIfG_gameInfo.play.getStartStageName();
}
@@ -789,6 +791,10 @@ inline s8 dComIfGp_roomControl_getStayNo() {
return dStage_roomControl_c::getStayNo();
}
inline void dComIfGp_setStartStage(dStage_startStage_c* pStartStage) {
g_dComIfG_gameInfo.play.setStartStage(pStartStage);
}
inline s8 dComIfGp_getStartStageRoomNo() {
return g_dComIfG_gameInfo.play.getStartStageRoomNo();
}
@@ -797,9 +803,13 @@ inline s8 dComIfGp_getStartStageLayer() {
return g_dComIfG_gameInfo.play.getStartStageLayer();
}
/* inline dStage_stageDt_c& dComIfGp_getStage() {
return g_dComIfG_gameInfo.play.getStage();
} */
inline s8 dComIfGp_getStartStageDarkArea() {
return g_dComIfG_gameInfo.play.getStartStageDarkArea();
}
inline void dComIfGp_setStartStageDarkArea(s8 darkArea) {
g_dComIfG_gameInfo.play.setStartStageDarkArea(darkArea);
}
inline roomRead_class* dComIfGp_getStageRoom() {
return g_dComIfG_gameInfo.play.getStage().getRoom();
+7 -4
View File
@@ -560,13 +560,16 @@ private:
class dStage_startStage_c {
public:
void set(const char*, s8, s16, s8);
inline char* getName() { return mStage; }
s8 getLayer() { return mLayer; }
const char* getName() const { return mName; }
s16 getPoint() const { return mPoint; }
s8 getRoomNo() const { return mRoomNo; }
s16 getPoint() { return mPoint; }
s8 getLayer() const { return mLayer; }
void setLayer(s8 layer) { mLayer = layer; }
s8 getDarkArea() const { return mDarkArea; }
void setDarkArea(s8 darkArea) { mDarkArea = darkArea; }
private:
/* 0x0 */ char mStage[8];
/* 0x0 */ char mName[8];
/* 0x8 */ s16 mPoint;
/* 0xA */ s8 mRoomNo;
/* 0xB */ s8 mLayer;
+1 -1
View File
@@ -663,7 +663,7 @@ public:
STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
bool dKy_darkworld_stage_check(char const*, int);
BOOL dKy_darkworld_stage_check(char const*, int);
BOOL dKy_withwarp_capture_check();
#endif /* D_KANKYO_D_KANKYO_H */
+45
View File
@@ -3,4 +3,49 @@
#include "dolphin/types.h"
// Invented name; Used as u8 `darkLv` in dKyd_darkworldTblEntry.
enum dKyd_DARKLV {
FARON = 0,
ELDIN = 1,
LANAYRU = 2,
TEST = 5, // Only used with nonexistent test stages
UNCLEARABLE = 6, // Default. Palace of Twilight stages use this
ALWAYS_DARK = 8, // Unused. Forces Twilight
};
// Invented name
struct dKyd_darkworldTblEntry {
char* stageName;
u8 darkLv;
}; // Size: 0x8
// Invented name; adjust as needed in the future.
// Notes (needs more investigation):
// startTime and endTime are in the range 0 to 360, which is the same as the current time of day.
// l_time_attribute and l_time_attribute_boss are arrays of `dKyd_lightSchedjule` with their times
// set up such that the current time of day will fall in the range of one dKyd_lightSchedjule. For
// example, if the current time is 110.0f (7:20 AM), then the dKyd_lightSchedjule {105.0f, 135.0f,
// 1, 2} would be selected. If the time was 105.0f, we would use light 1. If the time was 135.0f, we
// would use light 2. Since 110.0f is closer to 105.0f than 135.0f, we get a blend of lights 1 and 2
// which is mostly 1. Blending the lights over time is how we get a smooth day-night transition.
struct dKyd_lightSchejule {
float startTime;
float endTime;
u8 startTimeLight;
u8 endTimeLight;
}; // Size: 0xC
void* dKyd_dmpalet_getp();
void* dKyd_dmpselect_getp();
void* dKyd_dmenvr_getp();
void* dKyd_dmvrbox_getp();
dKyd_lightSchejule* dKyd_schejule_getp();
dKyd_lightSchejule* dKyd_schejule_boss_getp();
void dKyd_xfog_table_set(u8);
void* dKyd_maple_col_getp();
dKyd_darkworldTblEntry* dKyd_darkworld_tbl_getp();
void* dKyd_light_size_tbl_getp();
void* dKyd_light_tw_size_tbl_getp();
void* dKyd_BloomInf_tbl_getp(int);
#endif /* D_KANKYO_D_KANKYO_DATA_H */
+2 -1
View File
@@ -46,6 +46,7 @@ f32 tanf(f32);
extern f32 __float_nan[4];
extern f32 __float_epsilon[4];
extern f32 __float_max[4];
inline f64 sqrt_step(f64 tmpd, f32 mag) {
return tmpd * 0.5 * (3.0 - mag * (tmpd * tmpd));
@@ -68,4 +69,4 @@ inline f32 sqrtf(f32 mag) {
}
}
#endif
#endif
+2 -2
View File
@@ -58,6 +58,6 @@ $(BUILD_DIR)/libJ2DGraph.a: $(LIBJ2DGRAPH_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/J2DGraph/%.o: libs/JSystem/J2DGraph/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJ2DGRAPH_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJ2DGRAPH_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -44,6 +44,6 @@ $(BUILD_DIR)/libJ3DGraphAnimator.a: $(LIBJ3DGRAPHANIMATOR_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/J3DGraphAnimator/%.o: libs/JSystem/J3DGraphAnimator/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHANIMATOR_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHANIMATOR_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -50,6 +50,6 @@ $(BUILD_DIR)/libJ3DGraphBase.a: $(LIBJ3DGRAPHBASE_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/J3DGraphBase/%.o: libs/JSystem/J3DGraphBase/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHBASE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHBASE_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -38,6 +38,6 @@ $(BUILD_DIR)/libJ3DGraphLoader.a: $(LIBJ3DGRAPHLOADER_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/J3DGraphLoader/%.o: libs/JSystem/J3DGraphLoader/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHLOADER_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJ3DGRAPHLOADER_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJ3DU.a: $(LIBJ3DU_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/J3DU/%.o: libs/JSystem/J3DU/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJ3DU_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJ3DU_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -158,6 +158,6 @@ $(BUILD_DIR)/libJAudio2.a: $(LIBJAUDIO2_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JAudio2/%.o: libs/JSystem/JAudio2/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJAUDIO2_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJAUDIO2_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJFramework.a: $(LIBJFRAMEWORK_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JFramework/%.o: libs/JSystem/JFramework/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJFRAMEWORK_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJFRAMEWORK_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -28,6 +28,6 @@ $(BUILD_DIR)/libJGadget.a: $(LIBJGADGET_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JGadget/%.o: libs/JSystem/JGadget/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJGADGET_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJGADGET_A_CFLAGS) -c -o $@ $(basename $@).cpp
+4 -23
View File
@@ -7,25 +7,6 @@
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
namespace JGadget {
struct binary {
struct TEBit {};
struct TParse_header_block {
/* 802DC8C8 */ ~TParse_header_block();
/* 802DC910 */ void parse_next(void const**, u32);
};
/* 802DC864 */ void parseVariableUInt_16_32_following(void const*, u32*, u32*,
JGadget::binary::TEBit*);
};
}; // namespace JGadget
//
// Forward References:
//
@@ -53,9 +34,9 @@ extern "C" extern void* __vt__Q37JGadget6binary19TParse_header_block[5];
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JGadget::binary::parseVariableUInt_16_32_following(void const* param_0, u32* param_1,
u32* param_2,
JGadget::binary::TEBit* param_3) {
asm const void*
JGadget::binary::parseVariableUInt_16_32_following(void const* param_0, u32* param_1, u32* param_2,
JGadget::binary::TEBit* param_3) {
nofralloc
#include "asm/JSystem/JGadget/binary/parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit.s"
}
@@ -77,7 +58,7 @@ asm JGadget::binary::TParse_header_block::~TParse_header_block() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JGadget::binary::TParse_header_block::parse_next(void const** param_0, u32 param_1) {
asm bool JGadget::binary::TParse_header_block::parse_next(void const** param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JGadget/binary/parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl.s"
}
+2 -1
View File
@@ -104,7 +104,8 @@ asm void JGadget::TNodeLinkList::Insert(JGadget::TNodeLinkList::iterator param_0
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JGadget::TNodeLinkList::Erase(JGadget::TLinkListNode* param_0) {
asm JGadget::TNodeLinkList::iterator
JGadget::TNodeLinkList::Erase(JGadget::TLinkListNode* param_0) {
nofralloc
#include "asm/JSystem/JGadget/linklist/Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode.s"
}
+2 -2
View File
@@ -72,6 +72,6 @@ $(BUILD_DIR)/libJKernel.a: $(LIBJKERNEL_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JKernel/%.o: libs/JSystem/JKernel/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJKERNEL_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJKERNEL_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -28,6 +28,6 @@ $(BUILD_DIR)/libJMath.a: $(LIBJMATH_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JMath/%.o: libs/JSystem/JMath/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJMATH_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJMATH_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -32,6 +32,6 @@ $(BUILD_DIR)/libJMessage.a: $(LIBJMESSAGE_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JMessage/%.o: libs/JSystem/JMessage/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJMESSAGE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJMESSAGE_A_CFLAGS) -c -o $@ $(basename $@).cpp
+1 -19
View File
@@ -4,6 +4,7 @@
//
#include "JSystem/JMessage/resource.h"
#include "JSystem/JGadget/binary.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -58,25 +59,6 @@ struct JMessage {
};
};
namespace JGadget {
struct binary {
struct TParse_header_block {
/* 802DC8C8 */ ~TParse_header_block();
};
};
struct TLinkListNode {};
struct TNodeLinkList {
struct iterator {};
/* 802DCA1C */ ~TNodeLinkList();
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
};
}; // namespace JGadget
//
// Forward References:
//
+2 -2
View File
@@ -52,6 +52,6 @@ $(BUILD_DIR)/libJParticle.a: $(LIBJPARTICLE_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JParticle/%.o: libs/JSystem/JParticle/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJPARTICLE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJPARTICLE_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -36,6 +36,6 @@ $(BUILD_DIR)/libJStage.a: $(LIBJSTAGE_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JStage/%.o: libs/JSystem/JStage/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJSTAGE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJSTAGE_A_CFLAGS) -c -o $@ $(basename $@).cpp
+6 -2
View File
@@ -6,7 +6,9 @@ LIBJSTUDIO_A_CPP_FILES := \
libs/JSystem/JStudio/JStudio/ctb.cpp \
libs/JSystem/JStudio/JStudio/ctb-data.cpp \
libs/JSystem/JStudio/JStudio/functionvalue.cpp \
libs/JSystem/JStudio/JStudio/functionvalue-inline.cpp \
libs/JSystem/JStudio/JStudio/fvb.cpp \
libs/JSystem/JStudio/JStudio/fvb-inline.cpp \
libs/JSystem/JStudio/JStudio/fvb-data.cpp \
libs/JSystem/JStudio/JStudio/fvb-data-parse.cpp \
libs/JSystem/JStudio/JStudio/jstudio-control.cpp \
@@ -22,7 +24,9 @@ LIBJSTUDIO_A_O_FILES := \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/ctb.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/ctb-data.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/functionvalue.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/functionvalue-inline.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb-inline.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb-data.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/fvb-data-parse.o \
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/jstudio-control.o \
@@ -50,6 +54,6 @@ $(BUILD_DIR)/libJStudio.a: $(LIBJSTUDIO_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio/%.o: libs/JSystem/JStudio/JStudio/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_A_CFLAGS) -c -o $@ $(basename $@).cpp
+6 -23
View File
@@ -4,6 +4,7 @@
//
#include "JSystem/JStudio/JStudio/ctb.h"
#include "JSystem/JGadget/binary.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -55,14 +56,13 @@ struct TParse {
}; // namespace ctb
struct object {
struct TPRObject_ID_equal {};
namespace object {
struct TPRObject_ID_equal {};
struct TIDData {
/* 80288988 */ void isEqual(JStudio::object::TIDData const&,
JStudio::object::TIDData const&);
};
struct TIDData {
/* 80288988 */ void isEqual(JStudio::object::TIDData const&, JStudio::object::TIDData const&);
};
}; // namespace object
}; // namespace JStudio
@@ -73,23 +73,6 @@ struct TLinkList {};
struct TLinkList__template0 {
struct iterator {};
};
struct binary {
struct TParse_header_block {
/* 802DC8C8 */ ~TParse_header_block();
};
};
struct TLinkListNode {};
struct TNodeLinkList {
struct iterator {};
/* 802DCA1C */ ~TNodeLinkList();
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
};
}; // namespace JGadget
namespace std {
@@ -0,0 +1,44 @@
#include "JSystem/JStudio/JStudio/functionvalue.h"
#include "global.h"
namespace std {
template <typename A1>
struct less {};
/* less<f64> */
struct less__template0 {};
template <typename A1, typename B1, typename C1>
void upper_bound(/* ... */);
}; // namespace std
/* 80283E24-80283EB8 27E764 0094+00 1/1 0/0 0/0 .text
* upper_bound<Q37JStudio29TFunctionValue_list_parameter15TIterator_data_,d,Q23std7less<d>>__3stdFQ37JStudio29TFunctionValue_list_parameter15TIterator_data_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_RCdQ23std7less<d>
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
#pragma force_active on
extern "C" inline asm void
func_80283E24(void* _this, JStudio::TFunctionValue_list_parameter::TIterator_data_ param_0,
JStudio::TFunctionValue_list_parameter::TIterator_data_ param_1, f64 const& param_2,
std::less<f64> param_3) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/functionvalue/func_80283E24.s"
}
#pragma pop
/* 80283EB8-80283F80 27E7F8 00C8+00 1/1 0/0 0/0 .text
* upper_bound<Q37JStudio22TFunctionValue_hermite15TIterator_data_,d,Q23std7less<d>>__3stdFQ37JStudio22TFunctionValue_hermite15TIterator_data_Q37JStudio22TFunctionValue_hermite15TIterator_data_RCdQ23std7less<d>
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
#pragma force_active on
extern "C" inline asm void func_80283EB8(void* _this,
JStudio::TFunctionValue_hermite::TIterator_data_ param_0,
JStudio::TFunctionValue_hermite::TIterator_data_ param_1,
f64 const& param_2, std::less<f64> param_3) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/functionvalue/func_80283EB8.s"
}
#pragma pop
File diff suppressed because it is too large Load Diff
@@ -11,30 +11,6 @@
// Types:
//
namespace JStudio {
namespace fvb {
struct data {
struct TParse_TParagraph {
struct TData {};
/* 802850AC */ void getData(JStudio::fvb::data::TParse_TParagraph::TData*) const;
};
};
}; // namespace fvb
}; // namespace JStudio
namespace JGadget {
struct binary {
struct TEBit {};
/* 802DC864 */ void parseVariableUInt_16_32_following(void const*, u32*, u32*,
JGadget::binary::TEBit*);
};
}; // namespace JGadget
//
// Forward References:
//
-10
View File
@@ -11,16 +11,6 @@
// Types:
//
namespace JStudio {
namespace fvb {
struct data {
static f32 ga4cSignature[1 + 1 /* padding */];
};
}; // namespace fvb
}; // namespace JStudio
//
// Forward References:
//
@@ -0,0 +1,31 @@
#include "JSystem/JStudio/JStudio/object-id.h"
namespace JGadget {
/* TLinkList<JStudio::fvb::TObject, 12> */
struct TLinkList__template1 {
struct iterator {};
};
/* TVector_pointer<JStudio::TFunctionValue*> */
struct TVector_pointer__template0 {};
}; // namespace JGadget
extern "C" void
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
extern "C" void _savegpr_28();
extern "C" void _restgpr_28();
/* 80285018-802850AC 27F958 0094+00 1/1 0/0 0/0 .text
* find_if<Q37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3fvb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void func_80285018(void* _this, JGadget::TLinkList__template1::iterator param_0,
JGadget::TLinkList__template1::iterator param_1,
JStudio::object::TPRObject_ID_equal param_2) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/fvb/func_80285018.s"
}
#pragma pop
File diff suppressed because it is too large Load Diff
@@ -4,6 +4,9 @@
//
#include "JSystem/JStudio/JStudio/jstudio-control.h"
#include "JSystem/JGadget/binary.h"
#include "JSystem/JStudio/JStudio/fvb.h"
#include "JSystem/JStudio/JStudio/stb.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -18,38 +21,6 @@ struct TCreateObject {
/* 80285488 */ ~TCreateObject();
};
namespace stb {
struct data {
struct TParse_TBlock_object {};
struct TParse_THeader {};
struct TParse_TBlock {};
};
struct TControl {
/* 802890B4 */ TControl();
/* 80289194 */ ~TControl();
};
struct TObject {};
struct TFactory {
/* 802895B4 */ ~TFactory();
/* 80289604 */ void destroy(JStudio::stb::TObject*);
};
struct TParse {
/* 80289640 */ TParse(JStudio::stb::TControl*);
/* 80289660 */ ~TParse();
/* 802896C0 */ void parseHeader_next(void const**, u32*, u32);
/* 8028978C */ void parseBlock_next(void const**, u32*, u32);
/* 802897E8 */ void parseBlock_block(JStudio::stb::data::TParse_TBlock const&, u32);
/* 80289820 */ void parseBlock_object(JStudio::stb::data::TParse_TBlock_object const&, u32);
};
}; // namespace stb
struct TFactory {
/* 802854D0 */ ~TFactory();
/* 80285560 */ void appendCreateObject(JStudio::TCreateObject*);
@@ -95,47 +66,12 @@ struct TParse {
/* 802858F0 */ void parseBlock_block_ctb_(JStudio::stb::data::TParse_TBlock const&, u32);
};
namespace fvb {
struct TControl {
/* 80284668 */ TControl();
/* 80284698 */ ~TControl();
};
struct TFactory {
/* 80284918 */ ~TFactory();
};
struct TParse {
/* 80284ADC */ TParse(JStudio::fvb::TControl*);
/* 80284AFC */ ~TParse();
};
}; // namespace fvb
struct data {
static u8 ga8cSignature[8];
};
}; // namespace JStudio
namespace JGadget {
struct binary {
struct TParse_header_block {
/* 802DC910 */ void parse_next(void const**, u32);
};
};
struct TLinkListNode {};
struct TNodeLinkList {
struct iterator {};
/* 802DCA1C */ ~TNodeLinkList();
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
};
}; // namespace JGadget
//
// Forward References:
//
@@ -4,6 +4,8 @@
//
#include "JSystem/JStudio/JStudio/jstudio-object.h"
#include "JSystem/JStudio/JStudio/fvb.h"
#include "JSystem/JStudio/JStudio/stb.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -73,18 +75,6 @@ struct TVariableValue {
static u8 soOutput_none_[4 + 4 /* padding */];
};
namespace stb {
struct data {
struct TParse_TBlock_object {};
};
struct TObject {
/* 80288AC0 */ TObject(JStudio::stb::data::TParse_TBlock_object const&);
/* 80288B30 */ ~TObject();
};
}; // namespace stb
struct TObject {
/* 802866B0 */ ~TObject();
/* 80286734 */ void forward_value(u32);
@@ -214,14 +204,6 @@ struct TObject_sound {
/* 80287F04 */ ~TObject_sound();
};
namespace fvb {
struct TControl {
/* 80284834 */ void getObject(void const*, u32);
/* 802848D4 */ void getObject_index(u32);
};
}; // namespace fvb
}; // namespace JStudio
//
@@ -11,16 +11,6 @@
// Types:
//
namespace JStudio {
struct object {
struct TIDData {
/* 80288988 */ void isEqual(JStudio::object::TIDData const&,
JStudio::object::TIDData const&);
};
};
}; // namespace JStudio
//
// Forward References:
//
+71 -83
View File
@@ -5,106 +5,94 @@
#include "JSystem/JStudio/JStudio/stb-data-parse.h"
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
#include "global.h"
namespace JStudio {
namespace stb {
struct data {
struct TParse_TSequence {
struct TData {};
namespace data {
/* 802899BC */ void getData(JStudio::stb::data::TParse_TSequence::TData*) const;
};
extern "C" u32 gauDataSize_TEParagraph_data__Q37JStudio3stb4data[];
struct TParse_TParagraph {
struct TData {};
void TParse_TSequence::getData(TData* pData) const {
ASSERT(pData != 0);
/* 80289A08 */ void getData(JStudio::stb::data::TParse_TParagraph::TData*) const;
};
struct TParse_TParagraph_data {
struct TData {};
/* 80289A80 */ void getData(JStudio::stb::data::TParse_TParagraph_data::TData*) const;
};
static u8 const gauDataSize_TEParagraph_data[32];
};
}; // namespace stb
}; // namespace JStudio
namespace JGadget {
struct binary {
struct TEBit {};
/* 802DC864 */ void parseVariableUInt_16_32_following(void const*, u32*, u32*,
JGadget::binary::TEBit*);
};
}; // namespace JGadget
//
// Forward References:
//
extern "C" void
getData__Q47JStudio3stb4data16TParse_TSequenceCFPQ57JStudio3stb4data16TParse_TSequence5TData();
extern "C" void
getData__Q47JStudio3stb4data17TParse_TParagraphCFPQ57JStudio3stb4data17TParse_TParagraph5TData();
extern "C" void
getData__Q47JStudio3stb4data22TParse_TParagraph_dataCFPQ57JStudio3stb4data22TParse_TParagraph_data5TData();
//
// External References:
//
extern "C" void
parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit();
extern "C" u8 const gauDataSize_TEParagraph_data__Q37JStudio3stb4data[32];
//
// Declarations:
//
/* 802899BC-80289A08 2842FC 004C+00 0/0 1/1 0/0 .text
* getData__Q47JStudio3stb4data16TParse_TSequenceCFPQ57JStudio3stb4data16TParse_TSequence5TData */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::data::TParse_TSequence::getData(
JStudio::stb::data::TParse_TSequence::TData* param_0) const {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb-data-parse/func_802899BC.s"
pData->content = NULL;
pData->next = NULL;
u32 head = get_head();
u8 type = head >> 24;
u32 param = head & 0xffffff;
pData->type = type;
pData->param = param;
if (type != 0) {
const void* next = (const void*)((int)getRaw() + 4);
if (type <= 0x7f) {
pData->next = next;
} else {
pData->content = next;
pData->next = (const void*)((int)next + param);
}
}
}
#pragma pop
/* 80289A08-80289A80 284348 0078+00 0/0 1/1 0/0 .text
* getData__Q47JStudio3stb4data17TParse_TParagraphCFPQ57JStudio3stb4data17TParse_TParagraph5TData */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::data::TParse_TParagraph::getData(
JStudio::stb::data::TParse_TParagraph::TData* param_0) const {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb-data-parse/func_80289A08.s"
void TParse_TParagraph::getData(TData* pData) const {
ASSERT(pData != 0);
const void* data = getRaw();
u32 result;
const void* next = parseVariableUInt_16_32_following(data, &result, &pData->type, NULL);
pData->param = result;
if (result == 0) {
pData->content = NULL;
pData->next = next;
} else {
pData->content = next;
pData->next = (const void*)((int)next + align_roundUp(result, 4));
}
}
#pragma pop
#ifdef NONMATCHING
void TParse_TParagraph_data::getData(data::TParse_TParagraph_data::TData* pData) const {
ASSERT(pData != 0);
pData->_4 = 0;
pData->_8 = 0;
pData->_c = NULL;
pData->_10 = 0;
u8* p = (u8*)getRaw();
if (p != NULL) {
u8 val = *p;
pData->_0 = val & ~8;
if (val != 0) {
u32 count = 1;
p++;
if (val & 8) {
count = *(p++);
}
pData->_8 = count;
pData->_c = p;
u8 idx = val & 7;
if (idx) {
u32 size = gauDataSize_TEParagraph_data[idx];
pData->_4 = size;
pData->_10 = p + size * count;
}
}
}
}
#else
/* 80289A80-80289B00 2843C0 0080+00 0/0 3/3 1/1 .text
* getData__Q47JStudio3stb4data22TParse_TParagraph_dataCFPQ57JStudio3stb4data22TParse_TParagraph_data5TData
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::data::TParse_TParagraph_data::getData(
JStudio::stb::data::TParse_TParagraph_data::TData* param_0) const {
asm void TParse_TParagraph_data::getData(TParse_TParagraph_data::TData* param_0) const {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb-data-parse/func_80289A80.s"
}
#pragma pop
#endif
} // namespace data
} // namespace stb
} // namespace JStudio
+7 -39
View File
@@ -7,49 +7,17 @@
#include "dol2asm.h"
#include "dolphin/types.h"
//
// Types:
//
namespace JStudio {
namespace stb {
struct data {
static u8 const gauDataSize_TEParagraph_data[32];
static u32 ga4cSignature[1 + 1 /* padding */];
};
namespace data {
}; // namespace stb
}; // namespace JStudio
//
// Forward References:
//
extern "C" u8 const gauDataSize_TEParagraph_data__Q37JStudio3stb4data[32];
extern "C" u32 ga4cSignature__Q37JStudio3stb4data[1 + 1 /* padding */];
//
// External References:
//
//
// Declarations:
//
/* ############################################################################################## */
/* 8039AB88-8039ABA8 0271E8 0020+00 0/0 1/1 0/0 .rodata
* gauDataSize_TEParagraph_data__Q37JStudio3stb4data */
SECTION_RODATA u8 const JStudio::stb::data::gauDataSize_TEParagraph_data[32] = {
const u8 gauDataSize_TEParagraph_data[32] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x04,
0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x40,
};
COMPILER_STRIP_GATE(0x8039AB88, &JStudio::stb::data::gauDataSize_TEParagraph_data);
/* 804554D8-804554E0 003AD8 0004+04 0/0 1/1 0/0 .sdata2 ga4cSignature__Q37JStudio3stb4data
*/
SECTION_SDATA2 u32 JStudio::stb::data::ga4cSignature[1 + 1 /* padding */] = {
0x53544200,
/* padding */
0x00000000,
};
const u32 ga4cSignature = 'STB\0';
} // namespace data
} // namespace stb
} // namespace JStudio
+383 -464
View File
@@ -1,8 +1,3 @@
//
// Generated By: dol2asm
// Translation Unit: stb
//
#include "JSystem/JStudio/JStudio/stb.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -11,171 +6,26 @@
// Types:
//
namespace JStudio {
namespace stb {
struct data {
struct TParse_TBlock_object {};
struct TParse_THeader {};
struct TParse_TBlock {};
struct TParse_TSequence {
struct TData {};
/* 802899BC */ void getData(JStudio::stb::data::TParse_TSequence::TData*) const;
};
struct TParse_TParagraph {
struct TData {};
/* 80289A08 */ void getData(JStudio::stb::data::TParse_TParagraph::TData*) const;
};
static u32 gu32Mask_TSequence_value_signExpansion[1 + 1 /* padding */];
static u32 ga4cSignature[1 + 1 /* padding */];
};
struct TObject {
/* 80288AC0 */ TObject(JStudio::stb::data::TParse_TBlock_object const&);
/* 80288A78 */ TObject(u32, void const*, u32);
/* 80288B30 */ ~TObject();
/* 80288B78 */ void setFlag_operation(u8, int);
/* 80288BD0 */ void reset(void const*);
/* 80288BE8 */ void forward(u32);
/* 80288E18 */ void do_begin();
/* 80288E1C */ void do_end();
/* 80288E20 */ void do_paragraph(u32, void const*, u32);
/* 80288E24 */ void do_wait(u32);
/* 80288E28 */ void do_data(void const*, u32, void const*, u32);
/* 80288E2C */ void process_sequence_();
/* 80288F80 */ void process_paragraph_reserved_(u32, void const*, u32);
};
struct TObject_control {
/* 80289068 */ TObject_control(void const*, u32);
/* 80289134 */ ~TObject_control();
};
struct TControl {
/* 802890B4 */ TControl();
/* 80289194 */ ~TControl();
/* 80289228 */ void appendObject(JStudio::stb::TObject*);
/* 80289278 */ void removeObject(JStudio::stb::TObject*);
/* 802892B0 */ void destroyObject(JStudio::stb::TObject*);
/* 80289300 */ void destroyObject_all();
/* 80289364 */ void getObject(void const*, u32);
/* 80289404 */ void reset();
/* 802894B4 */ void forward(u32);
};
struct TFactory {
/* 802895B4 */ ~TFactory();
/* 802895FC */ bool create(JStudio::stb::data::TParse_TBlock_object const&);
/* 80289604 */ void destroy(JStudio::stb::TObject*);
};
struct TParse {
/* 80289640 */ TParse(JStudio::stb::TControl*);
/* 80289660 */ ~TParse();
/* 802896C0 */ void parseHeader_next(void const**, u32*, u32);
/* 8028978C */ void parseBlock_next(void const**, u32*, u32);
/* 802897E0 */ bool parseHeader(JStudio::stb::data::TParse_THeader const&, u32);
/* 802897E8 */ void parseBlock_block(JStudio::stb::data::TParse_TBlock const&, u32);
/* 80289820 */ void parseBlock_object(JStudio::stb::data::TParse_TBlock_object const&, u32);
};
}; // namespace stb
struct object {
struct TPRObject_ID_equal {};
struct TIDData {
/* 80288988 */ void isEqual(JStudio::object::TIDData const&,
JStudio::object::TIDData const&);
};
};
}; // namespace JStudio
namespace JGadget {
template <typename A1, typename B1>
struct TLinkList {};
/* TLinkList<JStudio::stb::TObject, 12> */
struct TLinkList__template2 {
struct iterator {};
};
struct binary {
struct TParse_header_block {
/* 802DC8C8 */ ~TParse_header_block();
};
};
struct TLinkListNode {};
struct TNodeLinkList {
struct iterator {};
/* 802DCA1C */ ~TNodeLinkList();
/* 802DCBA8 */ void Insert(JGadget::TNodeLinkList::iterator, JGadget::TLinkListNode*);
/* 802DCBD4 */ void Erase(JGadget::TLinkListNode*);
};
}; // namespace JGadget
namespace std {
template <typename A1, typename B1>
void find_if(/* ... */);
/* 80289928 */ /* std::find_if<JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal> */
void func_80289928(void* _this, JGadget::TLinkList__template2::iterator,
JGadget::TLinkList__template2::iterator, JStudio::object::TPRObject_ID_equal);
void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal);
}; // namespace std
//
// Forward References:
//
extern "C" void __ct__Q37JStudio3stb7TObjectFUlPCvUl();
extern "C" void __ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object();
extern "C" void __dt__Q37JStudio3stb7TObjectFv();
extern "C" void setFlag_operation__Q37JStudio3stb7TObjectFUci();
extern "C" void reset__Q37JStudio3stb7TObjectFPCv();
extern "C" void forward__Q37JStudio3stb7TObjectFUl();
extern "C" void do_begin__Q37JStudio3stb7TObjectFv();
extern "C" void do_end__Q37JStudio3stb7TObjectFv();
extern "C" void do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl();
extern "C" void do_wait__Q37JStudio3stb7TObjectFUl();
extern "C" void do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl();
extern "C" void process_sequence___Q37JStudio3stb7TObjectFv();
extern "C" void process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl();
extern "C" void __ct__Q37JStudio3stb15TObject_controlFPCvUl();
extern "C" void __ct__Q37JStudio3stb8TControlFv();
extern "C" void __dt__Q37JStudio3stb15TObject_controlFv();
extern "C" void __dt__Q37JStudio3stb8TControlFv();
extern "C" void appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
extern "C" void removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
extern "C" void destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject();
extern "C" void destroyObject_all__Q37JStudio3stb8TControlFv();
extern "C" void getObject__Q37JStudio3stb8TControlFPCvUl();
extern "C" void reset__Q37JStudio3stb8TControlFv();
extern "C" void forward__Q37JStudio3stb8TControlFUl();
extern "C" void __dt__Q37JStudio3stb8TFactoryFv();
extern "C" bool create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object();
extern "C" void destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject();
extern "C" void __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl();
extern "C" void __dt__Q37JStudio3stb6TParseFv();
extern "C" void parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl();
extern "C" void parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl();
extern "C" bool parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl();
extern "C" void parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl();
extern "C" void
parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl();
extern "C" void func_80289928(void* _this, JGadget::TLinkList__template2::iterator,
JGadget::TLinkList__template2::iterator,
extern "C" void func_80289928(void* _this, JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator,
JStudio::object::TPRObject_ID_equal);
extern "C" u32 gu32Mask_TSequence_value_signExpansion__Q37JStudio3stb4data[1 + 1 /* padding */];
//
// External References:
@@ -184,13 +34,6 @@ extern "C" u32 gu32Mask_TSequence_value_signExpansion__Q37JStudio3stb4data[1 + 1
extern "C" void
isEqual__Q37JStudio6object7TIDDataFRCQ37JStudio6object7TIDDataRCQ37JStudio6object7TIDData();
extern "C" void
getData__Q47JStudio3stb4data16TParse_TSequenceCFPQ57JStudio3stb4data16TParse_TSequence5TData();
extern "C" void
getData__Q47JStudio3stb4data17TParse_TParagraphCFPQ57JStudio3stb4data17TParse_TParagraph5TData();
extern "C" void __dl__FPv();
extern "C" void __dt__Q37JGadget6binary19TParse_header_blockFv();
extern "C" void __dt__Q27JGadget13TNodeLinkListFv();
extern "C" void
Insert__Q27JGadget13TNodeLinkListFQ37JGadget13TNodeLinkList8iteratorPQ27JGadget13TLinkListNode();
extern "C" void Erase__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode();
extern "C" void _savegpr_25();
@@ -199,274 +42,331 @@ extern "C" void _savegpr_29();
extern "C" void _restgpr_25();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" void memcmp();
extern "C" extern void* __vt__Q37JGadget6binary19TParse_header_block[5];
extern "C" u32 ga4cSignature__Q37JStudio3stb4data[1 + 1 /* padding */];
extern "C" int memcmp(const void*, const void*, u32);
//
// Declarations:
//
namespace JStudio {
namespace stb {
/* ############################################################################################## */
/* 803C56A0-803C56C0 0227C0 0020+00 2/2 0/0 0/0 .data __vt__Q37JStudio3stb6TParse */
SECTION_DATA extern void* __vt__Q37JStudio3stb6TParse[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3stb6TParseFv,
(void*)parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl,
(void*)parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl,
(void*)parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl,
(void*)parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl,
(void*)parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl,
};
// unchecked, in debug dol
const char* TObject::toString_status(int status) {
const char* result;
/* 803C56C0-803C56D4 0227E0 0014+00 1/1 1/1 0/0 .data __vt__Q37JStudio3stb8TFactory */
SECTION_DATA extern void* __vt__Q37JStudio3stb8TFactory[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3stb8TFactoryFv,
(void*)create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object,
(void*)destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject,
};
/* 803C56D4-803C56E0 0227F4 000C+00 2/2 0/0 0/0 .data __vt__Q37JStudio3stb8TControl */
SECTION_DATA extern void* __vt__Q37JStudio3stb8TControl[3] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3stb8TControlFv,
};
/* 803C56E0-803C5700 022800 0020+00 3/3 0/0 0/0 .data __vt__Q37JStudio3stb15TObject_control */
SECTION_DATA extern void* __vt__Q37JStudio3stb15TObject_control[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3stb15TObject_controlFv,
(void*)do_begin__Q37JStudio3stb7TObjectFv,
(void*)do_end__Q37JStudio3stb7TObjectFv,
(void*)do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl,
(void*)do_wait__Q37JStudio3stb7TObjectFUl,
(void*)do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl,
};
/* 803C5700-803C5720 022820 0020+00 3/3 0/0 0/0 .data __vt__Q37JStudio3stb7TObject */
SECTION_DATA extern void* __vt__Q37JStudio3stb7TObject[8] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)__dt__Q37JStudio3stb7TObjectFv,
(void*)do_begin__Q37JStudio3stb7TObjectFv,
(void*)do_end__Q37JStudio3stb7TObjectFv,
(void*)do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl,
(void*)do_wait__Q37JStudio3stb7TObjectFUl,
(void*)do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl,
};
/* 80288A78-80288AC0 2833B8 0048+00 1/1 0/0 0/0 .text __ct__Q37JStudio3stb7TObjectFUlPCvUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TObject::TObject(u32 param_0, void const* param_1, u32 param_2) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb7TObjectFUlPCvUl.s"
switch (status) {
default:
result = "(undefined)";
break;
case 0:
result = "still";
break;
case 1:
result = "end";
break;
case 2:
result = "wait";
break;
case 4:
result = "suspend";
break;
case 8:
result = "inactive";
break;
}
return result;
}
#pragma pop
/* 80288AC0-80288B30 283400 0070+00 0/0 1/1 0/0 .text
* __ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TObject::TObject(JStudio::stb::data::TParse_TBlock_object const& param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object.s"
TObject::TObject(u32 arg1, const void* id, u32 id_size)
: TObject_ID(id, id_size), pControl(NULL), signature(arg1), mFlag(0), bSequence_(0), _20(0),
pSequence(NULL), pSequence_next(NULL), u32Wait_(0), mStatus(STATUS_STILL) {}
TObject::TObject(const data::TParse_TBlock_object& object)
: TObject_ID(object.get_ID(), object.get_IDSize()), pControl(NULL),
signature(object.get_type()), mFlag(object.get_flag()), bSequence_(0), _20(0), pSequence(0),
pSequence_next(object.getContent()), u32Wait_(0), mStatus(STATUS_STILL) {}
TObject::~TObject() {
JUT_EXPECT(getControl() == NULL);
}
#pragma pop
/* 80288B30-80288B78 283470 0048+00 3/2 1/1 0/0 .text __dt__Q37JStudio3stb7TObjectFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TObject::~TObject() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb7TObjectFv.s"
void TObject::setFlag_operation(u8 op, int val) {
switch (op) {
default:
JUTWarn w;
w << "unknown flag-operation : " << op;
break;
case 1:
mFlag |= val;
break;
case 2:
mFlag &= val;
break;
case 3:
mFlag ^= val;
break;
}
}
#pragma pop
/* 80288B78-80288BD0 2834B8 0058+00 2/2 0/0 0/0 .text
* setFlag_operation__Q37JStudio3stb7TObjectFUci */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TObject::setFlag_operation(u8 param_0, int param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/setFlag_operation__Q37JStudio3stb7TObjectFUci.s"
void TObject::reset(const void* arg1) {
bSequence_ = 0;
mStatus = STATUS_STILL;
pSequence_next = arg1;
u32Wait_ = 0;
}
#pragma pop
/* 80288BD0-80288BE8 283510 0018+00 2/2 0/0 0/0 .text reset__Q37JStudio3stb7TObjectFPCv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TObject::reset(void const* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/reset__Q37JStudio3stb7TObjectFPCv.s"
int TObject::forward(u32 arg1) {
u8 temp = false;
while (true) {
if (mFlag & 0x8000) {
switch (getStatus()) {
case STATUS_STILL:
case STATUS_END:
break;
case STATUS_WAIT:
case STATUS_SUSPEND:
setStatus_(STATUS_INACTIVE);
if (bSequence_) {
on_end();
}
break;
case STATUS_INACTIVE:
break;
default:
ASSERT(false);
break;
}
return 1;
}
if (getStatus() == STATUS_INACTIVE) {
ASSERT(bSequence_);
on_begin();
setStatus_(STATUS_WAIT);
}
ASSERT(getStatus() != STATUS_INACTIVE);
TControl* control = getControl();
if ((control != NULL && control->isSuspended()) || isSuspended()) {
if (bSequence_) {
ASSERT((getStatus() == STATUS_WAIT) || (getStatus() == STATUS_SUSPEND));
setStatus_(STATUS_SUSPEND);
on_wait(arg1);
}
return 1;
}
while (true) {
void* nextseq = (void*)getSequence_next();
setSequence_(nextseq);
if (nextseq == NULL) {
if (bSequence_) {
ASSERT(getStatus() != STATUS_STILL);
if (!temp) {
on_wait(0);
}
bSequence_ = false;
setStatus_(STATUS_END);
on_end();
}
return 0;
}
if (!bSequence_) {
ASSERT(getStatus() == STATUS_STILL);
bSequence_ = true;
on_begin();
}
setStatus_(STATUS_WAIT);
if (u32Wait_ == 0) {
process_sequence_();
if (u32Wait_ == 0) {
break;
}
}
ASSERT(u32Wait_ > 0);
temp = true;
if (arg1 >= u32Wait_) {
u32 wait = u32Wait_;
arg1 -= u32Wait_;
u32Wait_ = 0;
on_wait(wait);
} else {
u32Wait_ -= arg1;
on_wait(arg1);
return 1;
}
}
}
}
#pragma pop
/* 80288BE8-80288E18 283528 0230+00 1/1 0/0 0/0 .text forward__Q37JStudio3stb7TObjectFUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TObject::forward(u32 param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/forward__Q37JStudio3stb7TObjectFUl.s"
}
#pragma pop
/* 80288E18-80288E1C 283758 0004+00 2/0 0/0 0/0 .text do_begin__Q37JStudio3stb7TObjectFv
*/
void JStudio::stb::TObject::do_begin() {
void TObject::do_begin() {
/* empty function */
}
/* 80288E1C-80288E20 28375C 0004+00 2/0 0/0 0/0 .text do_end__Q37JStudio3stb7TObjectFv */
void JStudio::stb::TObject::do_end() {
void TObject::do_end() {
/* empty function */
}
/* 80288E20-80288E24 283760 0004+00 2/0 0/0 0/0 .text do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl
*/
void JStudio::stb::TObject::do_paragraph(u32 param_0, void const* param_1, u32 param_2) {
void TObject::do_paragraph(u32 param_0, void const* param_1, u32 param_2) {
/* empty function */
}
/* 80288E24-80288E28 283764 0004+00 2/0 0/0 0/0 .text do_wait__Q37JStudio3stb7TObjectFUl
*/
void JStudio::stb::TObject::do_wait(u32 param_0) {
void TObject::do_wait(u32 param_0) {
/* empty function */
}
/* 80288E28-80288E2C 283768 0004+00 2/0 0/0 0/0 .text do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl
*/
void JStudio::stb::TObject::do_data(void const* param_0, u32 param_1, void const* param_2,
u32 param_3) {
void TObject::do_data(void const* param_0, u32 param_1, void const* param_2, u32 param_3) {
/* empty function */
}
/* ############################################################################################## */
/* 804554D0-804554D8 003AD0 0004+04 1/1 0/0 0/0 .sdata2
* gu32Mask_TSequence_value_signExpansion__Q37JStudio3stb4data */
SECTION_SDATA2 u32
JStudio::stb::data::gu32Mask_TSequence_value_signExpansion[1 + 1 /* padding */] = {
0xFF000000,
/* padding */
0x00000000,
};
void TObject::process_sequence_() {
ASSERT(getWait() == 0);
data::TParse_TSequence seq(getSequence());
/* 80288E2C-80288F80 28376C 0154+00 1/1 0/0 0/0 .text process_sequence___Q37JStudio3stb7TObjectFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TObject::process_sequence_() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/process_sequence___Q37JStudio3stb7TObjectFv.s"
data::TParse_TSequence::TData dat;
seq.getData(&dat);
u8 type = dat.type;
u32 u32Value = dat.param;
const void* pContent = dat.content;
const void* pNext = dat.next;
setSequence_next(dat.next);
switch (type) {
case 0:
JUT_EXPECT(u32Value == 0);
JUT_EXPECT(pContent == 0);
break;
case 1:
JUT_EXPECT(pContent == 0);
setFlag_operation_(u32Value);
break;
case 2:
JUT_EXPECT(pContent == 0);
setWait(u32Value);
break;
case 3:
JUT_EXPECT(pContent == 0);
s32 off = toInt32FromUInt24_(u32Value);
void* nextseq = (void*)getSequence_offset(off);
setSequence_next(nextseq);
break;
case 4:
JUT_EXPECT(pContent == 0);
u32 val = toInt32FromUInt24_(u32Value);
suspend(val);
break;
case 0x80:
ASSERT(pContent != 0);
void* p = (void*)pContent;
data::TParse_TParagraph para(NULL);
while (p < pNext) {
para.setRaw(p);
data::TParse_TParagraph::TData para_dat;
para.getData(&para_dat);
if (para_dat.type <= 0xff) {
process_paragraph_reserved_(para_dat.type, para_dat.content, para_dat.param);
} else {
on_paragraph(para_dat.type, para_dat.content, para_dat.param);
}
p = (void*)para_dat.next;
ASSERT(p != 0);
}
JUT_EXPECT(p == pNext);
break;
default:
JUTWarn w;
w << "unknown sequence : " << dat.type;
break;
}
}
#pragma pop
/* 80288F80-80289068 2838C0 00E8+00 1/1 0/0 0/0 .text
* process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TObject::process_paragraph_reserved_(u32 param_0, void const* param_1,
u32 param_2) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl.s"
void TObject::process_paragraph_reserved_(u32 arg1, const void* pContent, u32 uSize) {
switch (arg1) {
case 0x1:
ASSERT(pContent != 0);
ASSERT(uSize == 4);
setFlag_operation_(*(u32*)pContent);
break;
case 0x2:
ASSERT(pContent != 0);
ASSERT(uSize == 4);
setWait(*(u32*)pContent);
break;
case 0x3:
ASSERT(pContent != 0);
ASSERT(uSize == 4);
const void* seq = getSequence_offset(*(s32*)pContent);
setSequence_next(seq);
break;
case 0x80:
on_data(NULL, 0, pContent, uSize);
break;
case 0x81:
data::TParse_TParagraph_dataID dataID(pContent);
const void* temp = dataID.getContent();
on_data(dataID.get_ID(), dataID.get_IDSize(), temp,
uSize - ((u32)temp - (u32)dataID.getRaw()));
break;
case 0x82:
ASSERT(pContent != 0);
break;
}
}
#pragma pop
/* 80289068-802890B4 2839A8 004C+00 1/1 0/0 0/0 .text __ct__Q37JStudio3stb15TObject_controlFPCvUl
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TObject_control::TObject_control(void const* param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb15TObject_controlFPCvUl.s"
TObject_control::TObject_control(const void* arg1, u32 arg2) : TObject(-1, arg1, arg2) {}
TControl::TControl() : _4(0), _8(0), pFactory(NULL), mObject_control(NULL, 0), _54(0) {
resetStatus_();
mObject_control.setControl_(this);
}
#pragma pop
/* 802890B4-80289134 2839F4 0080+00 0/0 1/1 0/0 .text __ct__Q37JStudio3stb8TControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TControl::TControl() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb8TControlFv.s"
// TObject_control::TObject_control() definition gets inlined here
TControl::~TControl() {
mObject_control.setControl_(NULL);
JUT_EXPECT(ocObject_.empty());
}
#pragma pop
/* 80289134-80289194 283A74 0060+00 1/0 0/0 0/0 .text __dt__Q37JStudio3stb15TObject_controlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TObject_control::~TObject_control() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb15TObject_controlFv.s"
#ifdef NONMATCHING
void TControl::appendObject(TObject* p) {
p->setControl(this);
mObjectContainer.Push_back(p);
}
#pragma pop
/* 80289194-80289228 283AD4 0094+00 1/0 1/1 0/0 .text __dt__Q37JStudio3stb8TControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TControl::~TControl() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb8TControlFv.s"
}
#pragma pop
#else
/* 80289228-80289278 283B68 0050+00 1/1 0/0 0/0 .text
* appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::appendObject(JStudio::stb::TObject* param_0) {
asm void TControl::appendObject(TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/appendObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s"
}
#pragma pop
#endif
/* 80289278-802892B0 283BB8 0038+00 1/1 0/0 0/0 .text
* removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::removeObject(JStudio::stb::TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/removeObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s"
void TControl::removeObject(TObject* p) {
ASSERT(p != 0);
ASSERT(p->getControl() == this);
p->setControl_(NULL);
mObjectContainer.Erase(p);
}
#pragma pop
/* 802892B0-80289300 283BF0 0050+00 1/1 0/0 0/0 .text
* destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::destroyObject(JStudio::stb::TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/destroyObject__Q37JStudio3stb8TControlFPQ37JStudio3stb7TObject.s"
void TControl::destroyObject(TObject* p) {
removeObject(p);
ASSERT(pFactory != 0);
pFactory->destroy(p);
}
#pragma pop
/* 80289300-80289364 283C40 0064+00 0/0 2/2 0/0 .text destroyObject_all__Q37JStudio3stb8TControlFv
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::destroyObject_all() {
asm void TControl::destroyObject_all() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/destroyObject_all__Q37JStudio3stb8TControlFv.s"
}
@@ -476,7 +376,7 @@ asm void JStudio::stb::TControl::destroyObject_all() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::getObject(void const* param_0, u32 param_1) {
asm TObject* TControl::getObject(void const* param_0, u32 param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/getObject__Q37JStudio3stb8TControlFPCvUl.s"
}
@@ -486,7 +386,7 @@ asm void JStudio::stb::TControl::getObject(void const* param_0, u32 param_1) {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::reset() {
asm void TControl::reset() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/reset__Q37JStudio3stb8TControlFv.s"
}
@@ -497,113 +397,131 @@ asm void JStudio::stb::TControl::reset() {
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TControl::forward(u32 param_0) {
asm void TControl::forward(u32 param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/forward__Q37JStudio3stb8TControlFUl.s"
}
#pragma pop
/* 802895B4-802895FC 283EF4 0048+00 1/0 1/1 0/0 .text __dt__Q37JStudio3stb8TFactoryFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TFactory::~TFactory() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb8TFactoryFv.s"
}
#pragma pop
TFactory::~TFactory() {}
/* 802895FC-80289604 283F3C 0008+00 1/0 0/0 0/0 .text
* create__Q37JStudio3stb8TFactoryFRCQ47JStudio3stb4data20TParse_TBlock_object */
bool JStudio::stb::TFactory::create(JStudio::stb::data::TParse_TBlock_object const& param_0) {
return false;
TObject* TFactory::create(data::TParse_TBlock_object const& param_0) {
return NULL;
}
/* 80289604-80289640 283F44 003C+00 1/0 1/0 0/0 .text
* destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TFactory::destroy(JStudio::stb::TObject* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject.s"
void TFactory::destroy(TObject* p) {
delete p;
}
#pragma pop
/* 80289640-80289660 283F80 0020+00 0/0 1/1 0/0 .text
* __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TParse::TParse(JStudio::stb::TControl* param_0) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl.s"
TParse::TParse(TControl* pControl) : pControl(pControl) {}
TParse::~TParse() {}
bool TParse::parseHeader_next(const void** ppData_inout, u32* puBlock_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puBlock_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
const data::TParse_THeader header(pData);
*ppData_inout = header.getContent();
*puBlock_out = header.get_blockNumber();
if (memcmp(header.get_signature(), &data::ga4cSignature, 4) != 0) {
JUTWarn w;
w << "unknown signature";
return false;
}
if (header.get_byteOrder() != 0xFEFF) {
JUTWarn w;
w << "illegal byte-order";
return false;
}
u16 version = header.get_version();
if (version < 1) {
JUTWarn w;
w << "obselete version : " << (long)0;
return false;
} else if (version > 3) {
JUTWarn w;
w << "unknown version : " << version;
return false;
}
return parseHeader(header, flags);
}
#pragma pop
/* 80289660-802896C0 283FA0 0060+00 1/0 1/1 0/0 .text __dt__Q37JStudio3stb6TParseFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm JStudio::stb::TParse::~TParse() {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/__dt__Q37JStudio3stb6TParseFv.s"
bool TParse::parseBlock_next(void const** ppData_inout, u32* puData_out, u32 flags) {
ASSERT(ppData_inout != 0);
ASSERT(puData_out != 0);
const void* pData = *ppData_inout;
ASSERT(pData != 0);
data::TParse_TBlock blk(pData);
*ppData_inout = blk.getNext();
*puData_out = blk.get_size();
return parseBlock_block(blk, flags);
}
#pragma pop
/* 802896C0-8028978C 284000 00CC+00 1/0 1/0 0/0 .text
* parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TParse::parseHeader_next(void const** param_0, u32* param_1, u32 param_2) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl.s"
}
#pragma pop
/* 8028978C-802897E0 2840CC 0054+00 1/0 1/0 0/0 .text
* parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TParse::parseBlock_next(void const** param_0, u32* param_1, u32 param_2) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl.s"
}
#pragma pop
/* 802897E0-802897E8 284120 0008+00 1/0 0/0 0/0 .text
* parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl */
bool JStudio::stb::TParse::parseHeader(JStudio::stb::data::TParse_THeader const& param_0,
u32 param_1) {
bool TParse::parseHeader(data::TParse_THeader const& param_0, u32 flags) {
return true;
}
/* 802897E8-80289820 284128 0038+00 1/0 1/1 0/0 .text
* parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void JStudio::stb::TParse::parseBlock_block(JStudio::stb::data::TParse_TBlock const& param_0,
u32 param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl.s"
bool TParse::parseBlock_block(const data::TParse_TBlock& ppBlock, u32 flags) {
return parseBlock_object(ppBlock.get(), flags);
}
#pragma pop
/* 80289820-80289928 284160 0108+00 1/0 1/0 0/0 .text
* parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void
JStudio::stb::TParse::parseBlock_object(JStudio::stb::data::TParse_TBlock_object const& param_0,
u32 param_1) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl.s"
bool TParse::parseBlock_object(const data::TParse_TBlock_object& ppObject, u32 flags) {
TControl* pControl = getControl();
ASSERT(pControl != 0);
if (ppObject.get_type() == data::BLOCK_NONE) {
TObject_control& ref = pControl->referObject_control();
ref.reset(ppObject.getContent());
return true;
}
if (flags & 0x10) {
TObject* p = pControl->getObject(ppObject.get_ID(), ppObject.get_IDSize());
if (p != NULL) {
p->reset(ppObject.getContent());
return true;
}
}
if (flags & 0x20)
return true;
TFactory* pFactory = pControl->getFactory();
if (pFactory == NULL) {
JUTWarn w;
w << "factory not specified";
return false;
}
TObject* p = pFactory->create(ppObject);
if (p == NULL) {
if (flags & 0x40)
return true;
char a5c[8];
char t[16];
int type = ppObject.get_type();
data::toString_block(a5c, type);
JUTWarn w;
w << "can't create object : " << a5c;
w << "(0x" << type << ")";
return false;
}
pControl->appendObject(p);
return true;
}
#pragma pop
} // namespace stb
} // namespace JStudio
/* 80289928-802899BC 284268 0094+00 1/1 0/0 0/0 .text
* find_if<Q37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iterator,Q37JStudio6object18TPRObject_ID_equal>__3stdFQ37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iteratorQ37JGadget37TLinkList<Q37JStudio3stb7TObject,-12>8iteratorQ37JStudio6object18TPRObject_ID_equal
@@ -611,8 +529,9 @@ JStudio::stb::TParse::parseBlock_object(JStudio::stb::data::TParse_TBlock_object
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
extern "C" asm void func_80289928(void* _this, JGadget::TLinkList__template2::iterator param_0,
JGadget::TLinkList__template2::iterator param_1,
extern "C" asm void func_80289928(void* _this,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator param_0,
JGadget::TLinkList<JStudio::stb::TObject, 12>::iterator param_1,
JStudio::object::TPRObject_ID_equal param_2) {
nofralloc
#include "asm/JSystem/JStudio/JStudio/stb/func_80289928.s"
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJStudio_JAudio2.a: $(LIBJSTUDIO_JAUDIO2_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JAudio2/%.o: libs/JSystem/JStudio/JStudio_JAudio2/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JAUDIO2_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JAUDIO2_A_CFLAGS) -c -o $@ $(basename $@).cpp
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libJStudio_JParticle.a: $(LIBJSTUDIO_JPARTICLE_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JParticle/%.o: libs/JSystem/JStudio/JStudio_JParticle/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JPARTICLE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JPARTICLE_A_CFLAGS) -c -o $@ $(basename $@).cpp
@@ -4,6 +4,7 @@
//
#include "JSystem/JStudio/JStudio_JParticle/control.h"
#include "JSystem/JStudio/JStudio/stb.h"
#include "dol2asm.h"
#include "dolphin/types.h"
@@ -14,13 +15,6 @@
namespace JStudio {
struct TObject {};
namespace stb {
struct data {
struct TParse_TBlock_object {};
};
}; // namespace stb
struct TCreateObject {
/* 80285488 */ ~TCreateObject();
};
+2 -2
View File
@@ -36,6 +36,6 @@ $(BUILD_DIR)/libJStudio_JStage.a: $(LIBJSTUDIO_JSTAGE_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JStudio/JStudio_JStage/%.o: libs/JSystem/JStudio/JStudio_JStage/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JSTAGE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJSTUDIO_JSTAGE_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -30,6 +30,6 @@ $(BUILD_DIR)/libJSupport.a: $(LIBJSUPPORT_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JSupport/%.o: libs/JSystem/JSupport/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJSUPPORT_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJSUPPORT_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -62,6 +62,6 @@ $(BUILD_DIR)/libJUtility.a: $(LIBJUTILITY_A_O_FILES)
$(BUILD_DIR)/libs/JSystem/JUtility/%.o: libs/JSystem/JUtility/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBJUTILITY_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBJUTILITY_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -134,6 +134,6 @@ $(BUILD_DIR)/libMSL_C.PPCEABI.bare.H.a: $(LIBMSL_C_PPCEABI_BARE_H_A_O_FILES)
$(BUILD_DIR)/libs/MSL_C.PPCEABI.bare.H/%.o: libs/MSL_C.PPCEABI.bare.H/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBMSL_C_PPCEABI_BARE_H_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBMSL_C_PPCEABI_BARE_H_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -40,6 +40,6 @@ $(BUILD_DIR)/libRuntime.PPCEABI.H.a: $(LIBRUNTIME_PPCEABI_H_A_O_FILES)
$(BUILD_DIR)/libs/Runtime.PPCEABI.H/%.o: libs/Runtime.PPCEABI.H/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBRUNTIME_PPCEABI_H_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBRUNTIME_PPCEABI_H_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -98,6 +98,6 @@ $(BUILD_DIR)/libSComponent.a: $(LIBSCOMPONENT_A_O_FILES)
$(BUILD_DIR)/libs/SSystem/SComponent/%.o: libs/SSystem/SComponent/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBSCOMPONENT_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBSCOMPONENT_A_CFLAGS) -c -o $@ $(basename $@).cpp
+253 -198
View File
@@ -5,7 +5,7 @@
#include "SSystem/SComponent/c_lib.h"
#include "JSystem/JMath/JMath.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/src/string.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
#include "SSystem/SComponent/c_math.h"
#include "SSystem/SComponent/c_xyz.h"
#include "dol2asm.h"
@@ -13,51 +13,6 @@
#include "dolphin/types.h"
#include "msl_c/math.h"
//
// Forward References:
//
extern "C" void cLib_memCpy__FPvPCvUl();
extern "C" void cLib_memSet__FPviUl();
extern "C" void cLib_addCalc__FPfffff();
extern "C" void cLib_addCalc2__FPffff();
extern "C" void cLib_addCalc0__FPfff();
extern "C" void cLib_addCalcPos__FP4cXyzRC4cXyzfff();
extern "C" void cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff();
extern "C" void cLib_addCalcPos2__FP4cXyzRC4cXyzff();
extern "C" void cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff();
extern "C" void cLib_addCalcAngleS__FPsssss();
extern "C" void cLib_addCalcAngleS2__FPssss();
extern "C" void cLib_chaseUC__FPUcUcUc();
extern "C" void cLib_chaseS__FPsss();
extern "C" void cLib_chaseF__FPfff();
extern "C" void cLib_chasePos__FP4cXyzRC4cXyzf();
extern "C" void cLib_chasePosXZ__FP4cXyzRC4cXyzf();
extern "C" void cLib_chaseAngleS__FPsss();
extern "C" void cLib_targetAngleY__FPC3VecPC3Vec();
extern "C" void cLib_targetAngleY__FRC3VecRC3Vec();
extern "C" void cLib_targetAngleX__FPC4cXyzPC4cXyz();
extern "C" void cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz();
extern "C" void cLib_distanceAngleS__Fss();
extern "C" void MtxInit__Fv();
extern "C" void MtxTrans__FfffUc();
extern "C" void MtxScale__FfffUc();
extern "C" void MtxPosition__FP4cXyzP4cXyz();
extern "C" void MtxPush__Fv();
extern "C" void MtxPull__Fv();
//
// External References:
//
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void normZP__4cXyzCFv();
extern "C" bool __eq__4cXyzCFRC3Vec();
extern "C" bool __ne__4cXyzCFRC3Vec();
extern "C" void cM_atan2s__Fff();
extern "C" u8 sincosTable___5JMath[65536];
//
// Declarations:
//
@@ -72,185 +27,298 @@ void cLib_memSet(void* ptr, int value, unsigned long size) {
memset(ptr, value, size);
}
/* ############################################################################################## */
/* 804551E0-804551E8 0037E0 0004+04 9/9 0/0 0/0 .sdata2 @2262 */
SECTION_SDATA2 static f32 lit_2262[1 + 1 /* padding */] = {
0.0f,
/* padding */
0.0f,
};
/* 8026F97C-8026FA3C 26A2BC 00C0+00 0/0 50/50 178/178 .text cLib_addCalc__FPfffff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 cLib_addCalc(f32* param_0, f32 param_1, f32 param_2, f32 param_3, f32 param_4) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalc__FPfffff.s"
f32 cLib_addCalc(f32* pValue, f32 target, f32 scale, f32 maxStep, f32 minStep) {
if (*pValue != target) {
f32 step = scale * (target - *pValue);
if (step >= minStep || step <= -minStep) {
if (step > maxStep) {
step = maxStep;
}
if (step < -maxStep) {
step = -maxStep;
}
*pValue += step;
} else {
if (step > 0) {
if (step < minStep) {
*pValue += minStep;
if (*pValue > target) {
*pValue = target;
}
}
} else {
minStep = -minStep;
if (step > minStep) {
*pValue += minStep;
if (*pValue < target) {
*pValue = target;
}
}
}
}
}
return fabsf(target - *pValue);
}
#pragma pop
/* 8026FA3C-8026FA80 26A37C 0044+00 0/0 20/20 701/701 .text cLib_addCalc2__FPffff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cLib_addCalc2(f32* param_0, f32 param_1, f32 param_2, f32 param_3) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalc2__FPffff.s"
void cLib_addCalc2(f32* pValue, f32 target, f32 scale, f32 maxStep) {
if (*pValue != target) {
f32 step = scale * (target - *pValue);
if (step > maxStep) {
step = maxStep;
} else if (step < -maxStep) {
step = -maxStep;
}
*pValue += step;
}
}
#pragma pop
/* 8026FA80-8026FAB8 26A3C0 0038+00 0/0 2/2 322/322 .text cLib_addCalc0__FPfff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cLib_addCalc0(f32* param_0, f32 param_1, f32 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalc0__FPfff.s"
void cLib_addCalc0(f32* pValue, f32 scale, f32 maxStep) {
f32 step = *pValue * scale;
if (step > maxStep) {
step = maxStep;
} else if (step < -maxStep) {
step = -maxStep;
}
*pValue -= step;
}
#pragma pop
/* ############################################################################################## */
/* 804551E8-804551F0 0037E8 0008+00 7/7 0/0 0/0 .sdata2 @2379 */
SECTION_SDATA2 static f64 lit_2379 = 0.5;
/* 804551F0-804551F8 0037F0 0008+00 7/7 0/0 0/0 .sdata2 @2380 */
SECTION_SDATA2 static f64 lit_2380 = 3.0;
/* 804551F8-80455200 0037F8 0008+00 7/7 0/0 0/0 .sdata2 @2381 */
SECTION_SDATA2 static u8 lit_2381[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80455200-80455208 003800 0004+04 5/5 0/0 0/0 .sdata2 @2382 */
SECTION_SDATA2 static f32 lit_2382[1 + 1 /* padding */] = {
7.999999968033578e-11f,
/* padding */
0.0f,
};
/* 8026FAB8-8026FDF4 26A3F8 033C+00 0/0 3/3 78/78 .text cLib_addCalcPos__FP4cXyzRC4cXyzfff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 cLib_addCalcPos(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3, f32 param_4) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPos__FP4cXyzRC4cXyzfff.s"
f32 cLib_addCalcPos(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep, f32 minStep) {
if (*pValue != target) {
cXyz diff = (*pValue - target);
f32 step = diff.abs();
if (step < minStep) {
*pValue = target;
} else {
step *= scale;
diff *= scale;
if (!cLib_IsZero(step)) {
if (step > maxStep) {
diff *= (maxStep / step);
} else if (step < minStep) {
diff *= (minStep / step);
}
*pValue -= diff;
} else {
*pValue = target;
}
}
}
return pValue->abs(target);
}
#pragma pop
/* 8026FDF4-80270178 26A734 0384+00 0/0 1/1 4/4 .text cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm f32 cLib_addCalcPosXZ(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3,
f32 param_4) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPosXZ__FP4cXyzRC4cXyzfff.s"
f32 cLib_addCalcPosXZ(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep, f32 minStep) {
if (pValue->x != target.x || pValue->z != target.z) {
cXyz diff = (*pValue - target);
f32 step = diff.absXZ();
if (step < minStep) {
pValue->x = target.x;
pValue->z = target.z;
} else {
step *= scale;
diff *= scale;
if (!cLib_IsZero(step)) {
if (step > maxStep) {
diff *= (maxStep / step);
} else if (step < minStep) {
diff *= (minStep / step);
}
pValue->x -= diff.x;
pValue->z -= diff.z;
} else {
pValue->x = target.x;
pValue->z = target.z;
}
}
}
return (*pValue - target).absXZ();
}
#pragma pop
/* 80270178-80270350 26AAB8 01D8+00 0/0 2/2 33/33 .text cLib_addCalcPos2__FP4cXyzRC4cXyzff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cLib_addCalcPos2(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPos2__FP4cXyzRC4cXyzff.s"
void cLib_addCalcPos2(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep) {
if (*pValue != target) {
cXyz diff = (*pValue - target) * scale;
if (diff.abs() > maxStep) {
diff = diff.normZP();
diff *= maxStep;
}
*pValue -= diff;
}
}
#pragma pop
/* 80270350-80270540 26AC90 01F0+00 0/0 0/0 4/4 .text cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cLib_addCalcPosXZ2(cXyz* param_0, cXyz const& param_1, f32 param_2, f32 param_3) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcPosXZ2__FP4cXyzRC4cXyzff.s"
void cLib_addCalcPosXZ2(cXyz* pValue, cXyz const& target, f32 scale, f32 maxStep) {
if (pValue->x != target.x || pValue->z != target.z) {
cXyz diff = (*pValue - target) * scale;
f32 step = diff.absXZ();
if (!cLib_IsZero(step)) {
if (step > maxStep) {
diff *= (maxStep / step);
}
pValue->x -= diff.x;
pValue->z -= diff.z;
}
}
}
#pragma pop
/* 80270540-80270608 26AE80 00C8+00 0/0 81/81 244/244 .text cLib_addCalcAngleS__FPsssss
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s16 cLib_addCalcAngleS(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcAngleS__FPsssss.s"
s16 cLib_addCalcAngleS(s16* pValue, s16 target, s16 scale, s16 maxStep, s16 minStep) {
s16 diff = target - *pValue;
if (*pValue != target) {
s16 step = (diff) / scale;
if (step > minStep || step < -minStep) {
if (step > maxStep) {
step = maxStep;
}
if (step < -maxStep) {
step = -maxStep;
}
*pValue += step;
} else {
if (0 <= diff) {
*pValue += minStep;
diff = target - *pValue;
if (0 >= diff) {
*pValue = target;
}
} else {
*pValue -= minStep;
diff = target - *pValue;
if (0 <= diff) {
*pValue = target;
}
}
}
}
return target - *pValue;
}
#pragma pop
/* 80270608-8027065C 26AF48 0054+00 0/0 2/2 849/849 .text cLib_addCalcAngleS2__FPssss */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cLib_addCalcAngleS2(s16* param_0, s16 param_1, s16 param_2, s16 param_3) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_addCalcAngleS2__FPssss.s"
void cLib_addCalcAngleS2(s16* pValue, s16 target, s16 scale, s16 maxStep) {
s16 diff = target - *pValue;
s16 step = diff / scale;
if (step > maxStep) {
*pValue += maxStep;
} else if (step < -maxStep) {
*pValue -= maxStep;
} else {
*pValue += step;
}
}
#pragma pop
/* 8027065C-802706D0 26AF9C 0074+00 0/0 3/3 14/14 .text cLib_chaseUC__FPUcUcUc */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cLib_chaseUC(u8* param_0, u8 param_1, u8 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_chaseUC__FPUcUcUc.s"
int cLib_chaseUC(u8* pValue, u8 target, u8 step) {
if (step) {
s16 wideValue = *pValue;
s16 wideTarget = target;
s16 wideStep;
if (wideValue > wideTarget) {
wideStep = -step;
} else {
wideStep = step;
}
wideValue += wideStep;
if (wideStep * (wideValue - wideTarget) >= 0) {
*pValue = target;
return 1;
} else {
*pValue = wideValue;
}
} else if (*pValue == target) {
return 1;
}
return 0;
}
#pragma pop
/* 802706D0-80270740 26B010 0070+00 0/0 4/4 49/49 .text cLib_chaseS__FPsss */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cLib_chaseS(s16* param_0, s16 param_1, s16 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_chaseS__FPsss.s"
int cLib_chaseS(s16* pValue, s16 target, s16 step) {
if (step) {
if (*pValue > target) {
step = -step;
}
*pValue += step;
if (step * (*pValue - target) >= 0) {
*pValue = target;
return 1;
}
} else if (*pValue == target) {
return 1;
}
return 0;
}
#pragma pop
/* 80270740-802707AC 26B080 006C+00 0/0 70/70 448/448 .text cLib_chaseF__FPfff */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cLib_chaseF(f32* param_0, f32 param_1, f32 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_chaseF__FPfff.s"
int cLib_chaseF(f32* pValue, f32 target, f32 step) {
if (step) {
if (*pValue > target) {
step = -step;
}
*pValue += step;
if (step * (*pValue - target) >= 0) {
*pValue = target;
return 1;
}
} else if (*pValue == target) {
return 1;
}
return 0;
}
#pragma pop
/* 802707AC-80270990 26B0EC 01E4+00 0/0 3/3 60/60 .text cLib_chasePos__FP4cXyzRC4cXyzf */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cLib_chasePos(cXyz* param_0, cXyz const& param_1, f32 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_chasePos__FP4cXyzRC4cXyzf.s"
int cLib_chasePos(cXyz* pValue, cXyz const& target, f32 step) {
if (step) {
cXyz diff = *pValue - target;
f32 diffF = diff.abs();
if (cLib_IsZero(diffF) || diffF <= step) {
*pValue = target;
return 1;
}
*pValue -= diff * (step / diffF);
} else if (*pValue == target) {
return 1;
}
return 0;
}
#pragma pop
/* 80270990-80270B90 26B2D0 0200+00 0/0 1/0 19/19 .text cLib_chasePosXZ__FP4cXyzRC4cXyzf
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cLib_chasePosXZ(cXyz* param_0, cXyz const& param_1, f32 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_chasePosXZ__FP4cXyzRC4cXyzf.s"
int cLib_chasePosXZ(cXyz* pValue, cXyz const& target, f32 step) {
cXyz diff = *pValue - target;
diff.y = 0;
f32 diffF = diff.absXZ();
if (step) {
if (cLib_IsZero(diffF) || diffF <= step) {
*pValue = target;
return 1;
}
*pValue -= diff * (step / diffF);
} else if (cLib_IsZero(diffF)) {
return 1;
}
return 0;
}
#pragma pop
/* 80270B90-80270C04 26B4D0 0074+00 0/0 4/4 213/213 .text cLib_chaseAngleS__FPsss */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int cLib_chaseAngleS(s16* param_0, s16 param_1, s16 param_2) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_chaseAngleS__FPsss.s"
int cLib_chaseAngleS(s16* pValue, s16 target, s16 step) {
if (step) {
if ((s16)(*pValue - target) > 0) {
step = -step;
}
*pValue += step;
if (step * (s16)(*pValue - target) >= 0) {
*pValue = target;
return 1;
}
} else if (*pValue == target) {
return 1;
}
return 0;
}
#pragma pop
/* 80270C04-80270C3C 26B544 0038+00 0/0 39/39 454/454 .text cLib_targetAngleY__FPC3VecPC3Vec */
s16 cLib_targetAngleY(const Vec* lhs, const Vec* rhs) {
@@ -263,34 +331,21 @@ s16 cLib_targetAngleY(const Vec& lhs, const Vec& rhs) {
}
/* 80270C74-80270DC0 26B5B4 014C+00 0/0 2/2 109/109 .text cLib_targetAngleX__FPC4cXyzPC4cXyz */
#ifdef NON_MATCHING
s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) {
// would match with all float literals
cXyz diff = *param_1 - *param_0;
f32 f1 = sqrtf(diff.getMagXZ());
return cM_atan2s(diff.GetY(), f1);
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm s16 cLib_targetAngleX(cXyz const* param_0, cXyz const* param_1) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_targetAngleX__FPC4cXyzPC4cXyz.s"
}
#pragma pop
#endif
/* 80270DC0-80270E24 26B700 0064+00 0/0 2/2 118/118 .text cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz
*/
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void cLib_offsetPos(cXyz* param_0, cXyz const* param_1, s16 param_2, cXyz const* param_3) {
nofralloc
#include "asm/SSystem/SComponent/c_lib/cLib_offsetPos__FP4cXyzPC4cXyzsPC4cXyz.s"
void cLib_offsetPos(cXyz* pDest, cXyz const* pSrc, s16 angle, cXyz const* vec) {
f32 cos = cM_scos(angle);
f32 sin = cM_ssin(angle);
pDest->x = pSrc->x + (vec->x * cos + vec->z * sin);
pDest->y = pSrc->y + vec->y;
pDest->z = pSrc->z + (vec->z * cos - vec->x * sin);
}
#pragma pop
/* 80270E24-80270E4C 26B764 0028+00 0/0 48/48 71/71 .text cLib_distanceAngleS__Fss */
s32 cLib_distanceAngleS(s16 x, s16 y) {
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libSStandard.a: $(LIBSSTANDARD_A_O_FILES)
$(BUILD_DIR)/libs/SSystem/SStandard/%.o: libs/SSystem/SStandard/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBSSTANDARD_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBSSTANDARD_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -80,6 +80,6 @@ $(BUILD_DIR)/libTRK_MINNOW_DOLPHIN.a: $(LIBTRK_MINNOW_DOLPHIN_A_O_FILES)
$(BUILD_DIR)/libs/TRK_MINNOW_DOLPHIN/%.o: libs/TRK_MINNOW_DOLPHIN/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBTRK_MINNOW_DOLPHIN_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBTRK_MINNOW_DOLPHIN_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -64,6 +64,6 @@ $(BUILD_DIR)/libZ2AudioLib.a: $(LIBZ2AUDIOLIB_A_O_FILES)
$(BUILD_DIR)/libs/Z2AudioLib/%.o: libs/Z2AudioLib/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBZ2AUDIOLIB_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBZ2AUDIOLIB_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libamcstubs.a: $(LIBAMCSTUBS_A_O_FILES)
$(BUILD_DIR)/libs/amcstubs/%.o: libs/amcstubs/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBAMCSTUBS_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBAMCSTUBS_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libai.a: $(LIBAI_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/ai/%.o: libs/dolphin/ai/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBAI_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBAI_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libar.a: $(LIBAR_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/ar/%.o: libs/dolphin/ar/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBAR_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBAR_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libbase.a: $(LIBBASE_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/base/%.o: libs/dolphin/base/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBBASE_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -50,6 +50,6 @@ $(BUILD_DIR)/libcard.a: $(LIBCARD_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/card/%.o: libs/dolphin/card/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBCARD_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBCARD_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libdb.a: $(LIBDB_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/db/%.o: libs/dolphin/db/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBDB_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBDB_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -28,6 +28,6 @@ $(BUILD_DIR)/libdsp.a: $(LIBDSP_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/dsp/%.o: libs/dolphin/dsp/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBDSP_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBDSP_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -38,6 +38,6 @@ $(BUILD_DIR)/libdvd.a: $(LIBDVD_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/dvd/%.o: libs/dolphin/dvd/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBDVD_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBDVD_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libgd.a: $(LIBGD_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/gd/%.o: libs/dolphin/gd/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBGD_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBGD_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -30,6 +30,6 @@ $(BUILD_DIR)/libgf.a: $(LIBGF_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/gf/%.o: libs/dolphin/gf/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBGF_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBGF_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -50,6 +50,6 @@ $(BUILD_DIR)/libgx.a: $(LIBGX_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/gx/%.o: libs/dolphin/gx/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBGX_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBGX_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -32,6 +32,6 @@ $(BUILD_DIR)/libmtx.a: $(LIBMTX_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/mtx/%.o: libs/dolphin/mtx/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBMTX_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -68,6 +68,6 @@ $(BUILD_DIR)/libos.a: $(LIBOS_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/os/%.o: libs/dolphin/os/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBOS_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBOS_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libpad.a: $(LIBPAD_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/pad/%.o: libs/dolphin/pad/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBPAD_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBPAD_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libsi.a: $(LIBSI_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/si/%.o: libs/dolphin/si/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBSI_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBSI_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libvi.a: $(LIBVI_A_O_FILES)
$(BUILD_DIR)/libs/dolphin/vi/%.o: libs/dolphin/vi/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBVI_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBVI_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -26,6 +26,6 @@ $(BUILD_DIR)/libexi.a: $(LIBEXI_A_O_FILES)
$(BUILD_DIR)/libs/exi/%.o: libs/exi/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBEXI_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBEXI_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libodemuexi2.a: $(LIBODEMUEXI2_A_O_FILES)
$(BUILD_DIR)/libs/odemuexi2/%.o: libs/odemuexi2/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBODEMUEXI2_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBODEMUEXI2_A_CFLAGS) -c -o $@ $(basename $@).cpp
+2 -2
View File
@@ -24,6 +24,6 @@ $(BUILD_DIR)/libodenotstub.a: $(LIBODENOTSTUB_A_O_FILES)
$(BUILD_DIR)/libs/odenotstub/%.o: libs/odenotstub/%.cpp
@mkdir -p $(@D)
@echo building... $<
@iconv -f UTF-8 -t CP932 < $< > $@.iconv.cpp
@$(CC) $(CFLAGS) $(LIBODENOTSTUB_A_CFLAGS) -c -o $@ $@.iconv.cpp
@$(ICONV) -f UTF-8 -t CP932 < $< > $(basename $@).cpp
@$(CC) $(CFLAGS) $(LIBODENOTSTUB_A_CFLAGS) -c -o $@ $(basename $@).cpp

Some files were not shown because too many files have changed in this diff Show More