diff --git a/Makefile b/Makefile index ac80cec..bc87272 100644 --- a/Makefile +++ b/Makefile @@ -1,62 +1,45 @@ -############################################################################### -# # -# DIRECTORIES # -# # -############################################################################### - -# Project root directory, so everything will be relative to it: -DIR_ROOT:= $(dir $(abspath $(MAKEFILE_LIST))) - -# Root directory for the source code: +# Directorios +DIR_ROOT := $(dir $(abspath $(MAKEFILE_LIST))) DIR_SOURCES:= $(addsuffix /, $(DIR_ROOT)source) +DIR_BIN := $(addsuffix /, $(DIR_ROOT)) +DIR_BUILD := $(addsuffix /, $(DIR_ROOT)build) -# Executables will be here. -DIR_BIN:= $(addsuffix /, $(DIR_ROOT)) +# Variables +TARGET_NAME := coffee_crisis_arcade_edition +TARGET_FILE := $(DIR_BIN)$(TARGET_NAME) +APP_NAME := Coffee Crisis Arcade Edition +RELEASE_FOLDER:= ccae_release +RELEASE_FILE := $(RELEASE_FOLDER)/$(TARGET_NAME) +VERSION := v0.01 -# Directories for build artifacts (.o and .d files): -DIR_BUILD:= $(addsuffix /, $(DIR_ROOT)build) +# Nombres para los ficheros de lanzamiento +WINDOWS_RELEASE := $(TARGET_FILE)-$(VERSION)-win32-x64.zip +MACOS_INTEL_RELEASE := $(TARGET_FILE)-$(VERSION)-macos-intel.dmg +MACOS_APPLE_SILICON_RELEASE:= $(TARGET_FILE)-$(VERSION)-macos-apple-silicon.dmg +LINUX_RELEASE := $(TARGET_FILE)-$(VERSION)-linux.tar.gz +# Includes INCLUDES:= -I$(DIR_SOURCES) -############################################################################### -# # -# FLAGS # -# # -############################################################################### +# Variables según el sistema operativo +ifeq ($(OS),Windows_NT) + SOURCES := source/*.cpp source/common/*.cpp + CXXFLAGS:= -std=c++11 -Wall -Os -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows + LDFLAGS := -lmingw32 -lws2_32 -lSDL2main -lSDL2 + RM:= rmdir /Q /S + MKD:= +else + SOURCES := $(shell find $(DIR_SOURCES) -name '*.cpp') + CXXFLAGS:= -std=c++11 -Wall -Os -ffunction-sections -fdata-sections + LDFLAGS := -lSDL2 + RM:= rm -rdf + MKD:= mkdir -p +endif -# Compiler flags (for the C++ compiler): -CXXFLAGS:= -std=c++11 -Wall -Os -ffunction-sections -fdata-sections - -# Linker flags (SFML libraries): -LDFLAGS:= -lSDL2 - -############################################################################### -# # -# FILES # -# # -############################################################################### - -SOURCES := $(shell find $(DIR_SOURCES) -name '*.cpp') OBJECTS := $(subst $(DIR_SOURCES), $(DIR_BUILD), $(SOURCES)) OBJECTS := $(OBJECTS:.cpp=.o) DEPENDENCIES:= $(OBJECTS:.o=.d) -############################################################################### -# # -# TARGETS # -# # -############################################################################### - -TARGET_NAME:= coffee_crisis_arcade_edition -TARGET_FILE:= $(DIR_BIN)$(TARGET_NAME) - -############################################################################### -# # -# OTHER COMMANDS # -# # -############################################################################### - -RM:= rm -rf ############################################################################### # # @@ -123,3 +106,136 @@ print-variables: @echo TARGET_FILE: $(TARGET_FILE) @echo RM: $(RM) + +.PHONY: peiv + +peiv: + if not exist peiv mkdir $(subst /,\,peiv) + if exist peiv rmdir /Q /S peiv + +windows: + @echo off + $(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE).exe" + strip -s -R .comment -R .gnu.version "$(TARGET_FILE).exe" --strip-unneeded + + +windows_debug: + @echo off + $(CXX) $(SOURCES) -D DEBUG $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)_debug.exe" + strip -s -R .comment -R .gnu.version "$(TARGET_FILE)_debug.exe" --strip-unneeded + + +windows_release: + @echo off + +# Crea carpeta temporal 'RELEASE_FOLDER' + powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force} + powershell if (-not (Test-Path "$(RELEASE_FOLDER)")) {New-Item "$(RELEASE_FOLDER)" -ItemType Directory} + +# Copia la carpeta 'data' + powershell Copy-Item -Path "data" -Destination "$(RELEASE_FOLDER)" -recurse -Force + +# Copia los ficheros que estan en la raíz del proyecto + powershell Copy-Item "LICENSE" -Destination "$(RELEASE_FOLDER)" + powershell Copy-Item "README.md" -Destination "$(RELEASE_FOLDER)" + powershell Copy-Item "release\*.dll" -Destination "$(RELEASE_FOLDER)" + +# Compila + $(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FILE).exe" + strip -s -R .comment -R .gnu.version "$(RELEASE_FOLDER)/$(TARGET_FILE).exe" --strip-unneeded + +# Crea el fichero .zip + powershell if (Test-Path $(WINDOWS_RELEASE)) {Remove-Item $(WINDOWS_RELEASE)} + powershell Compress-Archive -Path "$(RELEASE_FOLDER)"/* -DestinationPath $(WINDOWS_RELEASE) + +# Elimina la carpeta temporal 'RELEASE_FOLDER' + powershell if (Test-Path "$(RELEASE_FOLDER)") {Remove-Item "$(RELEASE_FOLDER)" -Recurse -Force} + + +macos: + $(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)" + + +macos_debug: + $(CXX) $(SOURCES) -D DEBUG $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)_debug" + + +macos_release: +# Elimina datos de compilaciones anteriores + rm -rdf "$(RELEASE_FOLDER)" + rm -rdf Frameworks + rm -f tmp.dmg + rm -f "$(MACOS_INTEL_RELEASE)" + rm -f "$(MACOS_APPLE_SILICON_RELEASE)" + +# Crea la carpeta temporal para hacer el trabajo y las carpetas obligatorias para crear una app de macos + mkdir -p "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" + mkdir -p "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS" + mkdir -p "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + mkdir -p Frameworks + +# Copia carpetas y ficheros + cp -R data "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + cp -R release/SDL2.framework "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Frameworks" + cp -R release/SDL2.framework Frameworks + cp release/*.icns "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/Resources" + cp release/Info.plist "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents" + cp LICENSE "$(RELEASE_FOLDER)" + cp README.md "$(RELEASE_FOLDER)" + +# Crea enlaces + ln -s /Applications "$(RELEASE_FOLDER)"/Applications + +# Compila la versión para procesadores Intel + $(CXX) $(SOURCES) -D MACOS_BUNDLE $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_FILE)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 + +# Empaqueta el .dmg de la versión Intel + hdiutil create tmp.dmg -ov -volname "$(APP_NAME)" -fs HFS+ -srcfolder "$(RELEASE_FOLDER)" + hdiutil convert tmp.dmg -format UDZO -o "$(MACOS_INTEL_RELEASE)" + rm -f tmp.dmg + +# Compila la versión para procesadores Apple Silicon + $(CXX) $(SOURCES) -D MACOS_BUNDLE $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FOLDER)/$(APP_NAME).app/Contents/MacOS/$(TARGET_FILE)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 + +# Empaqueta el .dmg de la versión Apple Silicon + hdiutil create tmp.dmg -ov -volname "$(APP_NAME)" -fs HFS+ -srcfolder "$(RELEASE_FOLDER)" + hdiutil convert tmp.dmg -format UDZO -o "$(MACOS_APPLE_SILICON_RELEASE)" + rm -f tmp.dmg + +# Elimina las carpetas temporales + $(RM) Frameworks + $(RM) "$(RELEASE_FOLDER)" + + +linux: + $(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)" + strip -s -R .comment -R .gnu.version "$(TARGET_FILE)" --strip-unneeded + + +linux_debug: + $(CXX) $(SOURCES) -D DEBUG $(CXXFLAGS) $(LDFLAGS) -o "$(TARGET_FILE)_debug" + strip -s -R .comment -R .gnu.version "$(TARGET_FILE)_debug" --strip-unneeded + + +linux_release: +# Elimina carpetas previas + $(RM) "$(RELEASE_FOLDER)" + +# Crea la carpeta temporal para realizar el lanzamiento + mkdir -p "$(RELEASE_FOLDER)" + +# Copia ficheros + cp -R data "$(RELEASE_FOLDER)" + cp LICENSE "$(RELEASE_FOLDER)" + cp README.md "$(RELEASE_FOLDER)" + +# Complia + $(CXX) $(SOURCES) $(CXXFLAGS) $(LDFLAGS) -o "$(RELEASE_FILE)" + strip -s -R .comment -R .gnu.version "$(RELEASE_FILE)" --strip-unneeded + +# Empaqueta ficheros + $(RM) "$(LINUX_RELEASE)" + cd "$(RELEASE_FOLDER)" && tar -czvf "../$(LINUX_RELEASE)" * + +# Elimina la carpeta temporal + $(RM) "$(RELEASE_FOLDER)" \ No newline at end of file diff --git a/Makefile.old b/Makefile.old deleted file mode 100644 index 940265e..0000000 --- a/Makefile.old +++ /dev/null @@ -1,132 +0,0 @@ -executable = coffee_crisis_arcade_edition -source = source/*.cpp source/common/*.cpp -appName = Coffee Crisis Arcade Edition -releaseFolder = ccae_release -version = v0.01 - -# Release names -windowsRelease = $(executable)-$(version)-win32-x64.zip -macosIntelRelease = $(executable)-$(version)-macos-intel.dmg -macosAppleSiliconRelease = $(executable)-$(version)-macos-apple-silicon.dmg -linuxRelease = $(executable)-$(version)-linux.tar.gz - -windows: - @echo off - g++ $(source) -std=c++11 -Wall -Os -lmingw32 -lws2_32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(executable).exe" - strip -s -R .comment -R .gnu.version "$(executable).exe" --strip-unneeded - -windows_debug: - @echo off - g++ $(source) -D DEBUG -std=c++11 -Wall -Os -lmingw32 -lws2_32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(executable)_debug.exe" - strip -s -R .comment -R .gnu.version "$(executable)_debug.exe" --strip-unneeded - -windows_release: - @echo off - -# Create release folder - powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force} - powershell if (-not (Test-Path "$(releaseFolder)")) {New-Item "$(releaseFolder)" -ItemType Directory} - -# Prepare data folder - powershell Copy-Item -Path "data" -Destination "$(releaseFolder)" -recurse -Force - -# Copy root files - powershell Copy-Item "LICENSE" -Destination "$(releaseFolder)" - powershell Copy-Item "README.md" -Destination "$(releaseFolder)" - powershell Copy-Item "release\*.dll" -Destination "$(releaseFolder)" - -# Build - g++ $(source) -std=c++11 -Wall -Os -lmingw32 -lws2_32 -lSDL2main -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -static-libstdc++ -Wl,-subsystem,windows -o "$(releaseFolder)/$(executable).exe" - strip -s -R .comment -R .gnu.version "$(releaseFolder)/$(executable).exe" --strip-unneeded - -# Create ZIP - powershell if (Test-Path $(windowsRelease)) {Remove-Item $(windowsRelease)} - powershell Compress-Archive -Path "$(releaseFolder)"/* -DestinationPath $(windowsRelease) - -# Remove folder - powershell if (Test-Path "$(releaseFolder)") {Remove-Item "$(releaseFolder)" -Recurse -Force} - -macos: - clang++ $(source) -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -o "$(executable)" - -macos_debug: - clang++ $(source) -D DEBUG -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -o "$(executable)_debug" - -macos_release: -# Remove data and possible data from previous builds - rm -rdf "$(releaseFolder)" - rm -rdf Frameworks - rm -f tmp.dmg - rm -f "$(macosIntelRelease)" - rm -f "$(macosAppleSiliconRelease)" - -# Create folders - mkdir -p "$(releaseFolder)/$(appName).app/Contents/Frameworks" - mkdir -p "$(releaseFolder)/$(appName).app/Contents/MacOS" - mkdir -p "$(releaseFolder)/$(appName).app/Contents/Resources" - mkdir -p Frameworks - -# Copy folders and files - cp -R data "$(releaseFolder)/$(appName).app/Contents/Resources" - cp -R release/SDL2.framework "$(releaseFolder)/$(appName).app/Contents/Frameworks" - cp -R release/SDL2.framework Frameworks - -# Copy files - cp release/*.icns "$(releaseFolder)/$(appName).app/Contents/Resources" - cp release/Info.plist "$(releaseFolder)/$(appName).app/Contents" - cp LICENSE "$(releaseFolder)" - cp README.md "$(releaseFolder)" - -# Create links - ln -s /Applications "$(releaseFolder)"/Applications - -# Build INTEL - clang++ $(source) -D MACOS_BUNDLE -std=c++11 -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target x86_64-apple-macos10.12 - -# Build INTEL DMG - hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)" - hdiutil convert tmp.dmg -format UDZO -o "$(macosIntelRelease)" - rm -f tmp.dmg - -# Build APPLE SILICON - clang++ $(source) -D MACOS_BUNDLE -std=c++11 -Wall -Os -framework SDL2 -F ./Frameworks -ffunction-sections -fdata-sections -o "$(releaseFolder)/$(appName).app/Contents/MacOS/$(executable)" -rpath @executable_path/../Frameworks/ -target arm64-apple-macos11 - -# Build APPLE SILICON DMG - hdiutil create tmp.dmg -ov -volname "$(appName)" -fs HFS+ -srcfolder "$(releaseFolder)" - hdiutil convert tmp.dmg -format UDZO -o "$(macosAppleSiliconRelease)" - rm -f tmp.dmg - -# Remove data - rm -rdf Frameworks - rm -rdf "$(releaseFolder)" - -linux: - g++ $(source) -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o "$(executable)" - strip -s -R .comment -R .gnu.version "$(executable)" --strip-unneeded - -linux_debug: - g++ $(source) -D DEBUG -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o "$(executable)_debug" - strip -s -R .comment -R .gnu.version "$(executable)_debug" --strip-unneeded - -linux_release: -# Remove data - rm -rdf "$(releaseFolder)" - -# Create folders - mkdir -p "$(releaseFolder)" - -# Copy data - cp -R data "$(releaseFolder)" - cp LICENSE "$(releaseFolder)" - cp README.md "$(releaseFolder)" - -# Build - g++ $(source) -std=c++11 -Wall -Os -lSDL2 -ffunction-sections -fdata-sections -Wl,--gc-sections -o "$(releaseFolder)/$(executable)" - strip -s -R .comment -R .gnu.version "$(releaseFolder)/$(executable)" --strip-unneeded - -# Pack files - rm -f "$(linuxRelease)" - cd "$(releaseFolder)" && tar -czvf "../$(linuxRelease)" * - -# Remove data - rm -rdf "$(releaseFolder)" \ No newline at end of file diff --git a/Makefile_no b/Makefile_no deleted file mode 100644 index 0e8468a..0000000 --- a/Makefile_no +++ /dev/null @@ -1,125 +0,0 @@ -############################################################################### -# # -# DIRECTORIES # -# # -############################################################################### - -# Project root directory, so everything will be relative to it: -DIR_ROOT:= $(dir $(abspath $(MAKEFILE_LIST))) - -# Root directory for the source code: -DIR_SOURCES:= $(addsuffix /, $(DIR_ROOT)source) - -# Executables will be here. -DIR_BIN:= $(addsuffix /, $(DIR_ROOT)) - -# Directories for build artifacts (.o and .d files): -DIR_BUILD:= $(addsuffix /, $(DIR_ROOT)build) - -INCLUDES:= -I$(DIR_SOURCES) - -############################################################################### -# # -# FLAGS # -# # -############################################################################### - -# Compiler flags (for the C++ compiler): -CXXFLAGS:= -std=c++11 -Wall -Os -ffunction-sections -fdata-sections - -# Linker flags (SFML libraries): -LDFLAGS:= -lSDL2 - -############################################################################### -# # -# FILES # -# # -############################################################################### - -SOURCES := $(shell find $(DIR_SOURCES) -name '*.cpp') -OBJECTS := $(subst $(DIR_SOURCES), $(DIR_BUILD), $(SOURCES)) -OBJECTS := $(OBJECTS:.cpp=.o) -DEPENDENCIES:= $(OBJECTS:.o=.d) - -############################################################################### -# # -# TARGETS # -# # -############################################################################### - -TARGET_NAME:= coffee_crisis_arcade_edition -TARGET_FILE:= $(DIR_BIN)$(TARGET_NAME) - -############################################################################### -# # -# OTHER COMMANDS # -# # -############################################################################### - -RM:= rm -rf - -############################################################################### -# # -# RULES # -# # -############################################################################### - -.PHONY: all a1 - -all: a1 - -a1: $(TARGET_FILE) - -$(TARGET_FILE): $(OBJECTS) - mkdir -p $(@D) - $(CXX) $(SOURCES) $(CXXFLAGS) $(INCLUDES) $(LDFLAGS) -o $(TARGET_FILE) - -$(DIR_BUILD)%.o: $(DIR_SOURCES)%.cpp - mkdir -p $(@D) - $(CXX) -c $< $(CXXFLAGS) $(INCLUDES) -o $@ - --include $(DEPENDENCIES) - -############################################################################### -# # -# CLEAN # -# # -############################################################################### - -.PHONY: clean - -clean: - $(RM) $(DIR_BIN) $(DIR_BUILD) - -############################################################################### -# # -# PRINT-VARIABLES # -# # -############################################################################### - -.PHONY: print-variables - -print-variables: - @echo MAKEFILE_LIST: $(MAKEFILE_LIST) - - @echo "DIR_ROOT :" $(DIR_ROOT) - @echo "DIR_SOURCES:" $(DIR_SOURCES) - @echo "DIR_BIN :" $(DIR_BIN) - @echo "DIR_BUILD :" $(DIR_BUILD) - - @echo "DIR_IMGUI :" $(DIR_IMGUI) - @echo "DIR_IMGUI_SFML:" $(DIR_IMGUI_SFML) - @echo "INCLUDES :" $(INCLUDES) - - @echo CXX: $(CXX) - @echo CXXFLAGS: $(CXXFLAGS) - @echo LDFLAGS: $(LDFLAGS) - - @echo SOURCES: $(SOURCES) - @echo OBJECTS: $(OBJECTS) - @echo DEPENDENCIES: $(DEPENDENCIES) - - @echo TARGET_NAME: $(TARGET_NAME) - @echo TARGET_FILE: $(TARGET_FILE) - - @echo RM: $(RM) diff --git a/source/logo.cpp b/source/logo.cpp index 15a166c..8dcf969 100644 --- a/source/logo.cpp +++ b/source/logo.cpp @@ -105,12 +105,11 @@ void Logo::checkInput() screen->incWindowSize(); } - //else if (input->checkInput(input_pause, REPEAT_FALSE) || input->checkInput(input_accept, REPEAT_FALSE) || input->checkInput(input_jump, REPEAT_FALSE)) - //{ - // section->name = SECTION_PROG_TITLE; - // section->subsection = SUBSECTION_TITLE_1; - // endSection(); - //} + else if (input->checkAnyInput()) + { + section->name = SECTION_PROG_TITLE; + section->subsection = SUBSECTION_TITLE_1; + } } // Gestiona el logo de JAILGAME