From 91df7c3f639245affce0d49b52a24258abcac3e9 Mon Sep 17 00:00:00 2001 From: zv0n Date: Tue, 25 May 2021 16:34:44 +0200 Subject: [PATCH] Mario: use .a library instead of dynamic --- mario/Makefile | 43 +++++++++++++++---------------------------- mario/blocks.cpp | 3 +++ 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/mario/Makefile b/mario/Makefile index f28b5ce..f22df36 100644 --- a/mario/Makefile +++ b/mario/Makefile @@ -1,5 +1,7 @@ PREFIX ?= /usr/local/bin +EDITORFLAGS = -DEDITOR + ifeq ($(OS),Windows_NT) UNAME_S := Windows CXX = cl @@ -16,19 +18,12 @@ LDFLAGS ?= -lSDL2 -lSDL2_image -lSDL2_gfx -lSDL2_ttf -pthread OUTPUTFLAG = -o endif -COMMON_OBJECTS = blocks.${OBJEXT} global_vars.${OBJEXT} sprites.${OBJEXT} maploader.${OBJEXT} -MARIO_OBJECTS = main.${OBJEXT} mario_visitor.${OBJEXT} mario.${OBJEXT} ${COMMON_OBJECTS} -EDITOR_OBJECTS = editor.${OBJEXT} edit_box.${OBJEXT} tool_box.${OBJEXT} editor_visitor.${OBJEXT} ${COMMON_OBJECTS} +COMMON_OBJECTS = global_vars.${OBJEXT} sprites.${OBJEXT} maploader.${OBJEXT} libsdlpp.a +MARIO_OBJECTS = main.${OBJEXT} blocks.${OBJEXT} mario_visitor.${OBJEXT} mario.${OBJEXT} ${COMMON_OBJECTS} +EDITOR_OBJECTS = editor.${OBJEXT} editor_blocks.${OBJEXT} edit_box.${OBJEXT} tool_box.${OBJEXT} editor_visitor.${OBJEXT} ${COMMON_OBJECTS} -ifeq ($(UNAME_S),Linux) -MARIO_OBJECTS += libsdlpp.so -endif -ifeq ($(UNAME_S),Darwin) -MARIO_OBJECTS += libsdlpp.dylib -endif ifeq ($(UNAME_S),Windows) MARIO_OBJECTS += ../sdlpp/SDL2/SDL2_framerate.c ../sdlpp/SDL2/SDL2_gfxPrimitives.c ../sdlpp/SDL2/SDL2_imageFilter.c ../sdlpp/SDL2/SDL2_rotozoom.c -SDLLIB = libsdlpp.dll endif .PHONY: default @@ -36,21 +31,23 @@ default: mario ifeq ($(UNAME_S),Windows) mario: ${MARIO_OBJECTS} ${SDLLIB} - $(CXX) $(CXXFLAGS) -Fe"$@" ${MARIO_OBJECTS} /link ..\sdlpp\SDL2.lib ..\sdlpp\SDL2_ttf.lib ..\sdlpp\SDL2_image.lib libsdlpp.lib + $(CXX) $(CXXFLAGS) -Fe"$@" ${MARIO_OBJECTS} /link ..\sdlpp\SDL2.lib ..\sdlpp\SDL2_ttf.lib ..\sdlpp\SDL2_image.lib editor: ${EDITOR_OBJECTS} ${SDLLIB} - $(CXX) $(CXXFLAGS) -Fe"$@" ${EDITOR_OBJECTS} /link ..\sdlpp\SDL2.lib ..\sdlpp\SDL2_ttf.lib ..\sdlpp\SDL2_image.lib libsdlpp.lib + $(CXX) $(CXXFLAGS) ${EDITORFLAGS} -Fe"$@" ${EDITOR_OBJECTS} /link ..\sdlpp\SDL2.lib ..\sdlpp\SDL2_ttf.lib ..\sdlpp\SDL2_image.lib else mario: ${MARIO_OBJECTS} $(CXX) $(CXXFLAGS) -o $@ $^ ${LDFLAGS} -L $(shell pwd) -lsdlpp editor: ${EDITOR_OBJECTS} - $(CXX) $(CXXFLAGS) -o $@ $^ ${LDFLAGS} -L $(shell pwd) -lsdlpp + $(CXX) $(CXXFLAGS) ${EDITORFLAGS} -o $@ $^ ${LDFLAGS} -L $(shell pwd) -lsdlpp endif main.${OBJEXT}: main.cpp ../sdlpp/sdlpp.hpp sprites.hpp $(CXX) $(CXXFLAGS) -c ${OUTPUTFLAG}$@ $< blocks.${OBJEXT}: blocks.cpp ../sdlpp/sdlpp.hpp blocks.hpp sprites.hpp $(CXX) $(CXXFLAGS) -c ${OUTPUTFLAG}$@ $< +editor_blocks.${OBJEXT}: blocks.cpp ../sdlpp/sdlpp.hpp blocks.hpp sprites.hpp + $(CXX) $(CXXFLAGS) ${EDITORFLAGS} -c ${OUTPUTFLAG}$@ $< global_vars.${OBJEXT}: global_vars.cpp ../sdlpp/sdlpp.hpp global_vars.hpp $(CXX) $(CXXFLAGS) -c ${OUTPUTFLAG}$@ $< sprites.${OBJEXT}: sprites.cpp ../sdlpp/sdlpp.hpp sprites.hpp @@ -69,23 +66,13 @@ editor_visitor.${OBJEXT}: editor_visitor.cpp ../sdlpp/sdlpp.hpp sprites.hpp edit $(CXX) $(CXXFLAGS) -c ${OUTPUTFLAG}$@ $< mario.${OBJEXT}: mario.cpp ../sdlpp/sdlpp.hpp mario.hpp global_vars.hpp objectids.hpp sprites.hpp ../sdlpp/sdlpp_rectrenderer.hpp $(CXX) $(CXXFLAGS) -c ${OUTPUTFLAG}$@ $< -libsdlpp.so: ../sdlpp +libsdlpp.a: ../sdlpp $(MAKE) clean -C ../sdlpp - $(MAKE) -C ../sdlpp - cp ../sdlpp/libsdlpp.so . - ln -sf libsdlpp.so libsdlpp.so.1 -libsdlpp.dylib: ../sdlpp - $(MAKE) clean -C ../sdlpp - $(MAKE) -C ../sdlpp - cp ../sdlpp/libsdlpp.dylib . -libsdlpp.dll: ../sdlpp - $(MAKE) clean -C ../sdlpp - $(MAKE) -C ../sdlpp - cp ../sdlpp/libsdlpp.dll . - cp ../sdlpp/libsdlpp.lib . + $(MAKE) libsdlpp.a -C ../sdlpp + cp ../sdlpp/libsdlpp.a . windows_release: ../Release/Tetris - cp mario.exe testfont.ttf libsdlpp.dll block.png ../Release/Tetris + cp mario.exe testfont.ttf block.png ../Release/Tetris rm ../Release/Tetris.zip cd ../Release && zip -r Tetris.zip Tetris @@ -95,4 +82,4 @@ start_edit: LD_LIBRARY_PATH=$$(pwd) ./editor clean: - rm -Rf *.${OBJEXT} mario editor + rm -Rf *.${OBJEXT} mario editor *.a diff --git a/mario/blocks.cpp b/mario/blocks.cpp index 36e9e59..c6abfa3 100644 --- a/mario/blocks.cpp +++ b/mario/blocks.cpp @@ -15,6 +15,7 @@ MarioBlock::MarioBlock( int x, int y, _destructible = destructible; } void MarioBlock::visit( SDLPP::Visitor &visitor ) { +#ifdef EDITOR if ( !_tool && _terrain && visitor.getVisitorType() == VisitorType::Terrain ) { destroy(); @@ -23,9 +24,11 @@ void MarioBlock::visit( SDLPP::Visitor &visitor ) { visitor.getVisitorType() == VisitorType::Modifier ) { destroy(); } +#else if(visitor.getFromId() == MARIO_TOP_DETECT && _destructible && dynamic_cast(visitor).canDestroy()) { destroy(); } +#endif visitor.visit( *this ); } void MarioBlock::setTool( bool tool ) {