From 696522aafe48c246b5eada4dde21961d6c28ff3a Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Wed, 23 Dec 2020 15:56:34 +0900 Subject: [PATCH] smores --- .../code_759b0_len_61b0/func_800DD5B4.s | 29 ------- .../code_759b0_len_61b0/func_800DF3FC.s | 29 ------- .../code_759b0_len_61b0/func_800DFBE8.s | 31 -------- .../code_759b0_len_61b0/func_800DFC74.s | 36 --------- .../code_759b0_len_61b0/func_800DFCF4.s | 27 ------- .../code_759b0_len_61b0/func_800E0208.s | 27 ------- .../code_759b0_len_61b0/func_800E0B38.s | 29 ------- include/functions.h | 1 + src/code_759b0_len_61b0.c | 77 +++++++++++++++++-- src/code_a5dd0_len_114e0.h | 8 -- 10 files changed, 71 insertions(+), 223 deletions(-) delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800DD5B4.s delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800DF3FC.s delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800DFBE8.s delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800DFC74.s delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800DFCF4.s delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800E0208.s delete mode 100644 asm/nonmatchings/code_759b0_len_61b0/func_800E0B38.s delete mode 100644 src/code_a5dd0_len_114e0.h diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800DD5B4.s b/asm/nonmatchings/code_759b0_len_61b0/func_800DD5B4.s deleted file mode 100644 index c2d818dff8..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800DD5B4.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800DD5B4 -/* 76A64 800DD5B4 44863000 */ mtc1 $a2, $f6 -/* 76A68 800DD5B8 C7A40010 */ lwc1 $f4, 0x10($sp) -/* 76A6C 800DD5BC 46043082 */ mul.s $f2, $f6, $f4 -/* 76A70 800DD5C0 00000000 */ nop -/* 76A74 800DD5C4 44874000 */ mtc1 $a3, $f8 -/* 76A78 800DD5C8 C7AA0014 */ lwc1 $f10, 0x14($sp) -/* 76A7C 800DD5CC 460A4002 */ mul.s $f0, $f8, $f10 -/* 76A80 800DD5D0 00000000 */ nop -/* 76A84 800DD5D4 46001080 */ add.s $f2, $f2, $f0 -/* 76A88 800DD5D8 46041102 */ mul.s $f4, $f2, $f4 -/* 76A8C 800DD5DC 00000000 */ nop -/* 76A90 800DD5E0 460A1082 */ mul.s $f2, $f2, $f10 -/* 76A94 800DD5E4 00000000 */ nop -/* 76A98 800DD5E8 46043181 */ sub.s $f6, $f6, $f4 -/* 76A9C 800DD5EC 3C013F00 */ lui $at, 0x3f00 -/* 76AA0 800DD5F0 44810000 */ mtc1 $at, $f0 -/* 76AA4 800DD5F4 00000000 */ nop -/* 76AA8 800DD5F8 46003182 */ mul.s $f6, $f6, $f0 -/* 76AAC 800DD5FC 00000000 */ nop -/* 76AB0 800DD600 46024201 */ sub.s $f8, $f8, $f2 -/* 76AB4 800DD604 46004202 */ mul.s $f8, $f8, $f0 -/* 76AB8 800DD608 00000000 */ nop -/* 76ABC 800DD60C E4860000 */ swc1 $f6, ($a0) -/* 76AC0 800DD610 03E00008 */ jr $ra -/* 76AC4 800DD614 E4A80000 */ swc1 $f8, ($a1) diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800DF3FC.s b/asm/nonmatchings/code_759b0_len_61b0/func_800DF3FC.s deleted file mode 100644 index 30060f99a4..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800DF3FC.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800DF3FC -/* 788AC 800DF3FC 44863000 */ mtc1 $a2, $f6 -/* 788B0 800DF400 C7A40010 */ lwc1 $f4, 0x10($sp) -/* 788B4 800DF404 46043082 */ mul.s $f2, $f6, $f4 -/* 788B8 800DF408 00000000 */ nop -/* 788BC 800DF40C 44874000 */ mtc1 $a3, $f8 -/* 788C0 800DF410 C7AA0014 */ lwc1 $f10, 0x14($sp) -/* 788C4 800DF414 460A4002 */ mul.s $f0, $f8, $f10 -/* 788C8 800DF418 00000000 */ nop -/* 788CC 800DF41C 46001080 */ add.s $f2, $f2, $f0 -/* 788D0 800DF420 46041102 */ mul.s $f4, $f2, $f4 -/* 788D4 800DF424 00000000 */ nop -/* 788D8 800DF428 460A1082 */ mul.s $f2, $f2, $f10 -/* 788DC 800DF42C 00000000 */ nop -/* 788E0 800DF430 46043181 */ sub.s $f6, $f6, $f4 -/* 788E4 800DF434 3C013F00 */ lui $at, 0x3f00 -/* 788E8 800DF438 44810000 */ mtc1 $at, $f0 -/* 788EC 800DF43C 00000000 */ nop -/* 788F0 800DF440 46003182 */ mul.s $f6, $f6, $f0 -/* 788F4 800DF444 00000000 */ nop -/* 788F8 800DF448 46024201 */ sub.s $f8, $f8, $f2 -/* 788FC 800DF44C 46004202 */ mul.s $f8, $f8, $f0 -/* 78900 800DF450 00000000 */ nop -/* 78904 800DF454 E4860000 */ swc1 $f6, ($a0) -/* 78908 800DF458 03E00008 */ jr $ra -/* 7890C 800DF45C E4A80000 */ swc1 $f8, ($a1) diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800DFBE8.s b/asm/nonmatchings/code_759b0_len_61b0/func_800DFBE8.s deleted file mode 100644 index 665bee982d..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800DFBE8.s +++ /dev/null @@ -1,31 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800DFBE8 -/* 79098 800DFBE8 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 7909C 800DFBEC AFBF0010 */ sw $ra, 0x10($sp) -/* 790A0 800DFBF0 0C03968B */ jal func_800E5A2C -/* 790A4 800DFBF4 00000000 */ nop -/* 790A8 800DFBF8 0C038D8F */ jal collision_main_lateral -/* 790AC 800DFBFC 00000000 */ nop -/* 790B0 800DFC00 0C0392EE */ jal func_800E4BB8 -/* 790B4 800DFC04 00000000 */ nop -/* 790B8 800DFC08 3C04800F */ lui $a0, %hi(gPlayerStatusPtr) -/* 790BC 800DFC0C 8C847B30 */ lw $a0, %lo(gPlayerStatusPtr)($a0) -/* 790C0 800DFC10 8C820000 */ lw $v0, ($a0) -/* 790C4 800DFC14 3C030400 */ lui $v1, 0x400 -/* 790C8 800DFC18 00431024 */ and $v0, $v0, $v1 -/* 790CC 800DFC1C 14400009 */ bnez $v0, .L800DFC44 -/* 790D0 800DFC20 00000000 */ nop -/* 790D4 800DFC24 C4800028 */ lwc1 $f0, 0x28($a0) -/* 790D8 800DFC28 3C02800B */ lui $v0, %hi(gCameras) -/* 790DC 800DFC2C 24421D80 */ addiu $v0, $v0, %lo(gCameras) -/* 790E0 800DFC30 E4400060 */ swc1 $f0, 0x60($v0) -/* 790E4 800DFC34 C480002C */ lwc1 $f0, 0x2c($a0) -/* 790E8 800DFC38 E4400064 */ swc1 $f0, 0x64($v0) -/* 790EC 800DFC3C C4800030 */ lwc1 $f0, 0x30($a0) -/* 790F0 800DFC40 E4400068 */ swc1 $f0, 0x68($v0) -.L800DFC44: -/* 790F4 800DFC44 8FBF0010 */ lw $ra, 0x10($sp) -/* 790F8 800DFC48 03E00008 */ jr $ra -/* 790FC 800DFC4C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800DFC74.s b/asm/nonmatchings/code_759b0_len_61b0/func_800DFC74.s deleted file mode 100644 index 5ef5a1f55a..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800DFC74.s +++ /dev/null @@ -1,36 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800DFC74 -/* 79124 800DFC74 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 79128 800DFC78 AFB00010 */ sw $s0, 0x10($sp) -/* 7912C 800DFC7C 3C108011 */ lui $s0, %hi(gPlayerStatus) -/* 79130 800DFC80 2610EFC8 */ addiu $s0, $s0, %lo(gPlayerStatus) -/* 79134 800DFC84 0200202D */ daddu $a0, $s0, $zero -/* 79138 800DFC88 AFBF0014 */ sw $ra, 0x14($sp) -/* 7913C 800DFC8C 0C00A580 */ jal mem_clear -/* 79140 800DFC90 24050288 */ addiu $a1, $zero, 0x288 -/* 79144 800DFC94 24020001 */ addiu $v0, $zero, 1 -/* 79148 800DFC98 0C038817 */ jal func_800E205C -/* 7914C 800DFC9C AE020000 */ sw $v0, ($s0) -/* 79150 800DFCA0 8E050028 */ lw $a1, 0x28($s0) -/* 79154 800DFCA4 8E06002C */ lw $a2, 0x2c($s0) -/* 79158 800DFCA8 8E070030 */ lw $a3, 0x30($s0) -/* 7915C 800DFCAC 0C044898 */ jal create_shadow_type -/* 79160 800DFCB0 0000202D */ daddu $a0, $zero, $zero -/* 79164 800DFCB4 0C039ADA */ jal func_800E6B68 -/* 79168 800DFCB8 AE0200CC */ sw $v0, 0xcc($s0) -/* 7916C 800DFCBC 0C0382C5 */ jal func_800E0B14 -/* 79170 800DFCC0 00000000 */ nop -/* 79174 800DFCC4 0C0381A7 */ jal func_800E069C -/* 79178 800DFCC8 00000000 */ nop -/* 7917C 800DFCCC 0C038145 */ jal func_800E0514 -/* 79180 800DFCD0 00000000 */ nop -/* 79184 800DFCD4 0C0380DD */ jal func_800E0374 -/* 79188 800DFCD8 00000000 */ nop -/* 7918C 800DFCDC 0C039548 */ jal func_800E5520 -/* 79190 800DFCE0 00000000 */ nop -/* 79194 800DFCE4 8FBF0014 */ lw $ra, 0x14($sp) -/* 79198 800DFCE8 8FB00010 */ lw $s0, 0x10($sp) -/* 7919C 800DFCEC 03E00008 */ jr $ra -/* 791A0 800DFCF0 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800DFCF4.s b/asm/nonmatchings/code_759b0_len_61b0/func_800DFCF4.s deleted file mode 100644 index fcfe00e2e0..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800DFCF4.s +++ /dev/null @@ -1,27 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800DFCF4 -/* 791A4 800DFCF4 3C048011 */ lui $a0, %hi(D_8010EBB0) -/* 791A8 800DFCF8 2484EBB0 */ addiu $a0, $a0, %lo(D_8010EBB0) -/* 791AC 800DFCFC 80830000 */ lb $v1, ($a0) -/* 791B0 800DFD00 24020001 */ addiu $v0, $zero, 1 -/* 791B4 800DFD04 1462000E */ bne $v1, $v0, .L800DFD40 -/* 791B8 800DFD08 24020006 */ addiu $v0, $zero, 6 -/* 791BC 800DFD0C 80830003 */ lb $v1, 3($a0) -/* 791C0 800DFD10 10620009 */ beq $v1, $v0, .L800DFD38 -/* 791C4 800DFD14 24020009 */ addiu $v0, $zero, 9 -/* 791C8 800DFD18 10620007 */ beq $v1, $v0, .L800DFD38 -/* 791CC 800DFD1C 24020007 */ addiu $v0, $zero, 7 -/* 791D0 800DFD20 10620005 */ beq $v1, $v0, .L800DFD38 -/* 791D4 800DFD24 24020004 */ addiu $v0, $zero, 4 -/* 791D8 800DFD28 10620003 */ beq $v1, $v0, .L800DFD38 -/* 791DC 800DFD2C 24020008 */ addiu $v0, $zero, 8 -/* 791E0 800DFD30 14620003 */ bne $v1, $v0, .L800DFD40 -/* 791E4 800DFD34 00000000 */ nop -.L800DFD38: -/* 791E8 800DFD38 03E00008 */ jr $ra -/* 791EC 800DFD3C 0000102D */ daddu $v0, $zero, $zero -.L800DFD40: -/* 791F0 800DFD40 03E00008 */ jr $ra -/* 791F4 800DFD44 24020001 */ addiu $v0, $zero, 1 diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800E0208.s b/asm/nonmatchings/code_759b0_len_61b0/func_800E0208.s deleted file mode 100644 index 2577f9a112..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800E0208.s +++ /dev/null @@ -1,27 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800E0208 -/* 796B8 800E0208 3C038007 */ lui $v1, %hi(gGameStatusPtr) -/* 796BC 800E020C 8C63419C */ lw $v1, %lo(gGameStatusPtr)($v1) -/* 796C0 800E0210 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 796C4 800E0214 AFBF0010 */ sw $ra, 0x10($sp) -/* 796C8 800E0218 80620078 */ lb $v0, 0x78($v1) -/* 796CC 800E021C 1040000C */ beqz $v0, .L800E0250 -/* 796D0 800E0220 0000202D */ daddu $a0, $zero, $zero -/* 796D4 800E0224 8C620000 */ lw $v0, ($v1) -/* 796D8 800E0228 30420010 */ andi $v0, $v0, 0x10 -/* 796DC 800E022C 10400008 */ beqz $v0, .L800E0250 -/* 796E0 800E0230 00000000 */ nop -/* 796E4 800E0234 3C028011 */ lui $v0, %hi(D_8010EBB0) -/* 796E8 800E0238 8042EBB0 */ lb $v0, %lo(D_8010EBB0)($v0) -/* 796EC 800E023C 54400004 */ bnel $v0, $zero, .L800E0250 -/* 796F0 800E0240 24040001 */ addiu $a0, $zero, 1 -/* 796F4 800E0244 0C039769 */ jal set_action_state -/* 796F8 800E0248 00000000 */ nop -/* 796FC 800E024C 24040001 */ addiu $a0, $zero, 1 -.L800E0250: -/* 79700 800E0250 8FBF0010 */ lw $ra, 0x10($sp) -/* 79704 800E0254 0080102D */ daddu $v0, $a0, $zero -/* 79708 800E0258 03E00008 */ jr $ra -/* 7970C 800E025C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/nonmatchings/code_759b0_len_61b0/func_800E0B38.s b/asm/nonmatchings/code_759b0_len_61b0/func_800E0B38.s deleted file mode 100644 index b60dd7012c..0000000000 --- a/asm/nonmatchings/code_759b0_len_61b0/func_800E0B38.s +++ /dev/null @@ -1,29 +0,0 @@ -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches - -glabel func_800E0B38 -/* 79FE8 800E0B38 3C028007 */ lui $v0, %hi(gGameStatusPtr) -/* 79FEC 800E0B3C 8C42419C */ lw $v0, %lo(gGameStatusPtr)($v0) -/* 79FF0 800E0B40 80420070 */ lb $v0, 0x70($v0) -/* 79FF4 800E0B44 3C048011 */ lui $a0, %hi(gPlayerData) -/* 79FF8 800E0B48 2484F290 */ addiu $a0, $a0, %lo(gPlayerData) -/* 79FFC 800E0B4C 1440000E */ bnez $v0, .L800E0B88 -/* 7A000 800E0B50 24050001 */ addiu $a1, $zero, 1 -/* 7A004 800E0B54 24830004 */ addiu $v1, $a0, 4 -/* 7A008 800E0B58 24840008 */ addiu $a0, $a0, 8 -.L800E0B5C: -/* 7A00C 800E0B5C 90820014 */ lbu $v0, 0x14($a0) -/* 7A010 800E0B60 50400005 */ beql $v0, $zero, .L800E0B78 -/* 7A014 800E0B64 24630004 */ addiu $v1, $v1, 4 -/* 7A018 800E0B68 8C6202C4 */ lw $v0, 0x2c4($v1) -/* 7A01C 800E0B6C 24420001 */ addiu $v0, $v0, 1 -/* 7A020 800E0B70 AC6202C4 */ sw $v0, 0x2c4($v1) -/* 7A024 800E0B74 24630004 */ addiu $v1, $v1, 4 -.L800E0B78: -/* 7A028 800E0B78 24A50001 */ addiu $a1, $a1, 1 -/* 7A02C 800E0B7C 28A2000C */ slti $v0, $a1, 0xc -/* 7A030 800E0B80 1440FFF6 */ bnez $v0, .L800E0B5C -/* 7A034 800E0B84 24840008 */ addiu $a0, $a0, 8 -.L800E0B88: -/* 7A038 800E0B88 03E00008 */ jr $ra -/* 7A03C 800E0B8C 00000000 */ nop diff --git a/include/functions.h b/include/functions.h index 0488e63470..bd1526a111 100644 --- a/include/functions.h +++ b/include/functions.h @@ -84,6 +84,7 @@ void func_800E06C0(s32); void func_800E97B8(void); s32 func_800EB168(s32); +Shadow* create_shadow_type(s32 type, f32 x, f32 y, f32 z); PlayerData* get_player_data(void); diff --git a/src/code_759b0_len_61b0.c b/src/code_759b0_len_61b0.c index 0415097cbd..4f6659a4fe 100644 --- a/src/code_759b0_len_61b0.c +++ b/src/code_759b0_len_61b0.c @@ -20,7 +20,12 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD228); INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD44C); -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD5B4); +void func_800DD5B4(f32* arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { + f32 temp = (arg2 * arg4) + (arg3 * arg5); + + *arg0 = (arg2 - (temp * arg4)) * 0.5f; + *arg1 = (arg3 - (temp * arg5)) * 0.5f; +} INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DD618); @@ -50,7 +55,12 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DEE5C); INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DF15C); -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DF3FC); +void func_800DF3FC(f32* arg0, f32* arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5) { + f32 temp = (arg2 * arg4) + (arg3 * arg5); + + *arg0 = (arg2 - (temp * arg4)) * 0.5f; + *arg1 = (arg3 - (temp * arg5)) * 0.5f; +} INCLUDE_ASM(s32, "code_759b0_len_61b0", test_player_lateral); @@ -60,15 +70,45 @@ INCLUDE_ASM(s32, "code_759b0_len_61b0", check_input_use_partner); INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFAAC); -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFBE8); +void func_800DFBE8(void) { + func_800E5A2C(); + collision_main_lateral(); + func_800E4BB8(); + + if (!(gPlayerStatusPtr->flags & 0x4000000)) { + Camera* camera = &gCameras[0]; + + camera->targetPos.x = gPlayerStatusPtr->position.x; + camera->targetPos.y = gPlayerStatusPtr->position.y; + camera->targetPos.z = gPlayerStatusPtr->position.z; + } +} void clear_player_status(void) { mem_clear(&gPlayerStatus, sizeof(gPlayerStatus)); } -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFC74); +void func_800DFC74(void) { + PlayerStatus* playerStatus = PLAYER_STATUS; -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFCF4); + mem_clear(playerStatus, sizeof(PlayerStatus)); + playerStatus->flags = 1; + func_800E205C(); + playerStatus->shadowID = create_shadow_type(0, playerStatus->position.x, playerStatus->position.y, playerStatus->position.z); + func_800E6B68(); + func_800E0B14(); + func_800E069C(); + func_800E0514(); + func_800E0374(); + func_800E5520(); +} + +s32 func_800DFCF4(void) { + if (D_8010EBB0[0] == 1 && (D_8010EBB0[3] == 6 || D_8010EBB0[3] == 9 || D_8010EBB0[3] == 7 || D_8010EBB0[3] == 4 || D_8010EBB0[3] == 8)) { + return 0; + } + return 1; +} INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800DFD48); @@ -163,7 +203,18 @@ void func_800E01DC(void) { } } -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0208); +s32 func_800E0208(void) { + GameStatus* gameStatus = GAME_STATUS; + s32 ret = 0; + + if (gameStatus->disableScripts && (gameStatus->currentButtons & 0x10)) { + if (D_8010EBB0[0] == 0) { + set_action_state(ActionState_IDLE); + } + ret = 1; + } + return ret; +} void func_800E0260(void) { func_800E0658(); @@ -243,7 +294,19 @@ void func_800E0B14(void) { gPlayerStatusPtr->animFlags &= ~0x10; } -INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0B38); +void func_800E0B38(void) { + PlayerData* playerData = PLAYER_DATA; + + if (!GAME_STATUS->isBattle) { + s32 i; + + for (i = 1; i < ARRAY_COUNT(playerData->unk_2C4); i++) { + if (playerData->partners[i].enabled) { + playerData->unk_2C4[i] += 1; + } + } + } +} INCLUDE_ASM(s32, "code_759b0_len_61b0", func_800E0B90); diff --git a/src/code_a5dd0_len_114e0.h b/src/code_a5dd0_len_114e0.h deleted file mode 100644 index a60fb77871..0000000000 --- a/src/code_a5dd0_len_114e0.h +++ /dev/null @@ -1,8 +0,0 @@ -#ifndef _CODE_A5DD0_LEN_114E0_H_ -#define _CODE_A5DD0_LEN_114E0_H_ - -#include "common.h" - -Shadow* create_shadow_type(s32 type, f32 x, f32 y, f32 z); - -#endif