diff --git a/Makefile b/Makefile
index a1bc3063..55c50b4d 100644
--- a/Makefile
+++ b/Makefile
@@ -27,6 +27,7 @@ TARGET_RPI ?= 0
# Build for Emscripten/WebGL
TARGET_WEB ?= 0
+# Build for iOS devices
TARGET_IOS ?= 1
# Makeflag to enable OSX fixes
@@ -698,6 +699,7 @@ LOADER_FLAGS = -vwf
SHA1SUM = sha1sum
ZEROTERM = $(PYTHON) $(TOOLS_DIR)/zeroterm.py
IBTOOL = ibtool
+CODESIGN = codesign
###################### Dependency Check #####################
@@ -746,6 +748,24 @@ $(BASEPACK_PATH): $(BASEPACK_LST)
endif
+ios: default
+ $(RM) -rf $(BUILD_DIR_BASE)/$(TARGET).app
+ cp -a ios/. $(BUILD_DIR)
+ cp -R $(BUILD_DIR) build/$(TARGET).app
+ $(RM) -rf $(BUILD_DIR_BASE)/Payload
+ $(RM) -rf $(BUILD_DIR_BASE)/$(TARGET).ipa
+ mkdir $(BUILD_DIR_BASE)/Payload
+ cp -r $(BUILD_DIR_BASE)/$(TARGET).app $(BUILD_DIR_BASE)/Payload
+ $(CODESIGN) -f -s "$(CODE_SIGN_IDENTITY)" --entitlements "$(CODE_SIGN_ENTITLEMENTS)" $(BUILD_DIR_BASE)/Payload/$(TARGET).app
+ cd $(BUILD_DIR_BASE) && zip -r -q $(TARGET).ipa Payload && cd ..
+ $(RM) -rf $(BUILD_DIR_BASE)/Payload
+ $(RM) -rf $(BUILD_DIR_BASE)/$(TARGET).app
+
+sim: default
+ $(RM) -rf $(BUILD_DIR_BASE)/$(TARGET).app
+ cp -a ios/. $(BUILD_DIR)
+ cp -R $(BUILD_DIR) build/$(TARGET).app
+
clean:
$(RM) -r $(BUILD_DIR_BASE)
@@ -1024,7 +1044,7 @@ $(BUILD_DIR)/%.o: %.s
$(EXE): $(O_FILES) $(MIO0_FILES:.mio0=.o) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(BUILD_DIR)/$(RPC_LIBS)
$(LD) -L $(BUILD_DIR) -o $@ $(O_FILES) $(SOUND_OBJ_FILES) $(ULTRA_O_FILES) $(GODDARD_O_FILES) $(LDFLAGS)
-.PHONY: all clean distclean default diff test load libultra res
+.PHONY: all clean distclean default diff test load libultra res ios sim
.PRECIOUS: $(BUILD_DIR)/bin/%.elf $(SOUND_BIN_DIR)/%.ctl $(SOUND_BIN_DIR)/%.tbl $(SOUND_SAMPLE_TABLES) $(SOUND_BIN_DIR)/%.s $(BUILD_DIR)/%
.DELETE_ON_ERROR:
diff --git a/build.sh b/build.sh
new file mode 100755
index 00000000..b9653997
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,18 @@
+case ${PLATFORM_NAME} in
+ iphoneos)
+ export CC="clang -arch arm64 --target=arm64-apple-ios -mios-version-min=13.2 -fobjc-weak -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -DUSE_GLES -DAAPI_SDL2 -DWAPI_SDL2"
+ export CXX="clang++ -arch arm64 -mios-version-min=13.2 -fobjc-weak -std=c++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -DUSE_GLES -DAAPI_SDL2 -DWAPI_SDL2"
+ ;;
+ iphonesimulator)
+ export CC="clang -arch x86_64 -mios-version-min=13.2 -fobjc-weak -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -DUSE_GLES -DAAPI_SDL2 -DWAPI_SDL2"
+ export CXX="clang++ -arch x86_64 -mios-version-min=13.2 -fobjc-weak -std=c++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk -DUSE_GLES -DAAPI_SDL2 -DWAPI_SDL2"
+ ;;
+esac
+
+export IOSINCLUDE="${SDL2_INCLUDE_DIR}/"
+export IOSLIBS="${BUILT_PRODUCTS_DIR}/"
+
+gmake -j4 TARGET_IOS=1
+
+cp -R "build/us_pc/." "${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}/"
+rsync -aP --exclude="Info.plist" "ios/" "${BUILT_PRODUCTS_DIR}/${FULL_PRODUCT_NAME}"
diff --git a/build_ios.sh b/build_ios.sh
index 9a371628..7deb4b39 100755
--- a/build_ios.sh
+++ b/build_ios.sh
@@ -2,21 +2,7 @@ export CC="clang -arch arm64 -mios-version-min=13.2 -fobjc-weak -isysroot /Appli
export CXX="clang++ -arch arm64 -mios-version-min=13.2 -fobjc-weak -std=c++11 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk -DUSE_GLES -DAAPI_SDL2 -DWAPI_SDL2"
export IOSINCLUDE="../ioslib/include"
export IOSLIBS="../ioslib/lib"
+export CODE_SIGN_IDENTITY="Apple Development"
+export CODE_SIGN_ENTITLEMENTS="sm64ios.entitlements"
-gmake -j4 TARGET_IOS=1
-
-if [ $? -eq 0 ]; then
- rm -rf build/sm64ios.app
- cp -a ios/. build/us_pc/
- cp -R build/us_pc build/sm64ios.app
- codesign -f -s "Apple Development" --entitlements sm64ios.entitlements build/sm64ios.app
- rm -rf build/Payload
- rm -rf build/sm64ios.ipa
- mkdir build/Payload
- cp -r build/sm64ios.app build/Payload
- cd build
- zip -r -q sm64ios.ipa Payload
- rm -rf Payload
- rm -rf sm64ios.app
- cd ..
-fi
+gmake ios -j4 TARGET_IOS=1
diff --git a/build_sim.sh b/build_sim.sh
index 7ad93352..881ebd80 100755
--- a/build_sim.sh
+++ b/build_sim.sh
@@ -3,10 +3,4 @@ export CXX="clang++ -arch x86_64 -mios-version-min=13.2 -fobjc-weak -std=c++11 -
export IOSINCLUDE="../simlib/include"
export IOSLIBS="../simlib/lib"
-gmake -j4 TARGET_IOS=1
-
-if [ $? -eq 0 ]; then
- rm -rf build/sm64ios.app
- cp -a ios/. build/us_pc/
- cp -R build/us_pc build/sm64ios.app
-fi
+gmake sim -j4 TARGET_IOS=1
diff --git a/sm64ios.xcworkspace/contents.xcworkspacedata b/sm64ios.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 00000000..951f8017
--- /dev/null
+++ b/sm64ios.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/sm64ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/sm64ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 00000000..18d98100
--- /dev/null
+++ b/sm64ios.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ IDEDidComputeMac32BitWarning
+
+
+
diff --git a/sm64ios.xcworkspace/xcuserdata/christiankosman.xcuserdatad/UserInterfaceState.xcuserstate b/sm64ios.xcworkspace/xcuserdata/christiankosman.xcuserdatad/UserInterfaceState.xcuserstate
new file mode 100644
index 00000000..72715052
Binary files /dev/null and b/sm64ios.xcworkspace/xcuserdata/christiankosman.xcuserdatad/UserInterfaceState.xcuserstate differ
diff --git a/sm64ios/sm64ios.xcodeproj/TemplateIcon.icns b/sm64ios/sm64ios.xcodeproj/TemplateIcon.icns
new file mode 100644
index 00000000..4500ce2b
Binary files /dev/null and b/sm64ios/sm64ios.xcodeproj/TemplateIcon.icns differ
diff --git a/sm64ios/sm64ios.xcodeproj/TemplateInfo.plist b/sm64ios/sm64ios.xcodeproj/TemplateInfo.plist
new file mode 100644
index 00000000..498e37d4
--- /dev/null
+++ b/sm64ios/sm64ios.xcodeproj/TemplateInfo.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ Description
+ This project builds an SDL based project for iPhone OS using C or Objective-C. It includes everything you need to get up and running with SDL on iPhone.
+ CFBundleIconFile
+ Icon.png
+
+
diff --git a/sm64ios/sm64ios.xcodeproj/project.pbxproj b/sm64ios/sm64ios.xcodeproj/project.pbxproj
new file mode 100644
index 00000000..7fb6488d
--- /dev/null
+++ b/sm64ios/sm64ios.xcodeproj/project.pbxproj
@@ -0,0 +1,1874 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 5918D221271964510085DDED /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE0E9641BAF967F0098DFA4 /* GameController.framework */; };
+ 5918D43E271C1EB80085DDED /* libSDL2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5918D43C271C1EB80085DDED /* libSDL2.a */; };
+ 5918D43F271C1EB80085DDED /* libSDLmain.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5918D43D271C1EB80085DDED /* libSDLmain.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 1D30AB110D05D00D00671497 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ 1DF5F4DF0D08C38300B7A737 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ 28FD14FF0DC6FC520079059D /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; };
+ 28FD15070DC6FC5B0079059D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ 5918D1FD27192A420085DDED /* sm64ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = sm64ios.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5918D21027192A4C0085DDED /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
+ 5918D217271956920085DDED /* build.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; name = build.sh; path = ../build.sh; sourceTree = ""; };
+ 5918D43C271C1EB80085DDED /* libSDL2.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libSDL2.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5918D43D271C1EB80085DDED /* libSDLmain.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; path = libSDLmain.a; sourceTree = BUILT_PRODUCTS_DIR; };
+ 5918D474271C223E0085DDED /* cliopts.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cliopts.c; sourceTree = ""; };
+ 5918D475271C223E0085DDED /* cheats.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cheats.c; sourceTree = ""; };
+ 5918D476271C223E0085DDED /* mixer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mixer.c; sourceTree = ""; };
+ 5918D477271C223E0085DDED /* pc_main.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = pc_main.h; sourceTree = ""; };
+ 5918D478271C223E0085DDED /* README-n64-fast32-engine.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = "README-n64-fast32-engine.md"; sourceTree = ""; };
+ 5918D479271C223E0085DDED /* ini.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ini.c; sourceTree = ""; };
+ 5918D47B271C223E0085DDED /* discordrpc.c.disabled */ = {isa = PBXFileReference; lastKnownFileType = text; path = discordrpc.c.disabled; sourceTree = ""; };
+ 5918D47C271C223E0085DDED /* discordrpc.h.disabled */ = {isa = PBXFileReference; lastKnownFileType = text; path = discordrpc.h.disabled; sourceTree = ""; };
+ 5918D47D271C223E0085DDED /* pc_main.m.orig */ = {isa = PBXFileReference; lastKnownFileType = text; path = pc_main.m.orig; sourceTree = ""; };
+ 5918D47E271C223E0085DDED /* ultra_reimplementation.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ultra_reimplementation.c; sourceTree = ""; };
+ 5918D47F271C223E0085DDED /* configfile.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = configfile.h; sourceTree = ""; };
+ 5918D480271C223E0085DDED /* platform.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = platform.c; sourceTree = ""; };
+ 5918D481271C223E0085DDED /* pc_main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = pc_main.m; sourceTree = ""; };
+ 5918D483271C223E0085DDED /* controller_touchscreen_layouts.inc */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.pascal; path = controller_touchscreen_layouts.inc; sourceTree = ""; };
+ 5918D484271C223E0085DDED /* controller_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_keyboard.c; sourceTree = ""; };
+ 5918D485271C223E0085DDED /* controller_recorded_tas.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_recorded_tas.c; sourceTree = ""; };
+ 5918D486271C223E0085DDED /* controller_emscripten_keyboard.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_emscripten_keyboard.c; sourceTree = ""; };
+ 5918D487271C223E0085DDED /* controller_touchscreen.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_touchscreen.h; sourceTree = ""; };
+ 5918D488271C223E0085DDED /* controller_api.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_api.c; sourceTree = ""; };
+ 5918D489271C223E0085DDED /* controller_sdl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_sdl.h; sourceTree = ""; };
+ 5918D48A271C223E0085DDED /* controller_keyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_keyboard.h; sourceTree = ""; };
+ 5918D48B271C223E0085DDED /* controller_recorded_tas.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_recorded_tas.h; sourceTree = ""; };
+ 5918D48C271C223E0085DDED /* controller_sdl2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_sdl2.c; sourceTree = ""; };
+ 5918D48D271C223E0085DDED /* controller_mouse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_mouse.h; sourceTree = ""; };
+ 5918D48E271C223E0085DDED /* controller_emscripten_keyboard.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_emscripten_keyboard.h; sourceTree = ""; };
+ 5918D48F271C223E0085DDED /* controller_touchscreen.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = controller_touchscreen.m; sourceTree = ""; };
+ 5918D490271C223E0085DDED /* controller_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = controller_api.h; sourceTree = ""; };
+ 5918D491271C223E0085DDED /* controller_sdl1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_sdl1.c; sourceTree = ""; };
+ 5918D492271C223E0085DDED /* controller_entry_point.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = controller_entry_point.c; sourceTree = ""; };
+ 5918D493271C223E0085DDED /* cheats.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cheats.h; sourceTree = ""; };
+ 5918D494271C223E0085DDED /* ini.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ini.h; sourceTree = ""; };
+ 5918D495271C223E0085DDED /* mixer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mixer.h; sourceTree = ""; };
+ 5918D497271C223E0085DDED /* audio_sdl2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_sdl2.c; sourceTree = ""; };
+ 5918D498271C223E0085DDED /* audio_sdl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_sdl.h; sourceTree = ""; };
+ 5918D499271C223E0085DDED /* audio_null.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_null.h; sourceTree = ""; };
+ 5918D49A271C223E0085DDED /* audio_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = audio_api.h; sourceTree = ""; };
+ 5918D49B271C223E0085DDED /* audio_sdl1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_sdl1.c; sourceTree = ""; };
+ 5918D49C271C223E0085DDED /* audio_null.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = audio_null.c; sourceTree = ""; };
+ 5918D49D271C223E0085DDED /* cliopts.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cliopts.h; sourceTree = ""; };
+ 5918D49E271C223E0085DDED /* configfile.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = configfile.c; sourceTree = ""; };
+ 5918D4A0271C223E0085DDED /* fs_packtype_dir.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fs_packtype_dir.c; sourceTree = ""; };
+ 5918D4A1271C223E0085DDED /* dirtree.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dirtree.c; sourceTree = ""; };
+ 5918D4A2271C223E0085DDED /* fs_packtype_zip.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fs_packtype_zip.c; sourceTree = ""; };
+ 5918D4A3271C223E0085DDED /* fs.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fs.c; sourceTree = ""; };
+ 5918D4A4271C223E0085DDED /* dirtree.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = dirtree.h; sourceTree = ""; };
+ 5918D4A5271C223E0085DDED /* fs.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = fs.h; sourceTree = ""; };
+ 5918D4A7271C223E0085DDED /* gfx_window_manager_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_window_manager_api.h; sourceTree = ""; };
+ 5918D4A8271C223E0085DDED /* gfx_sdl1.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gfx_sdl1.c; sourceTree = ""; };
+ 5918D4A9271C223E0085DDED /* gfx_direct3d_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_direct3d_common.h; sourceTree = ""; };
+ 5918D4AA271C223E0085DDED /* gfx_opengl.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gfx_opengl.c; sourceTree = ""; };
+ 5918D4AB271C223E0085DDED /* gfx_uikit.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_uikit.h; sourceTree = ""; };
+ 5918D4AC271C223E0085DDED /* gfx_pc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gfx_pc.c; sourceTree = ""; };
+ 5918D4AD271C223E0085DDED /* gfx_rendering_api.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_rendering_api.h; sourceTree = ""; };
+ 5918D4AE271C223E0085DDED /* gfx_cc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gfx_cc.c; sourceTree = ""; };
+ 5918D4AF271C223E0085DDED /* gfx_sdl2.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = gfx_sdl2.m; sourceTree = ""; };
+ 5918D4B0271C223E0085DDED /* gfx_dxgi.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_dxgi.h; sourceTree = ""; };
+ 5918D4B1271C223E0085DDED /* gfx_screen_config.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_screen_config.h; sourceTree = ""; };
+ 5918D4B2271C223E0085DDED /* gfx_sdl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_sdl.h; sourceTree = ""; };
+ 5918D4B3271C223E0085DDED /* gfx_direct3d12.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_direct3d12.cpp; sourceTree = ""; };
+ 5918D4B4271C223E0085DDED /* gfx_dxgi.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_dxgi.cpp; sourceTree = ""; };
+ 5918D4B5271C223E0085DDED /* gfx_direct3d_common.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_direct3d_common.cpp; sourceTree = ""; };
+ 5918D4B6271C223E0085DDED /* gfx_direct3d11.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = gfx_direct3d11.cpp; sourceTree = ""; };
+ 5918D4B7271C223E0085DDED /* gfx_direct3d11.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_direct3d11.h; sourceTree = ""; };
+ 5918D4B8271C223E0085DDED /* gfx_direct3d12_guids.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_direct3d12_guids.h; sourceTree = ""; };
+ 5918D4B9271C223E0085DDED /* gfx_opengl_legacy.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gfx_opengl_legacy.c; sourceTree = ""; };
+ 5918D4BA271C223E0085DDED /* gfx_pc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_pc.h; sourceTree = ""; };
+ 5918D4BB271C223E0085DDED /* gfx_uikit.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = gfx_uikit.m; sourceTree = ""; };
+ 5918D4BC271C223E0085DDED /* gfx_opengl.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_opengl.h; sourceTree = ""; };
+ 5918D4BD271C223E0085DDED /* gfx_direct3d12.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_direct3d12.h; sourceTree = ""; };
+ 5918D4BE271C223E0085DDED /* gfx_cc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_cc.h; sourceTree = ""; };
+ 5918D4BF271C223E0085DDED /* platform.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = ""; };
+ 5918D4C1271C223E0085DDED /* gfx_output_buffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = gfx_output_buffer.c; sourceTree = ""; };
+ 5918D4C2271C223E0085DDED /* framebuffers.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = framebuffers.c; sourceTree = ""; };
+ 5918D4C3271C223E0085DDED /* buffers.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = buffers.c; sourceTree = ""; };
+ 5918D4C4271C223E0085DDED /* zbuffer.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = zbuffer.c; sourceTree = ""; };
+ 5918D4C5271C223E0085DDED /* gfx_output_buffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = gfx_output_buffer.h; sourceTree = ""; };
+ 5918D4C6271C223E0085DDED /* buffers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = buffers.h; sourceTree = ""; };
+ 5918D4C7271C223E0085DDED /* zbuffer.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = zbuffer.h; sourceTree = ""; };
+ 5918D4C8271C223E0085DDED /* framebuffers.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = framebuffers.h; sourceTree = ""; };
+ 5918D4CA271C223E0085DDED /* main.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = main.h; sourceTree = ""; };
+ 5918D4CB271C223E0085DDED /* obj_behaviors_2.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = obj_behaviors_2.h; sourceTree = ""; };
+ 5918D4CC271C223E0085DDED /* level_update.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = level_update.c; sourceTree = ""; };
+ 5918D4CD271C223E0085DDED /* segment7.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = segment7.h; sourceTree = ""; };
+ 5918D4CE271C223E0085DDED /* mario_actions_stationary.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_actions_stationary.h; sourceTree = ""; };
+ 5918D4CF271C223E0085DDED /* mario_actions_object.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mario_actions_object.c; sourceTree = ""; };
+ 5918D4D0271C223E0085DDED /* debug.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = debug.h; sourceTree = ""; };
+ 5918D4D1271C223E0085DDED /* mario_actions_moving.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_actions_moving.h; sourceTree = ""; };
+ 5918D4D2271C223E0085DDED /* spawn_sound.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spawn_sound.c; sourceTree = ""; };
+ 5918D4D3271C223E0085DDED /* shadow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = shadow.c; sourceTree = ""; };
+ 5918D4D4271C223E0085DDED /* memory.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = memory.c; sourceTree = ""; };
+ 5918D4D5271C223E0085DDED /* macro_special_objects.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = macro_special_objects.c; sourceTree = ""; };
+ 5918D4D6271C223E0085DDED /* object_helpers.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = object_helpers.c; sourceTree = ""; };
+ 5918D4D7271C223E0085DDED /* sound_init.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = sound_init.h; sourceTree = ""; };
+ 5918D4D8271C223E0085DDED /* skybox.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = skybox.h; sourceTree = ""; };
+ 5918D4D9271C223E0085DDED /* geo_misc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = geo_misc.c; sourceTree = ""; };
+ 5918D4DA271C223E0085DDED /* print.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = print.c; sourceTree = ""; };
+ 5918D4DB271C223E0085DDED /* thread6.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = thread6.h; sourceTree = ""; };
+ 5918D4DC271C223E0085DDED /* rendering_graph_node.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = rendering_graph_node.c; sourceTree = ""; };
+ 5918D4DD271C223E0085DDED /* options_menu.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = options_menu.c; sourceTree = ""; };
+ 5918D4DE271C223E0085DDED /* mario.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mario.c; sourceTree = ""; };
+ 5918D4DF271C223E0085DDED /* save_file.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = save_file.c; sourceTree = ""; };
+ 5918D4E0271C223E0085DDED /* hud.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = hud.h; sourceTree = ""; };
+ 5918D4E1271C223E0085DDED /* mario_actions_automatic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_actions_automatic.h; sourceTree = ""; };
+ 5918D4E2271C223E0085DDED /* interaction.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = interaction.h; sourceTree = ""; };
+ 5918D4E3271C223E0085DDED /* envfx_snow.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = envfx_snow.c; sourceTree = ""; };
+ 5918D4E4271C223E0085DDED /* mario_actions_cutscene.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mario_actions_cutscene.c; sourceTree = ""; };
+ 5918D4E5271C223E0085DDED /* profiler.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = profiler.c; sourceTree = ""; };
+ 5918D4E6271C223E0085DDED /* mario_step.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_step.h; sourceTree = ""; };
+ 5918D4E7271C223E0085DDED /* camera.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = camera.h; sourceTree = ""; };
+ 5918D4E8271C223E0085DDED /* envfx_bubbles.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = envfx_bubbles.h; sourceTree = ""; };
+ 5918D4E9271C223E0085DDED /* mario_actions_submerged.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_actions_submerged.h; sourceTree = ""; };
+ 5918D4EA271C223E0085DDED /* ingame_menu.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ingame_menu.h; sourceTree = ""; };
+ 5918D4EB271C223E0085DDED /* mario_misc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_misc.h; sourceTree = ""; };
+ 5918D4EC271C223E0085DDED /* behavior_actions.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = behavior_actions.c; sourceTree = ""; };
+ 5918D4ED271C223E0085DDED /* screen_transition.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = screen_transition.h; sourceTree = ""; };
+ 5918D4EE271C223E0085DDED /* debug_course.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = debug_course.c; sourceTree = ""; };
+ 5918D4EF271C223E0085DDED /* moving_texture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = moving_texture.h; sourceTree = ""; };
+ 5918D4F0271C223E0085DDED /* paintings.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = paintings.c; sourceTree = ""; };
+ 5918D4F1271C223E0085DDED /* level_geo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = level_geo.h; sourceTree = ""; };
+ 5918D4F2271C223E0085DDED /* spawn_object.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spawn_object.c; sourceTree = ""; };
+ 5918D4F3271C223E0085DDED /* obj_behaviors.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = obj_behaviors.c; sourceTree = ""; };
+ 5918D4F4271C223E0085DDED /* text_save.inc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = text_save.inc.h; sourceTree = ""; };
+ 5918D4F5271C223E0085DDED /* area.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = area.h; sourceTree = ""; };
+ 5918D4F6271C223E0085DDED /* mario_actions_airborne.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mario_actions_airborne.c; sourceTree = ""; };
+ 5918D4F7271C223E0085DDED /* object_collision.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = object_collision.h; sourceTree = ""; };
+ 5918D4F8271C223E0085DDED /* platform_displacement.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = platform_displacement.h; sourceTree = ""; };
+ 5918D4F9271C223E0085DDED /* object_list_processor.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = object_list_processor.c; sourceTree = ""; };
+ 5918D4FA271C223E0085DDED /* game_init.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = game_init.m; sourceTree = ""; };
+ 5918D4FB271C223E0085DDED /* mario_actions_moving.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mario_actions_moving.c; sourceTree = ""; };
+ 5918D4FC271C223E0085DDED /* debug.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = debug.c; sourceTree = ""; };
+ 5918D4FD271C223E0085DDED /* display.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = display.h; sourceTree = ""; };
+ 5918D4FE271C223E0085DDED /* mario_actions_stationary.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mario_actions_stationary.c; sourceTree = ""; };
+ 5918D4FF271C223E0085DDED /* mario_actions_object.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = mario_actions_object.h; sourceTree = ""; };
+ 5918D500271C223E0085DDED /* bettercamera.inc.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = bettercamera.inc.h; sourceTree = ""; };
+ 5918D501271C223E0085DDED /* main.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = ""; };
+ 5918D502271C223E0085DDED /* obj_behaviors_2.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = obj_behaviors_2.c; sourceTree = ""; };
+ 5918D503271C223E0085DDED /* level_update.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = level_update.h; sourceTree = ""; };
+ 5918D505271C223E0085DDED /* beta_fish_splash_spawner.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = beta_fish_splash_spawner.inc.c; sourceTree = ""; };
+ 5918D506271C223E0085DDED /* treasure_chest.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = treasure_chest.inc.c; sourceTree = ""; };
+ 5918D507271C223E0085DDED /* dorrie.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = dorrie.inc.c; sourceTree = ""; };
+ 5918D508271C223E0085DDED /* whomp.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = whomp.inc.c; sourceTree = ""; };
+ 5918D509271C223E0085DDED /* water_bomb.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = water_bomb.inc.c; sourceTree = ""; };
+ 5918D50A271C223E0085DDED /* sound_sand.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sound_sand.inc.c; sourceTree = ""; };
+ 5918D50B271C223E0085DDED /* purple_switch.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = purple_switch.inc.c; sourceTree = ""; };
+ 5918D50C271C223E0085DDED /* mad_piano.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mad_piano.inc.c; sourceTree = ""; };
+ 5918D50D271C223E0085DDED /* grand_star.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = grand_star.inc.c; sourceTree = ""; };
+ 5918D50E271C223E0085DDED /* seesaw_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = seesaw_platform.inc.c; sourceTree = ""; };
+ 5918D50F271C223E0085DDED /* spawn_star_exit.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spawn_star_exit.inc.c; sourceTree = ""; };
+ 5918D510271C223E0085DDED /* boo_cage.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = boo_cage.inc.c; sourceTree = ""; };
+ 5918D511271C223E0085DDED /* spawn_star.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spawn_star.inc.c; sourceTree = ""; };
+ 5918D512271C223E0085DDED /* breakable_box.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = breakable_box.inc.c; sourceTree = ""; };
+ 5918D513271C223E0085DDED /* unused_poundable_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unused_poundable_platform.inc.c; sourceTree = ""; };
+ 5918D514271C223E0085DDED /* static_checkered_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = static_checkered_platform.inc.c; sourceTree = ""; };
+ 5918D515271C223E0085DDED /* red_coin.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = red_coin.inc.c; sourceTree = ""; };
+ 5918D516271C223E0085DDED /* koopa_shell_underwater.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = koopa_shell_underwater.inc.c; sourceTree = ""; };
+ 5918D517271C223E0085DDED /* strong_wind_particle.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = strong_wind_particle.inc.c; sourceTree = ""; };
+ 5918D518271C223E0085DDED /* flame.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = flame.inc.c; sourceTree = ""; };
+ 5918D519271C223E0085DDED /* heave_ho.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = heave_ho.inc.c; sourceTree = ""; };
+ 5918D51A271C223E0085DDED /* ttc_treadmill.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ttc_treadmill.inc.c; sourceTree = ""; };
+ 5918D51B271C223E0085DDED /* beta_boo_key.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = beta_boo_key.inc.c; sourceTree = ""; };
+ 5918D51C271C223E0085DDED /* lll_volcano_flames.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lll_volcano_flames.inc.c; sourceTree = ""; };
+ 5918D51D271C223E0085DDED /* haunted_chair.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = haunted_chair.inc.c; sourceTree = ""; };
+ 5918D51E271C223E0085DDED /* wiggler.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = wiggler.inc.c; sourceTree = ""; };
+ 5918D51F271C223E0085DDED /* cruiser.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cruiser.inc.c; sourceTree = ""; };
+ 5918D520271C223E0085DDED /* break_particles.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = break_particles.inc.c; sourceTree = ""; };
+ 5918D521271C223E0085DDED /* pole.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pole.inc.c; sourceTree = ""; };
+ 5918D522271C223E0085DDED /* ttc_rotating_solid.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ttc_rotating_solid.inc.c; sourceTree = ""; };
+ 5918D523271C223E0085DDED /* bobomb.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bobomb.inc.c; sourceTree = ""; };
+ 5918D524271C223E0085DDED /* castle_flag.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = castle_flag.inc.c; sourceTree = ""; };
+ 5918D525271C223E0085DDED /* hidden_star.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hidden_star.inc.c; sourceTree = ""; };
+ 5918D526271C223E0085DDED /* sparkle_spawn.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sparkle_spawn.inc.c; sourceTree = ""; };
+ 5918D527271C223E0085DDED /* bbh_tilting_trap.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bbh_tilting_trap.inc.c; sourceTree = ""; };
+ 5918D528271C223E0085DDED /* castle_cannon_grate.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = castle_cannon_grate.inc.c; sourceTree = ""; };
+ 5918D529271C223E0085DDED /* pole_base.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pole_base.inc.c; sourceTree = ""; };
+ 5918D52A271C223E0085DDED /* ferris_wheel.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ferris_wheel.inc.c; sourceTree = ""; };
+ 5918D52B271C223E0085DDED /* floating_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = floating_platform.inc.c; sourceTree = ""; };
+ 5918D52C271C223E0085DDED /* manta_ray.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = manta_ray.inc.c; sourceTree = ""; };
+ 5918D52D271C223E0085DDED /* cloud.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = cloud.inc.c; sourceTree = ""; };
+ 5918D52E271C223E0085DDED /* ttc_pit_block.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ttc_pit_block.inc.c; sourceTree = ""; };
+ 5918D52F271C223E0085DDED /* bowser_bomb.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bowser_bomb.inc.c; sourceTree = ""; };
+ 5918D530271C223E0085DDED /* sound_waterfall.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sound_waterfall.inc.c; sourceTree = ""; };
+ 5918D531271C223E0085DDED /* bowser_key_cutscene.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bowser_key_cutscene.inc.c; sourceTree = ""; };
+ 5918D532271C223E0085DDED /* unagi.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unagi.inc.c; sourceTree = ""; };
+ 5918D533271C223E0085DDED /* bubba.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bubba.inc.c; sourceTree = ""; };
+ 5918D534271C223E0085DDED /* exclamation_box.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = exclamation_box.inc.c; sourceTree = ""; };
+ 5918D535271C223E0085DDED /* reds_star_marker.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = reds_star_marker.inc.c; sourceTree = ""; };
+ 5918D536271C223E0085DDED /* mr_blizzard.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = mr_blizzard.inc.c; sourceTree = ""; };
+ 5918D537271C223E0085DDED /* coin.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = coin.inc.c; sourceTree = ""; };
+ 5918D538271C223E0085DDED /* tower_door.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tower_door.inc.c; sourceTree = ""; };
+ 5918D539271C223E0085DDED /* bomp.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bomp.inc.c; sourceTree = ""; };
+ 5918D53A271C223E0085DDED /* ttc_cog.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ttc_cog.inc.c; sourceTree = ""; };
+ 5918D53B271C223E0085DDED /* hoot.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = hoot.inc.c; sourceTree = ""; };
+ 5918D53C271C223E0085DDED /* arrow_lift.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = arrow_lift.inc.c; sourceTree = ""; };
+ 5918D53D271C223E0085DDED /* pokey.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pokey.inc.c; sourceTree = ""; };
+ 5918D53E271C223E0085DDED /* ddd_pole.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ddd_pole.inc.c; sourceTree = ""; };
+ 5918D53F271C223E0085DDED /* tree_particles.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tree_particles.inc.c; sourceTree = ""; };
+ 5918D540271C223E0085DDED /* intro_lakitu.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = intro_lakitu.inc.c; sourceTree = ""; };
+ 5918D541271C223E0085DDED /* snow_mound.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = snow_mound.inc.c; sourceTree = ""; };
+ 5918D542271C223E0085DDED /* donut_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = donut_platform.inc.c; sourceTree = ""; };
+ 5918D543271C223E0085DDED /* swing_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = swing_platform.inc.c; sourceTree = ""; };
+ 5918D544271C223E0085DDED /* skeeter.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = skeeter.inc.c; sourceTree = ""; };
+ 5918D545271C223E0085DDED /* white_puff_explode.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = white_puff_explode.inc.c; sourceTree = ""; };
+ 5918D546271C223E0085DDED /* snufit.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = snufit.inc.c; sourceTree = ""; };
+ 5918D547271C223E0085DDED /* lll_octagonal_rotating_mesh.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lll_octagonal_rotating_mesh.inc.c; sourceTree = ""; };
+ 5918D548271C223E0085DDED /* yoshi.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = yoshi.inc.c; sourceTree = ""; };
+ 5918D549271C223E0085DDED /* warp.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = warp.inc.c; sourceTree = ""; };
+ 5918D54A271C223E0085DDED /* falling_rising_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = falling_rising_platform.inc.c; sourceTree = ""; };
+ 5918D54B271C223E0085DDED /* eyerok.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = eyerok.inc.c; sourceTree = ""; };
+ 5918D54C271C223E0085DDED /* tweester.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = tweester.inc.c; sourceTree = ""; };
+ 5918D54D271C223E0085DDED /* jumping_box.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = jumping_box.inc.c; sourceTree = ""; };
+ 5918D54E271C223E0085DDED /* flame_mario.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = flame_mario.inc.c; sourceTree = ""; };
+ 5918D54F271C223E0085DDED /* piranha_bubbles.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = piranha_bubbles.inc.c; sourceTree = ""; };
+ 5918D550271C223E0085DDED /* water_mist_particle.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = water_mist_particle.inc.c; sourceTree = ""; };
+ 5918D551271C223E0085DDED /* klepto.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = klepto.inc.c; sourceTree = ""; };
+ 5918D552271C223E0085DDED /* fire_spitter.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fire_spitter.inc.c; sourceTree = ""; };
+ 5918D553271C223E0085DDED /* bowser_key.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bowser_key.inc.c; sourceTree = ""; };
+ 5918D554271C223E0085DDED /* fish.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fish.inc.c; sourceTree = ""; };
+ 5918D555271C223E0085DDED /* horizontal_grindel.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = horizontal_grindel.inc.c; sourceTree = ""; };
+ 5918D556271C223E0085DDED /* seaweed.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = seaweed.inc.c; sourceTree = ""; };
+ 5918D557271C223E0085DDED /* lll_rotating_hex_flame.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lll_rotating_hex_flame.inc.c; sourceTree = ""; };
+ 5918D558271C223E0085DDED /* ttc_2d_rotator.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ttc_2d_rotator.inc.c; sourceTree = ""; };
+ 5918D559271C223E0085DDED /* lll_sinking_rock_block.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = lll_sinking_rock_block.inc.c; sourceTree = ""; };
+ 5918D55A271C223E0085DDED /* sl_walking_penguin.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sl_walking_penguin.inc.c; sourceTree = ""; };
+ 5918D55B271C223E0085DDED /* unused_particle_spawn.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = unused_particle_spawn.inc.c; sourceTree = ""; };
+ 5918D55C271C223E0085DDED /* elevator.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = elevator.inc.c; sourceTree = ""; };
+ 5918D55D271C223E0085DDED /* ddd_sub.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ddd_sub.inc.c; sourceTree = ""; };
+ 5918D55E271C223E0085DDED /* grill_door.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = grill_door.inc.c; sourceTree = ""; };
+ 5918D55F271C223E0085DDED /* rotating_platform.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = rotating_platform.inc.c; sourceTree = ""; };
+ 5918D560271C223E0085DDED /* bub.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bub.inc.c; sourceTree = ""; };
+ 5918D561271C223E0085DDED /* switch_hidden_objects.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = switch_hidden_objects.inc.c; sourceTree = ""; };
+ 5918D562271C223E0085DDED /* whirlpool.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = whirlpool.inc.c; sourceTree = ""; };
+ 5918D563271C223E0085DDED /* falling_pillar.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = falling_pillar.inc.c; sourceTree = ""; };
+ 5918D564271C223E0085DDED /* monty_mole.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = monty_mole.inc.c; sourceTree = ""; };
+ 5918D565271C223E0085DDED /* fire_piranha_plant.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fire_piranha_plant.inc.c; sourceTree = ""; };
+ 5918D566271C223E0085DDED /* bowling_ball.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = bowling_ball.inc.c; sourceTree = ""; };
+ 5918D567271C223E0085DDED /* sound_birds.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sound_birds.inc.c; sourceTree = ""; };
+ 5918D568271C223E0085DDED /* clam.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = clam.inc.c; sourceTree = ""; };
+ 5918D569271C223E0085DDED /* spindrift.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spindrift.inc.c; sourceTree = ""; };
+ 5918D56A271C223E0085DDED /* piranha_plant.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = piranha_plant.inc.c; sourceTree = ""; };
+ 5918D56B271C223E0085DDED /* ddd_warp.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ddd_warp.inc.c; sourceTree = ""; };
+ 5918D56C271C223E0085DDED /* beta_holdable_object.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = beta_holdable_object.inc.c; sourceTree = ""; };
+ 5918D56D271C223E0085DDED /* wdw_water_level.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = wdw_water_level.inc.c; sourceTree = ""; };
+ 5918D56E271C223E0085DDED /* ttc_moving_bar.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = ttc_moving_bar.inc.c; sourceTree = ""; };
+ 5918D56F271C223E0085DDED /* triplet_butterfly.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = triplet_butterfly.inc.c; sourceTree = ""; };
+ 5918D570271C223E0085DDED /* door.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = door.inc.c; sourceTree = ""; };
+ 5918D571271C223E0085DDED /* sound_spawner.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = sound_spawner.inc.c; sourceTree = ""; };
+ 5918D572271C223E0085DDED /* celebration_star.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = celebration_star.inc.c; sourceTree = ""; };
+ 5918D573271C223E0085DDED /* fishing_boo.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = fishing_boo.inc.c; sourceTree = ""; };
+ 5918D574271C223E0085DDED /* pyramid_top.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = pyramid_top.inc.c; sourceTree = ""; };
+ 5918D575271C223E0085DDED /* corkbox.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = corkbox.inc.c; sourceTree = ""; };
+ 5918D576271C223E0085DDED /* orange_number.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = orange_number.inc.c; sourceTree = ""; };
+ 5918D577271C223E0085DDED /* spiny.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = spiny.inc.c; sourceTree = ""; };
+ 5918D578271C223E0085DDED /* water_wave.inc.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = water_wave.inc.c; sourceTree = "