shithub: cstory

Download patch

ref: 4ab849f4ef8c581ac681311f0fa1a562ba600f78
parent: fd83c08c9c5d6ba78132853fa4190c930c8765cf
parent: 6a9f2cc1ff69d00699dd9f4db4ce1133774d39a0
author: Gabriel Ravier <gabravier@gmail.com>
date: Fri Jun 14 16:33:23 EDT 2019

Merge branch 'master' into feature/improveNonNpcCharNpcFiles

--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -262,8 +262,26 @@
 	list(APPEND RESOURCES "FONT/cour.ttf")
 endif()
 
-# Magic to convert resources to header files
-add_subdirectory("bin2h")
+# Build bin2h externally, so it isn't cross-compiled when CSE2 is (Emscripten)
+include(ExternalProject)
+
+ExternalProject_Add(bin2h
+                    SOURCE_DIR "${CMAKE_SOURCE_DIR}/bin2h"
+                    DOWNLOAD_COMMAND ""
+                    UPDATE_COMMAND ""
+                    CMAKE_ARGS
+                       -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+                       -DCMAKE_BUILD_TYPE=Release
+					   -DCMAKE_CONFIGURATION_TYPES=Release
+)
+
+ExternalProject_Get_Property(bin2h INSTALL_DIR)
+
+add_executable(bin2h_tool IMPORTED)
+add_dependencies(bin2h_tool bin2h)
+set_target_properties(bin2h_tool PROPERTIES IMPORTED_LOCATION "${INSTALL_DIR}/bin/bin2h")
+
+# Convert resources to header files
 foreach(FILENAME IN LISTS RESOURCES)
 	set(IN_DIR "${CMAKE_CURRENT_SOURCE_DIR}/res")
 	set(OUT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/Resource")
@@ -271,8 +289,8 @@
 	add_custom_command(
 		OUTPUT "${OUT_DIR}/${FILENAME}.h"
 		COMMAND ${CMAKE_COMMAND} -E make_directory "${OUT_DIR}/${DIRECTORY}"
-		COMMAND bin2h "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h"
-		DEPENDS bin2h "${IN_DIR}/${FILENAME}"
+		COMMAND bin2h_tool "${IN_DIR}/${FILENAME}" "${OUT_DIR}/${FILENAME}.h"
+		DEPENDS bin2h_tool "${IN_DIR}/${FILENAME}"
 		)
 	target_sources(CSE2 PRIVATE "${OUT_DIR}/${FILENAME}.h")
 endforeach()
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,6 @@
+NATIVECC = cc
+NATIVECXX = c++
+
 ifeq ($(RELEASE), 1)
 	CXXFLAGS = -O3 -flto
 	LDFLAGS = -s
@@ -179,7 +182,7 @@
 	ORG/White.org \
 	ORG/XXXX.org \
 	ORG/Zonbie.org \
-	WAVE/Wave.dat \
+	WAVE/Wave.dat
 
 ifeq ($(JAPANESE), 1)
 	RESOURCES += BITMAP/pixel_jp.bmp
@@ -204,12 +207,12 @@
 endif
 
 all: $(BUILD_DIR)/$(FILENAME)
+	@echo Finished
 
 $(BUILD_DIR)/$(FILENAME): $(OBJECTS)
 	@mkdir -p $(@D)
-	@echo Linking
+	@echo Linking $@
 	@$(CXX) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(LIBS)
-	@echo Finished compiling: $@
 
 obj/$(BUILD_DIR)/$(FILENAME)/%.o: src/%.cpp
 	@mkdir -p $(@D)
@@ -229,7 +232,7 @@
 obj/bin2h: bin2h/bin2h.c
 	@mkdir -p $(@D)
 	@echo Compiling $^
-	@$(CC) -O3 -s -std=c90 -Wall -Wextra -pedantic $^ -o $@
+	@$(NATIVECC) -O3 -s -std=c90 -Wall -Wextra -pedantic $^ -o $@
 
 include $(wildcard $(DEPENDENCIES))
 
--- a/bin2h/CMakeLists.txt
+++ b/bin2h/CMakeLists.txt
@@ -29,3 +29,5 @@
 		endif()
 	endif()
 endif()
+
+install(TARGETS bin2h RUNTIME)
--- a/src/Sound.cpp
+++ b/src/Sound.cpp
@@ -169,7 +169,7 @@
 		const float sample2 = ((looping || (((size_t)samplePosition) + 1) < size) ? data[(((size_t)samplePosition) + 1) % size] : 128.0f);
 
 		//Interpolate sample
-		const float subPos = (float)std::fmod(samplePosition, 1.0);
+		const float subPos = (float)fmod(samplePosition, 1.0);
 		const float sampleA = sample1 + (sample2 - sample1) * subPos;
 
 		//Convert sample to float32
@@ -186,7 +186,7 @@
 		{
 			if (looping)
 			{
-				samplePosition = std::fmod(samplePosition, size);
+				samplePosition = fmod(samplePosition, size);
 				looped = true;
 			}
 			else