Compare commits

..

116 Commits

Author SHA1 Message Date
Arceveti
882c9d781e Merge branch 'develop/2.3.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2024-03-30 15:14:06 -07:00
Matt Pharoah
7353db562c Merge pull request #774 from mpharoah/mpharoah/update-libpl
Update libpl
2024-03-06 17:28:42 -05:00
Matt Pharoah
82e0fdf391 Update libpl 2024-03-06 09:10:09 -05:00
Arceveti
88ac68be53 Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2024-02-14 01:50:26 -08:00
Arceveti
c4d0df7c1d Merge branch 'develop/2.2.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-12-15 14:48:07 -08:00
Arceveti
95b21c5195 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-12-15 14:47:58 -08:00
Arceveti
e6c6a8b691 Move segment2 paintings data to paintings.c.in 2023-09-28 10:57:13 -07:00
Arceveti
1fe6bc0c57 Merge branch 'develop/2.1.2' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-27 14:54:33 -07:00
Arceveti
0761d2fdec Fix(?) painting warp checkpoints 2023-09-27 14:54:29 -07:00
Arceveti
1fb29f9340 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-26 20:11:18 -07:00
Arceveti
fa3fc8dac9 Merge branch 'master' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-25 17:38:15 -07:00
Arceveti
3731f9209f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-22 15:33:47 -07:00
Arceveti
941207b50f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-11 13:57:44 -07:00
Arceveti
bd83b07625 Some documentation + add IEEE754 unions + formatting 2023-09-07 15:24:43 -07:00
Arceveti
e02659d23d Improve painting struct definitions 2023-09-01 19:22:14 -07:00
Arceveti
117ae7339b Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-09-01 19:18:50 -07:00
Arceveti
a4e297747a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-08-23 17:13:22 -07:00
Arceveti
17e4f7b811 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-07-12 16:36:31 -07:00
Arceveti
1e0e6803ad Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-04-30 22:30:10 -04:00
Arceveti
b518acfc7d use _Bool for 'shaded' 2023-04-26 12:28:20 -04:00
Arceveti
dc0d6c698c _Bool/enum usage 2023-04-16 14:55:39 -04:00
Arceveti
41dc7217be initiate_painting_warp pointer formatting 2023-04-10 14:18:36 -04:00
Arceveti
33b70550e8 Fix arg formatting in painting_calculate_triangle_normals 2023-04-10 14:08:19 -04:00
Arceveti
5f694b9333 pointer formatting changes 2023-04-07 18:33:06 -04:00
Arceveti
199486a299 improve gfx allocation (formatting) + add gsLoadBlockTexture 2023-03-28 12:35:28 -04:00
Arceveti
8a0547550d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-27 18:27:15 -04:00
Arceveti
4744c9cd7f Remove unused externs 2023-03-17 13:39:21 -04:00
Arceveti
643e6a7a64 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-17 12:15:20 -04:00
Arceveti
2c52e0699d Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-03-07 13:48:04 -05:00
Arceveti
9e30c865fc Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-02-10 21:50:17 -05:00
Arceveti
16fdf6299a Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-01-26 12:46:53 -05:00
Arceveti
d5b4190fe2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2023-01-26 02:54:31 -05:00
Arceveti
cc683d2415 'vec3f_local_pos_to_world_pos' and 'vec3f_world_pos_to_local_pos' documentation + fix some comments 2023-01-14 14:40:38 -05:00
Arceveti
bfdae60182 Painting scale changes 2023-01-06 16:23:07 -05:00
Arceveti
f0509d42f8 Don't use PAINTING_SIZE for fake CCM paintings 2022-12-16 02:21:43 -05:00
Arceveti
bb5ad7835a Formatting changes :) 2022-12-16 00:07:17 -05:00
Arceveti
04210115ec Clean up non-rippling painting dl 2022-12-15 22:10:24 -05:00
Arceveti
be01f6c5d2 Use object scale as painting scale instead of painting_model_view_transform 2022-12-15 19:05:35 -05:00
Arceveti
3a526ef10f Center scaled paintings during cutscenes 2022-12-15 17:57:03 -05:00
Arceveti
23ea8b0130 Add PAINTING_IMAGE_TYPE_INVISIBLE + format PaintingImage structs 2022-12-14 22:54:59 -05:00
Arceveti
be58ea7396 WARP_DEST_LEVEL_NUM_MASK Usage 2022-12-14 21:27:06 -05:00
Arceveti
09ca176cb9 Rename 'PaintingIDs' to 'PaintingImageIDs' 2022-12-14 18:36:35 -05:00
Arceveti
aaa2250c29 Automatically determine neighboring triangles for each vertex instead of using a hardcoded list 2022-12-14 18:29:17 -05:00
Arceveti
98a413af23 Fix some typos/formatting 2022-12-14 18:10:45 -05:00
Arceveti
dbfb89d19c Update some variable names 2022-12-14 15:35:29 -05:00
Arceveti
9aab0fd00c Rename 'painting_data_mesh' to 'painting_data_vertices' 2022-12-13 22:30:12 -05:00
Arceveti
4fe3d3f606 Remove redundant painting data from segment2.c 2022-12-13 22:25:35 -05:00
Arceveti
33d7f63156 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-13 19:24:35 -05:00
Arceveti
a5df7ffedf Add PAINTING_WOBBLE_WARP_THRESHOLD + Change paintings.h defines to use vanilla values + Change oPaintingFlags to oPaintingStoredAction + Combine painting_update_ripples into bhv_painting_loop 2022-12-13 19:24:09 -05:00
Arceveti
1ed0a72b94 rr_painting uses RIPPLE_TRIGGER_NONE 2022-12-13 16:17:38 -05:00
Arceveti
9cee1eed3c Smaller PAINTING_EDGE_MARGIN 2022-12-12 18:46:42 -05:00
Arceveti
c97839cd34 Replace 'oPaintingLocalMarioPosX' and 'oPaintingLocalMarioPosY' with local variables 2022-12-12 18:25:42 -05:00
Arceveti
0b6417a467 Remove 'oPaintingChangedFlags' + rename some object fields & enums 2022-12-12 18:07:59 -05:00
Arceveti
04d832154c Make some function names clearer 2022-12-12 17:46:10 -05:00
Arceveti
d19ec64310 use oAction instead of oPaintingState 2022-12-12 15:50:09 -05:00
Arceveti
ec318df0a6 Fix some comments in paintings.h 2022-12-12 15:36:20 -05:00
Arceveti
1d2c50eda8 Remove unused gsSPLightColor commands in dl_paintings_env_mapped_begin 2022-12-12 15:23:36 -05:00
Arceveti
11d7f84db1 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-12 14:56:19 -05:00
Arceveti
66828dab80 Rename some structs 2022-12-12 14:56:12 -05:00
Arceveti
e27ba77533 Make PaintingState enum names clearer 2022-12-12 00:42:56 -05:00
Arceveti
2d23771587 Painting UV cleanup 2022-12-12 00:39:38 -05:00
Arceveti
f396d89b42 Rename 'oPaintingData' to 'oPaintingImageInfo' 2022-12-11 20:07:10 -05:00
Arceveti
d63bb4d3fc skip s16 conversion for ripple magnitude 2022-12-11 20:02:00 -05:00
Arceveti
508fe3958c Make 'sPaintingMesh' and 'sPaintingTriNorms' into local variables 2022-12-11 20:01:39 -05:00
Arceveti
a73531aa41 small changes 2022-12-10 22:22:01 -05:00
Arceveti
eed1293624 Replace gEnteredPaintingObject with a MarioState field 2022-12-10 18:38:32 -05:00
Arceveti
5d12ebffc1 Make WDW water level detextion relative to the painting instead of absolute height. 2022-12-10 18:09:52 -05:00
Arceveti
16ebce4ccc Rename 'oPaintingRippleX' and 'oPaintingRippleY' to 'oPaintingRipplePosX' and 'oPaintingRipplePosY' 2022-12-10 17:50:48 -05:00
Arceveti
578e70ed4c RippleAnimationInfo struct changes 2022-12-10 17:49:58 -05:00
Arceveti
be3294399e Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-10 15:33:10 -05:00
Arceveti
3c17702b4d Remove gRipplingPaintingObject + clean up painting eject sound 2022-12-10 01:38:12 -05:00
Arceveti
f98b8b8dc5 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-10 00:48:01 -05:00
Arceveti
2988324b93 Improve painting texture map names + change imageCount check to switch 2022-12-10 00:18:44 -05:00
Arceveti
2436072bcd Move painting functionality except for rendering into bhv_painting_loop + remove area update counter fields + change relative mario and ripple positions to floats 2022-12-09 21:41:13 -05:00
Arceveti
a1ec042d13 Paintings use regular object warp nodes + remove painting groups + painting struct cleanup + fix gTTCSpeedSetting being changed on exit + change relative painting coords to s32 2022-12-09 17:43:21 -05:00
Arceveti
171d08dae2 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-12-06 15:18:32 -05:00
Arceveti
e3243cb917 Add PAINTING_VERTEX macro for painting triangle mesh 2022-12-05 00:41:49 -05:00
Arceveti
656c72ac91 Remove SAVE_FLAG_DDD_MOVED_BACK + allow paintings to move during some cutscenes. 2022-12-04 22:11:13 -05:00
Arceveti
590084fd6a Remove reset_painting and NO_SEGMENTED_MEMORY ifdef 2022-12-04 20:04:49 -05:00
Arceveti
d4c7a58e28 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-11-28 15:16:17 -05:00
Arceveti
ab9f3279f4 Rename 'resetTimer' arg to 'doResetTimer' in painting_state 2022-11-07 19:08:26 -08:00
Arceveti
c78624db2f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-11-07 19:06:24 -08:00
Arceveti
69330d30ec fix SurfaceClass enum 2022-11-07 18:19:17 -08:00
Arceveti
e9dd49478f Fix painting object field offsets 2022-11-03 04:07:13 -07:00
Arceveti
11fb0377fc Fix RR painting using the wrong ID 2022-10-21 13:33:39 -07:00
Arceveti
d08afdef68 Rename 'gRipplingPainting' to 'gRipplingPaintingObject' and 'gEnteredPainting' to 'gEnteredPaintingObject' 2022-10-21 13:24:46 -07:00
Arceveti
3ea3c1fb3c Change painting object data pointer to const void 2022-10-10 15:30:17 -07:00
Arceveti
a6676efee3 Revert some formatting changes in camera.c 2022-10-08 13:08:30 -07:00
Arceveti
2222429d9d Fix ENABLE_VANILLA_LEVEL_SPECIFIC_CHECKS comment + Undo removal of trailing whitespace 2022-10-08 13:04:48 -07:00
Arceveti
d7b63e82ed Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-10-03 18:59:49 -07:00
Arceveti
8e6b62547f Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-30 22:54:12 -07:00
Arceveti
12e6c855b3 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-29 14:33:09 -07:00
Arceveti
c7115d4a2c Fix seams between painting sections on console 2022-09-29 14:32:54 -07:00
Arceveti
5ea50a7b69 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-09-28 21:15:34 -07:00
Arceveti
fc093b9fdb Add get_exponent for painting texture setup + dl_painting_not_rippling cleanup 2022-08-16 21:57:17 -07:00
Arceveti
4b651cc174 Clean up painting texel calculations 2022-08-16 15:48:50 -07:00
Arceveti
7fe7f6b083 Fix tiny seam between painting segments 2022-08-16 12:15:29 -07:00
Arceveti
d1b0bad2fd Automatic texture maps & non-rippling display lists for paintings 2022-08-14 01:41:05 -07:00
Arceveti
c330431603 Rename 'commands' to 'gfxCmds' 2022-08-10 18:49:28 -07:00
Arceveti
df051e3ad3 Partially update main paintings.c comment + more formatting 2022-08-10 17:03:03 -07:00
Arceveti
5e992b540a Revert change that was using unimplemented functionality in geo_painting_draw 2022-08-10 16:04:23 -07:00
Arceveti
168293d3bc Some paintings.c refactoring 2022-08-10 16:01:37 -07:00
Arceveti
f9cbf8f59c Use defines for fake CCM paintings' coords 2022-08-10 15:59:15 -07:00
Arceveti
ee96ec7417 Remove extra newline 2022-08-09 22:28:53 -07:00
Arceveti
da9e796457 Move ripple constants outside of Painting struct 2022-08-09 20:46:27 -07:00
Arceveti
d7503663a0 Combine ripple setup dls + paintings.c gfx commands formatting + use PAINTING_SIZE for vertex dls 2022-08-09 19:49:00 -07:00
Arceveti
e2c0fe02ab Combine duplicate painting texture map data and move it to segment2 2022-08-09 15:44:34 -07:00
Arceveti
57d7529bce Allow paintings to use 32 vertex buffer + optimization + formatting 2022-08-09 14:53:06 -07:00
Arceveti
6e9df1f812 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-08-09 14:27:18 -07:00
Arceveti
d118c79ce4 Merge branch 'develop/2.1.0' of https://github.com/Reonu/HackerSM64 into develop/2.1.0-painting-objects 2022-08-03 17:51:44 -07:00
Arceveti
d755fb4931 Make normalize_component return s8 instead of casting 2022-07-18 21:16:05 -07:00
Arceveti
786a569ed7 Revert formatting change in 'cutscene_exit_painting' 2022-07-18 21:12:09 -07:00
Arceveti
0ff4147366 Rename 'sPaintingEjectSoundPlayed' to 'gPaintingEjectSoundPlayed' 2022-07-18 21:11:23 -07:00
Arceveti
b340408c4f Merge branch 'develop/2.1.0' into develop/2.1.0-painting-objects 2022-07-05 19:39:18 -07:00
Arceveti
76809f51f6 Fix missing floor behind DDD painting 2022-07-05 19:27:20 -07:00
Arceveti
e176d806d7 Add painting objects + convert vanilla paintings into objects 2022-07-05 18:39:38 -07:00
350 changed files with 14117 additions and 15597 deletions

View File

@@ -501,15 +501,15 @@ DEF_INC_CFLAGS := $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(C_DEFINES)
# C compiler options
CFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) $(MIPSISET) $(DEF_INC_CFLAGS)
ifeq ($(COMPILER),gcc)
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
CFLAGS += -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else ifeq ($(COMPILER),clang)
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
CFLAGS += -mfpxx -target mips -mabi=32 -G 0 -mhard-float -fomit-frame-pointer -fno-stack-protector -fno-common -I include -I src/ -I $(BUILD_DIR)/include -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
CFLAGS += -Wno-missing-braces
else
CFLAGS += -non_shared -Wab,-r4300_mul -Xcpluscomm -Xfullwarn -signed -32
endif
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra -Wno-trigraphs
ASMFLAGS = -G 0 $(OPT_FLAGS) $(TARGET_CFLAGS) -mips3 $(DEF_INC_CFLAGS) -mno-shared -march=vr4300 -mfix4300 -mabi=32 -mhard-float -mdivide-breaks -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-PIC -mno-abicalls -fno-strict-aliasing -fno-inline-functions -ffreestanding -fwrapv -Wall -Wextra
ASFLAGS := -march=vr4300 -mabi=32 $(foreach i,$(INCLUDE_DIRS),-I$(i)) $(foreach d,$(DEFINES),--defsym $(d))
RSPASMFLAGS := $(foreach d,$(DEFINES),-definelabel $(subst =, ,$(d)))
@@ -530,6 +530,7 @@ N64CKSUM := $(TOOLS_DIR)/n64cksum
N64GRAPHICS := $(TOOLS_DIR)/n64graphics
N64GRAPHICS_CI := $(TOOLS_DIR)/n64graphics_ci
BINPNG := $(TOOLS_DIR)/BinPNG.py
TEXTCONV := $(TOOLS_DIR)/textconv
AIFF_EXTRACT_CODEBOOK := $(TOOLS_DIR)/aiff_extract_codebook
VADPCM_ENC := $(TOOLS_DIR)/vadpcm_enc
EXTRACT_DATA_FOR_MIO := $(TOOLS_DIR)/extract_data_for_mio
@@ -570,7 +571,7 @@ endif
# For non-IDO, use objcopy instead of extract_data_for_mio
ifneq ($(COMPILER),ido)
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data --only-section=.rodata
EXTRACT_DATA_FOR_MIO := $(OBJCOPY) -O binary --only-section=.data
endif
# Common build print status function
@@ -645,6 +646,29 @@ $(BUILD_DIR)/src/libz/%.o: OPT_FLAGS := -Os
$(BUILD_DIR)/src/libz/%.o: CFLAGS += -Wno-implicit-fallthrough -Wno-unused-parameter -Wno-pointer-sign
endif
ifeq ($(VERSION),eu)
TEXT_DIRS := text/de text/us text/fr
# EU encoded text inserted into individual segment 0x19 files,
# and course data also duplicated in leveldata.c
$(BUILD_DIR)/bin/eu/translation_en.o: $(BUILD_DIR)/text/us/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_de.o: $(BUILD_DIR)/text/de/define_text.inc.c
$(BUILD_DIR)/bin/eu/translation_fr.o: $(BUILD_DIR)/text/fr/define_text.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/us/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/de/define_courses.inc.c
$(BUILD_DIR)/levels/menu/leveldata.o: $(BUILD_DIR)/text/fr/define_courses.inc.c
else
ifeq ($(VERSION),sh)
TEXT_DIRS := text/jp
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/jp/define_text.inc.c
else
TEXT_DIRS := text/$(VERSION)
# non-EU encoded text inserted into segment 0x02
$(BUILD_DIR)/bin/segment2.o: $(BUILD_DIR)/text/$(VERSION)/define_text.inc.c
endif
endif
$(BUILD_DIR)/src/usb/usb.o: OPT_FLAGS := -O0
$(BUILD_DIR)/src/usb/usb.o: CFLAGS += -Wno-unused-variable -Wno-sign-compare -Wno-unused-function
$(BUILD_DIR)/src/usb/debug.o: OPT_FLAGS := -O0
@@ -662,11 +686,17 @@ $(BUILD_DIR)/src/game/rendering_graph_node.o: OPT_FLAGS := $(GRAPH_NODE_OPT_FLAG
# $(info MATH_UTIL_OPT_FLAGS: $(MATH_UTIL_OPT_FLAGS))
# $(info GRAPH_NODE_OPT_FLAGS: $(GRAPH_NODE_OPT_FLAGS))
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
ALL_DIRS := $(BUILD_DIR) $(addprefix $(BUILD_DIR)/,$(SRC_DIRS) asm/debug $(GODDARD_SRC_DIRS) $(LIBZ_SRC_DIRS) $(ULTRA_BIN_DIRS) $(BIN_DIRS) $(TEXTURE_DIRS) $(TEXT_DIRS) $(SOUND_SAMPLE_DIRS) $(addprefix levels/,$(LEVEL_DIRS)) rsp include) $(YAY0_DIR) $(addprefix $(YAY0_DIR)/,$(VERSION)) $(SOUND_BIN_DIR) $(SOUND_BIN_DIR)/sequences/$(VERSION)
# Make sure build directory exists before compiling anything
DUMMY != mkdir -p $(ALL_DIRS)
$(BUILD_DIR)/include/text_strings.h: $(BUILD_DIR)/include/text_menu_strings.h
$(BUILD_DIR)/src/menu/file_select.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/menu/star_select.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/ingame_menu.o: $(BUILD_DIR)/include/text_strings.h
$(BUILD_DIR)/src/game/puppycam2.o: $(BUILD_DIR)/include/text_strings.h
#==============================================================================#
@@ -793,6 +823,20 @@ $(BUILD_DIR)/assets/demo_data.c: assets/demo_data.json $(wildcard assets/demos/*
@$(PRINT) "$(GREEN)Generating demo data $(NO_COL)\n"
$(V)$(PYTHON) $(TOOLS_DIR)/demo_data_converter.py assets/demo_data.json $(DEF_INC_CFLAGS) > $@
# Encode in-game text strings
$(BUILD_DIR)/include/text_strings.h: include/text_strings.h.in
$(call print,Encoding:,$<,$@)
$(V)$(TEXTCONV) charmap.txt $< $@
$(BUILD_DIR)/include/text_menu_strings.h: include/text_menu_strings.h.in
$(call print,Encoding:,$<,$@)
$(V)$(TEXTCONV) charmap_menu.txt $< $@
$(BUILD_DIR)/text/%/define_courses.inc.c: text/define_courses.inc.c text/%/courses.h
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
$(BUILD_DIR)/text/%/define_text.inc.c: text/define_text.inc.c text/%/courses.h text/%/dialogs.h
@$(PRINT) "$(GREEN)Preprocessing: $(BLUE)$@ $(NO_COL)\n"
$(V)$(CPP) $(CPPFLAGS) $< -o - -I text/$*/ | $(TEXTCONV) charmap.txt - $@
# Level headers
$(BUILD_DIR)/include/level_headers.h: levels/level_headers.h.in
$(call print,Preprocessing level headers:,$<,$@)

View File

@@ -243,11 +243,9 @@ $(BUILD_DIR)/bin/machine.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/mountain.elf: SEGMENT_ADDRESS := 0x09000000
$(BUILD_DIR)/bin/grass.elf: SEGMENT_ADDRESS := 0x09000000
# EU segment 19 translations
$(BUILD_DIR)/bin/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_jp.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/translation_es.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_de.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_en.elf: SEGMENT_ADDRESS := 0x19000000
$(BUILD_DIR)/bin/eu/translation_fr.elf: SEGMENT_ADDRESS := 0x19000000
# --------------------------------------
# Skybox Rules

View File

@@ -17,11 +17,11 @@ This is a fork of the ultrasm64 repo by CrashOveride which includes the followin
- **MrComit**: General use object defines, JUMP_KICK_FIX
- **aglab2**: Bugfixes (particularly puppycam), refactor stuff
- **someone2639**: math.s and crash screen disam, stack trace, map packing, shiftable segments 2, S2DEX engine
- **Arthurtilly**: ASCII / UTF-8 support, Multilang, Platform Displacement 2
- **Arthurtilly**: Platform Displacement 2
- **Fazana**: PuppyLib, ucode swapping, audio load time optimisations (with Arctic), general hacker qol improvements, visual debug
- **Reonu**: Starting the project + widescreen, reonucam, various defines for hacker QoL, and a custom Spanish (Spain) translation of the game.
- **Reonu**: Starting the project/repo, widescreen, reonucam, various defines for hacker QoL
- **JoshDuMan**: Decomp guy, general assistance
- **Arceveti**: Silhouette, shadow optimisation, better hanging, breath meter, 4 controller support
- **Arceveti**: Silhouette, shadow optimizations, better hanging, breath meter, painting objects, 4 controller support, implementation of frameperfection's rounded corners fix, naming most unknowns, various hacker QOL improvements, and various optimizations/fixes
- **axollyon**: Console testing, bugfixes, idea-guying, and had a hand in silhouettes
- **Wiseguy**: World scale reimplementation, silhouette, graph node optimisations, instant input patch, cake screen fix, segmented code support, and various optimizations/fixes
- **Kaze**: Graph node optimisations, automatic optimal collision distance
@@ -87,9 +87,9 @@ Thanks to Frame#5375 and AloXado320 for also helping with silhouette stuff
- You can set a test level in `config/config_debug.h` in order to boot straight into it, so you can quickly test the level you're working on. *
- Allow all surfaces in the game to have a `force` parameter. Activating this doesn't REQUIRE you to set `force` for every surface: If you don't set, it will default to 0x0000 rather than crashing. Increases RAM usage of collision. *
- The clown font includes the entire English alphabet.
- Colored ia4 text support. Format: `"@XXXXXX[YOUR TEXT]@--------"` (By Arthurtilly)
- Example Text: `"@FF0000RED @00FF00GREEN @0000FFBLUE @FFFFFFWHITE"`
- NOTE: Text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset. The text will use gDialogTextAlpha as the alpha value when changing the color.
- Colored ia4 text support. Format: `"@XXXXXXXX[YOUR TEXT]@--------"` (By ArcticJaguar725)
- Example Text: `"@FF0000FFRED @00FF00FFGREEN @0000FFFFBLUE @FFFFFF00INVISIBLE @--------NORMAL"`
- NOTE: It is not mandatory to reset the text color with `"@--------"`, but text will need to be recolored each time it scrolls in a dialog box, or the custom color will reset.
- Toggle visiblity of collision surfaces and object hitboxes with Visual Surface Debug. `config/config_debug.h` has VISUAL_DEBUG which can be turned on to enable this feature.
- Workaround for infinite death loops caused by using the wrong warp type for death warps. Mario's HP will be restored when being warped to any warp if (and only if) he was warped while dead. *

View File

@@ -226,6 +226,9 @@ extern const Gfx mushroom_1up_seg3_dl_0302A660[];
// number
extern const GeoLayout number_geo[];
// painting
extern const GeoLayout painting_geo[];
// pebble
extern const Gfx pebble_seg3_dl_0301CB00[];

View File

@@ -18,6 +18,7 @@
#include "leaves/geo.inc.c"
#include "mario_cap/geo.inc.c"
#include "number/geo.inc.c"
#include "painting/geo.inc.c"
#include "mushroom_1up/geo.inc.c"
#include "star/geo.inc.c"
#include "dirt/geo.inc.c"

View File

@@ -0,0 +1,9 @@
#include "game/paintings.h"
const GeoLayout painting_geo[] = {
GEO_CULLING_RADIUS(2000),
GEO_OPEN_NODE(),
GEO_ASM(0, geo_painting_draw),
GEO_CLOSE_NODE(),
GEO_END(),
};

15
bin/eu/translation_de.c Normal file
View File

@@ -0,0 +1,15 @@
// SM64 (EU) Segment 19 - Deutsch
#include "macros.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
// Include text/define_text.inc.c, preprocessed with -I text/de/ to get the
// right translation strings, with symbols renamed as below.
#define seg2_course_name_table course_name_table_eu_de
#define seg2_act_name_table act_name_table_eu_de
#define seg2_dialog_table dialog_table_eu_de
#include "text/de/define_text.inc.c"

15
bin/eu/translation_en.c Normal file
View File

@@ -0,0 +1,15 @@
// SM64 (EU) Segment 19 - English
#include "macros.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
// Include text/define_text.inc.c, preprocessed with -I text/us/ to get the
// right translation strings, with symbols renamed as below.
#define seg2_course_name_table course_name_table_eu_en
#define seg2_act_name_table act_name_table_eu_en
#define seg2_dialog_table dialog_table_eu_en
#include "text/us/define_text.inc.c"

15
bin/eu/translation_fr.c Normal file
View File

@@ -0,0 +1,15 @@
// SM64 (EU) Segment 19 - Français
#include "macros.h"
#include "game/ingame_menu.h"
#include "make_const_nonconst.h"
// Include text/define_text.inc.c, preprocessed with -I text/fr/ to get the
// right translation strings, with symbols renamed as below.
#define seg2_course_name_table course_name_table_eu_fr
#define seg2_act_name_table act_name_table_eu_fr
#define seg2_dialog_table dialog_table_eu_fr
#include "text/fr/define_text.inc.c"

File diff suppressed because it is too large Load Diff

539
bin/segment2/paintings.c.in Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - Deutsch
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_de
#define ACT_NAME_TABLE act_name_table_de
#define DIALOG_TABLE dialog_table_de
#define DIALOG_FILE "de/dialogs.h"
#define COURSE_FILE "de/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - English
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_en
#define ACT_NAME_TABLE act_name_table_en
#define DIALOG_TABLE dialog_table_en
#define DIALOG_FILE "us/dialogs.h"
#define COURSE_FILE "us/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - Español (España) (Not vanilla: Translation created and added by Reonu)
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_es
#define ACT_NAME_TABLE act_name_table_es
#define DIALOG_TABLE dialog_table_es
#define DIALOG_FILE "es/dialogs.h"
#define COURSE_FILE "es/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - Français
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_fr
#define ACT_NAME_TABLE act_name_table_fr
#define DIALOG_TABLE dialog_table_fr
#define DIALOG_FILE "fr/dialogs.h"
#define COURSE_FILE "fr/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

View File

@@ -1,17 +0,0 @@
// SM64 (EU) Segment 19 - 日本語 (Japanese)
#include "macros.h"
#include "game/ingame_menu.h"
#include "sounds.h"
#include "seq_ids.h"
#define COURSE_NAME_TABLE course_name_table_jp
#define ACT_NAME_TABLE act_name_table_jp
#define DIALOG_TABLE dialog_table_jp
#define DIALOG_FILE "jp/dialogs.h"
#define COURSE_FILE "jp/courses.h"
#include "text/define_text.inc.c"
#undef DIALOG_FILE
#undef COURSE_FILE

357
charmap.txt Normal file
View File

@@ -0,0 +1,357 @@
'0' = 0x00
'' = 0x00
'1' = 0x01
'' = 0x01
'2' = 0x02
'' = 0x02
'3' = 0x03
'' = 0x03
'4' = 0x04
'' = 0x04
'5' = 0x05
'' = 0x05
'6' = 0x06
'' = 0x06
'7' = 0x07
'' = 0x07
'8' = 0x08
'' = 0x08
'9' = 0x09
'' = 0x09
'A' = 0x0A
'' = 0x0A
'B' = 0x0B
'' = 0x0B
'C' = 0x0C
'' = 0x0C
'D' = 0x0D
'' = 0x0D
'E' = 0x0E
'' = 0x0E
'F' = 0x0F
'' = 0x0F
'G' = 0x10
'' = 0x10
'H' = 0x11
'' = 0x11
'I' = 0x12
'' = 0x12
'J' = 0x13
'' = 0x13
'K' = 0x14
'' = 0x14
'L' = 0x15
'' = 0x15
'M' = 0x16
'' = 0x16
'N' = 0x17
'' = 0x17
'O' = 0x18
'' = 0x18
'P' = 0x19
'' = 0x19
'Q' = 0x1A
'' = 0x1A
'R' = 0x1B
'' = 0x1B
'S' = 0x1C
'' = 0x1C
'T' = 0x1D
'' = 0x1D
'U' = 0x1E
'' = 0x1E
'V' = 0x1F
'' = 0x1F
'W' = 0x20
'' = 0x20
'X' = 0x21
'' = 0x21
'Y' = 0x22
'' = 0x22
'Z' = 0x23
'' = 0x23
'a' = 0x24
'b' = 0x25
'c' = 0x26
'd' = 0x27
'e' = 0x28
'f' = 0x29
'g' = 0x2A
'h' = 0x2B
'i' = 0x2C
'j' = 0x2D
'k' = 0x2E
'l' = 0x2F
'm' = 0x30
'n' = 0x31
'o' = 0x32
'p' = 0x33
'q' = 0x34
'r' = 0x35
's' = 0x36
't' = 0x37
'u' = 0x38
'v' = 0x39
'w' = 0x3A
'x' = 0x3B
'y' = 0x3C
'z' = 0x3D
'\'' = 0x3E
'.' = 0x3F
# Mario face US/EU menu string (Note: NOT multi-text, each char has a part of the face)
'☺' = 0x40, 0x41
'あ' = 0x40
'い' = 0x41
'う' = 0x42
'え' = 0x43
'お' = 0x44
'か' = 0x45
'き' = 0x46
'く' = 0x47
'け' = 0x48
'こ' = 0x49
'さ' = 0x4A
'し' = 0x4B
'す' = 0x4C
'せ' = 0x4D
'そ' = 0x4E
'た' = 0x4F
'ち' = 0x50
'つ' = 0x51
'て' = 0x52
'と' = 0x53
'な' = 0x54
'に' = 0x55
'ぬ' = 0x56
'ね' = 0x57
'の' = 0x58
'は' = 0x59
'ひ' = 0x5A
'ふ' = 0x5B
'へ' = 0x5C
'ほ' = 0x5D
'ま' = 0x5E
'み' = 0x5F
'む' = 0x60
'め' = 0x61
'も' = 0x62
'や' = 0x63
'ゆ' = 0x64
'よ' = 0x65
'ら' = 0x66
'り' = 0x67
'る' = 0x68
'れ' = 0x69
'ろ' = 0x6A
'わ' = 0x6B
'を' = 0x6C
'ん' = 0x6D
'。' = 0x6E
',' = 0x6F
'、' = 0x6F
'ア' = 0x70
'イ' = 0x71
'ウ' = 0x72
'エ' = 0x73
'オ' = 0x74
'カ' = 0x75
'キ' = 0x76
'ク' = 0x77
'ケ' = 0x78
'コ' = 0x79
'サ' = 0x7A
'シ' = 0x7B
'ス' = 0x7C
'セ' = 0x7D
'ソ' = 0x7E
'タ' = 0x7F
'チ' = 0x80
'ツ' = 0x81
'テ' = 0x82
'ト' = 0x83
'ナ' = 0x84
'ニ' = 0x85
'ヌ' = 0x86
'ネ' = 0x87
'' = 0x88
'ハ' = 0x89
'ヒ' = 0x8A
'フ' = 0x8B
'ヘ' = 0x8C
'ホ' = 0x8D
'マ' = 0x8E
'ミ' = 0x8F
'ム' = 0x90
'メ' = 0x91
'モ' = 0x92
'ヤ' = 0x93
'ユ' = 0x94
'ヨ' = 0x95
'ラ' = 0x96
'リ' = 0x97
'ル' = 0x98
'レ' = 0x99
'ロ' = 0x9A
'ワ' = 0x9B
# 0x9C is unused, only defined in jp menu char lut
'ヲ' = 0x9C
'ン' = 0x9D
' ' = 0x9E
' ' = 0x9E
'-' = 0x9F
'ー' = 0x9F
'ぇ' = 0xA0
'っ' = 0xA1
'ゃ' = 0xA2
'ゅ' = 0xA3
'ょ' = 0xA4
'ぁ' = 0xA5
'ぃ' = 0xA6
'ぅ' = 0xA7
'ぉ' = 0xA8
'ェ' = 0xD0
'ッ' = 0xD1
'ャ' = 0xD2
'ュ' = 0xD3
'ョ' = 0xD4
'ァ' = 0xD5
'ィ' = 0xD6
'ゥ' = 0xD7
'ォ' = 0xD8
'@' = 0xDF
'[%]' = 0xE0
'(' = 0xE1
'' = 0xE1
')(' = 0xE2
'' = 0xE2
')' = 0xE3
'' = 0xE3
'+' = 0xE4
'↔' = 0xE4
'&' = 0xE5
':' = 0xE6
'゛' = 0xF0
'゜' = 0xF1
'!' = 0xF2
'' = 0xF2
'%' = 0xF3
'' = 0xF3
'?' = 0xF4
'' = 0xF4
'『' = 0xF5
'』' = 0xF6
'~' = 0xF7
'' = 0xF7
'…' = 0xF8
'$' = 0xF9
'★' = 0xFA
'×' = 0xFB
'・' = 0xFC
'☆' = 0xFD
'\n' = 0xFE
# hiragana or katakana with dakuten
'が' = 0xF0, 0x45
'ぎ' = 0xF0, 0x46
'ぐ' = 0xF0, 0x47
'げ' = 0xF0, 0x48
'ご' = 0xF0, 0x49
'ざ' = 0xF0, 0x4A
'じ' = 0xF0, 0x4B
'ず' = 0xF0, 0x4C
'ぜ' = 0xF0, 0x4D
'ぞ' = 0xF0, 0x4E
'だ' = 0xF0, 0x4F
'ぢ' = 0xF0, 0x50
'づ' = 0xF0, 0x51
'で' = 0xF0, 0x52
'ど' = 0xF0, 0x53
'ば' = 0xF0, 0x59
'び' = 0xF0, 0x5A
'ぶ' = 0xF0, 0x5B
'べ' = 0xF0, 0x5C
'ぼ' = 0xF0, 0x5D
'ガ' = 0xF0, 0x75
'ギ' = 0xF0, 0x76
'グ' = 0xF0, 0x77
'ゲ' = 0xF0, 0x78
'ゴ' = 0xF0, 0x79
'ザ' = 0xF0, 0x7A
'ジ' = 0xF0, 0x7B
'ズ' = 0xF0, 0x7C
'ゼ' = 0xF0, 0x7D
'ゾ' = 0xF0, 0x7E
'ダ' = 0xF0, 0x7F
'ヂ' = 0xF0, 0x80
'ヅ' = 0xF0, 0x81
'デ' = 0xF0, 0x82
'ド' = 0xF0, 0x83
'バ' = 0xF0, 0x89
'ビ' = 0xF0, 0x8A
'ブ' = 0xF0, 0x8B
'ベ' = 0xF0, 0x8C
'ボ' = 0xF0, 0x8D
# hiragana or katakana with handakuten
'ぱ' = 0xF1, 0x59
'ぴ' = 0xF1, 0x5A
'ぷ' = 0xF1, 0x5B
'ぺ' = 0xF1, 0x5C
'ぽ' = 0xF1, 0x5D
'パ' = 0xF1, 0x89
'ピ' = 0xF1, 0x8A
'プ' = 0xF1, 0x8B
'ペ' = 0xF1, 0x8C
'ポ' = 0xF1, 0x8D
# overwritten US symbols
# these symbols overwrite
# a previous symbol.
'^' = 0x50
'|' = 0x51
'<' = 0x52
'>' = 0x53
'[A]' = 0x54
'[B]' = 0x55
'[C]' = 0x56
'[Z]' = 0x57
'[R]' = 0x58
'/' = 0xD0
# multi-text US symbols
'the' = 0xD1
'you' = 0xD2
# EU ROM symbols
'à' = 0x60
'â' = 0x61
'ä' = 0x62
'À' = 0x64
'Â' = 0x65
'Ä' = 0x66
'è' = 0x70
'ê' = 0x71
'ë' = 0x72
'é' = 0x73
'È' = 0x74
'Ê' = 0x75
'Ë' = 0x76
'É' = 0x77
'ù' = 0x80
'û' = 0x81
'ü' = 0x82
'Ù' = 0x84
'Û' = 0x85
'Ü' = 0x86
'ô' = 0x91
'ö' = 0x92
'Ô' = 0x95
'Ö' = 0x96
'î' = 0xA1
'ï' = 0xA2
'ß' = 0xEC
'Ç' = 0xED
'ç' = 0xEE
'„' = 0xF0

30
charmap_menu.txt Normal file
View File

@@ -0,0 +1,30 @@
# Menu HUD chars, only used in JP
# Char values used by text_menu_strings.h.in
'フ' = 0x00
'ァ' = 0x01
'イ' = 0x02
'ル' = 0x03
'セ' = 0x04
'レ' = 0x05
'ク' = 0x06
'ト' = 0x07
'を' = 0x08
'コ' = 0x09
'ピ' = 0x0A
'ー' = 0x0B
'す' = 0x0C
'る' = 0x0D
'け' = 0x0E
'マ' = 0x0F
'リ' = 0x10
'オ' = 0x11
'ス' = 0x12
'ア' = 0x13
'み' = 0x14
'ど' = 0x15
'の' = 0x16
'' = 0x17
'サ' = 0x18
'ウ' = 0x19
'ン' = 0x1A
'ド' = 0x1B

View File

@@ -8,6 +8,7 @@
#include "game/behavior_actions.h"
#include "game/mario_actions_cutscene.h"
#include "game/mario_misc.h"
#include "game/paintings.h"
#include "game/object_helpers.h"
#include "game/debug.h"
#include "menu/file_select.h"
@@ -2227,16 +2228,6 @@ const BehaviorScript bhvWaterLevelPillar[] = {
END_LOOP(),
};
const BehaviorScript bhvDddWarp[] = {
BEGIN(OBJ_LIST_SURFACE),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
SET_FLOAT(oCollisionDistance, 30000),
BEGIN_LOOP(),
CALL_NATIVE(bhv_ddd_warp_loop),
CALL_NATIVE(load_object_collision_model),
END_LOOP(),
};
const BehaviorScript bhvMoatGrills[] = {
BEGIN(OBJ_LIST_SURFACE),
#ifdef UNLOCK_ALL
@@ -3494,6 +3485,15 @@ const BehaviorScript bhvUnlockDoorStar[] = {
END_LOOP(),
};
const BehaviorScript bhvPainting[] = {
BEGIN(OBJ_LIST_LEVEL),
OR_INT(oFlags, OBJ_FLAG_UPDATE_GFX_POS_AND_ANGLE),
CALL_NATIVE(bhv_painting_init),
BEGIN_LOOP(),
CALL_NATIVE(bhv_painting_loop),
END_LOOP(),
};
const BehaviorScript bhvInstantActiveWarp[] = {
BREAK(),
};

543
enhancements/reonucam.patch Normal file

File diff suppressed because it is too large Load Diff

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