forked from Mirrors/openclonk
Merge various build system fixes and cleanups
commit
a92c22a7b3
|
@ -82,15 +82,9 @@ include(RequireCXXSourceCompiles)
|
||||||
CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" USE_GCC_STD_0X)
|
CHECK_CXX_COMPILER_FLAG("-std=gnu++0x" USE_GCC_STD_0X)
|
||||||
if(USE_GCC_STD_0X)
|
if(USE_GCC_STD_0X)
|
||||||
list(APPEND OC_CXX_FLAGS "-std=gnu++0x")
|
list(APPEND OC_CXX_FLAGS "-std=gnu++0x")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++0x")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Convert the OC_CXX_FLAGS list to a CMAKE_CXX_FLAGS string
|
|
||||||
foreach(FLAG ${OC_CXX_FLAGS})
|
|
||||||
set(OC_REQUIRED_FLAGS "${OC_REQUIRED_FLAGS} ${FLAG}")
|
|
||||||
endforeach()
|
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS ${OC_REQUIRED_FLAGS})
|
|
||||||
|
|
||||||
REQUIRE_CXX_SOURCE_COMPILES("#include <memory>\nint main() { std::unique_ptr<int> a; std::shared_ptr<int> b; }" HAVE_C11_SMART_PTRS)
|
REQUIRE_CXX_SOURCE_COMPILES("#include <memory>\nint main() { std::unique_ptr<int> a; std::shared_ptr<int> b; }" HAVE_C11_SMART_PTRS)
|
||||||
CHECK_CXX_SOURCE_COMPILES("void f(struct D&&); int main() { return 0; }" HAVE_RVALUE_REF)
|
CHECK_CXX_SOURCE_COMPILES("void f(struct D&&); int main() { return 0; }" HAVE_RVALUE_REF)
|
||||||
CHECK_CXX_SOURCE_COMPILES("int main() { void *d = nullptr; }" HAVE_NULLPTR)
|
CHECK_CXX_SOURCE_COMPILES("int main() { void *d = nullptr; }" HAVE_NULLPTR)
|
||||||
|
@ -1135,7 +1129,7 @@ if(UNIX AND NOT APPLE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
set_property(TARGET openclonk APPEND PROPERTY COMPILE_DEFINITIONS GLEW_STATIC)
|
set_property(TARGET openclonk APPEND PROPERTY COMPILE_DEFINITIONS GLEW_STATIC)
|
||||||
#set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_DEBUG _DEBUG)
|
set_property(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS $<$<CONFIG:Debug>:_DEBUG>)
|
||||||
|
|
||||||
# This expands some variables in Info.plist as a side-effect. XCode might then
|
# This expands some variables in Info.plist as a side-effect. XCode might then
|
||||||
# expand a second time, using the same syntax. Try not to get confused by this!
|
# expand a second time, using the same syntax. Try not to get confused by this!
|
||||||
|
@ -1164,12 +1158,6 @@ if(MSVC)
|
||||||
set_property(TARGET openclonk APPEND PROPERTY LINK_FLAGS "/MANIFEST:NO")
|
set_property(TARGET openclonk APPEND PROPERTY LINK_FLAGS "/MANIFEST:NO")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Suppress the console window for mape even though only a main() and not
|
|
||||||
# a WinMain() entry point is provided.
|
|
||||||
if(MINGW)
|
|
||||||
set_target_properties(mape PROPERTIES LINK_FLAGS -mwindows)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
############################################################################
|
############################################################################
|
||||||
# Precompiled header support, part 2 (post-target)
|
# Precompiled header support, part 2 (post-target)
|
||||||
############################################################################
|
############################################################################
|
||||||
|
@ -1286,15 +1274,6 @@ endif()
|
||||||
|
|
||||||
CHECK_INCLUDE_FILE_CXX(getopt.h HAVE_GETOPT_H)
|
CHECK_INCLUDE_FILE_CXX(getopt.h HAVE_GETOPT_H)
|
||||||
|
|
||||||
find_package(ICONV)
|
|
||||||
if(ICONV_FOUND)
|
|
||||||
set(HAVE_ICONV true)
|
|
||||||
target_link_libraries(openclonk ${ICONV_LIBRARIES})
|
|
||||||
if(ICONV_IS_CONST)
|
|
||||||
set(ICONV_CONST "const")
|
|
||||||
endif()
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# TinyXML
|
# TinyXML
|
||||||
if(WITH_SYSTEM_TINYXML)
|
if(WITH_SYSTEM_TINYXML)
|
||||||
pkg_search_module(TINYXML REQUIRED tinyxml)
|
pkg_search_module(TINYXML REQUIRED tinyxml)
|
||||||
|
@ -1372,6 +1351,11 @@ if (WIN32)
|
||||||
target_link_libraries(c4script ws2_32 winmm)
|
target_link_libraries(c4script ws2_32 winmm)
|
||||||
if(MAPE_GTK_FOUND)
|
if(MAPE_GTK_FOUND)
|
||||||
target_link_libraries(mape winmm)
|
target_link_libraries(mape winmm)
|
||||||
|
# Suppress the console window for mape even though only a main() and not
|
||||||
|
# a WinMain() entry point is provided.
|
||||||
|
if(MINGW)
|
||||||
|
set_target_properties(mape PROPERTIES LINK_FLAGS -mwindows)
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
# - Try to find Iconv
|
|
||||||
# Once done this will define
|
|
||||||
#
|
|
||||||
# ICONV_FOUND - system has Iconv
|
|
||||||
# ICONV_INCLUDE_DIR - the Iconv include directory
|
|
||||||
# ICONV_LIBRARIES - Link these to use Iconv
|
|
||||||
# ICONV_IS_CONST - the second argument for iconv() is const
|
|
||||||
#
|
|
||||||
# This was mostly borrowed from Strigi. LyX also has a (quite
|
|
||||||
# different) FindICONV: the one in LyX does not check
|
|
||||||
# second_argument_is_const, but seems to have more fleshed-out support
|
|
||||||
# for WIN32. There may need to be some merging done.
|
|
||||||
# Tim Holy, 2008-05-07
|
|
||||||
|
|
||||||
include(CheckCXXSourceCompiles)
|
|
||||||
|
|
||||||
IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
||||||
# Already in cache, be silent
|
|
||||||
SET(ICONV_FIND_QUIETLY TRUE)
|
|
||||||
ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES)
|
|
||||||
|
|
||||||
FIND_PATH(ICONV_INCLUDE_DIR iconv.h
|
|
||||||
/Developer/SDKs/MacOSX10.4u.sdk/usr/include/iconv.h
|
|
||||||
/Developer/SDKs/MacOSX10.5.sdk/usr/include/iconv.h
|
|
||||||
/usr/include
|
|
||||||
)
|
|
||||||
|
|
||||||
FIND_LIBRARY(ICONV_LIBRARIES NAMES iconv libiconv libiconv2 c
|
|
||||||
PATHS
|
|
||||||
/Developer/SDKs/MacOSX10.4u.sdk/usr/lib
|
|
||||||
/Developer/SDKs/MacOSX10.5.sdk/usr/lib
|
|
||||||
/usr/lib
|
|
||||||
)
|
|
||||||
|
|
||||||
include(FindPackageHandleStandardArgs)
|
|
||||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ICONV REQUIRED_VARS ICONV_LIBRARIES ICONV_INCLUDE_DIR)
|
|
||||||
|
|
||||||
IF(ICONV_FOUND)
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES ${ICONV_INCLUDE_DIR})
|
|
||||||
set(CMAKE_REQUIRED_LIBRARIES ${ICONV_LIBRARIES})
|
|
||||||
check_cxx_source_compiles("
|
|
||||||
#include <iconv.h>
|
|
||||||
int main(){
|
|
||||||
iconv_t conv = 0;
|
|
||||||
const char* in = 0;
|
|
||||||
size_t ilen = 0;
|
|
||||||
char* out = 0;
|
|
||||||
size_t olen = 0;
|
|
||||||
iconv(conv, &in, &ilen, &out, &olen);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
" ICONV_IS_CONST )
|
|
||||||
set(CMAKE_REQUIRED_INCLUDES)
|
|
||||||
set(CMAKE_REQUIRED_LIBRARIES)
|
|
||||||
ENDIF(ICONV_FOUND)
|
|
||||||
|
|
||||||
MARK_AS_ADVANCED(
|
|
||||||
ICONV_INCLUDE_DIR
|
|
||||||
ICONV_LIBRARIES
|
|
||||||
ICONV_IS_CONST
|
|
||||||
)
|
|
||||||
|
|
|
@ -10,9 +10,6 @@
|
||||||
/* Define to 1 if you have the <history.h> header file. */
|
/* Define to 1 if you have the <history.h> header file. */
|
||||||
#cmakedefine HAVE_HISTORY_H 1
|
#cmakedefine HAVE_HISTORY_H 1
|
||||||
|
|
||||||
/* Define if you have the iconv() function. */
|
|
||||||
#cmakedefine HAVE_ICONV 1
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||||
#cmakedefine HAVE_INTTYPES_H 1
|
#cmakedefine HAVE_INTTYPES_H 1
|
||||||
|
|
||||||
|
@ -117,9 +114,6 @@
|
||||||
/* Define to 1 if you have the <X11/keysym.h> header file. */
|
/* Define to 1 if you have the <X11/keysym.h> header file. */
|
||||||
#cmakedefine HAVE_X11_KEYSYM_H 1
|
#cmakedefine HAVE_X11_KEYSYM_H 1
|
||||||
|
|
||||||
/* Define as const if the declaration of iconv() needs const. */
|
|
||||||
#define ICONV_CONST @ICONV_CONST@
|
|
||||||
|
|
||||||
/* compile without debug options */
|
/* compile without debug options */
|
||||||
#cmakedefine NDEBUG 1
|
#cmakedefine NDEBUG 1
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,6 @@ IDS_BTN_RELOAD=&Aktualisieren
|
||||||
IDS_BTN_RENAME=Umbenennen
|
IDS_BTN_RENAME=Umbenennen
|
||||||
IDS_BTN_RESET=Zurücksetzen
|
IDS_BTN_RESET=Zurücksetzen
|
||||||
IDS_BTN_RESETCONFIG=Konfiguration zurücksetzen
|
IDS_BTN_RESETCONFIG=Konfiguration zurücksetzen
|
||||||
IDS_BTN_RESETKEYBOARD=Alle zurücksetzen
|
|
||||||
IDS_BTN_RESTART=Neu &Starten
|
IDS_BTN_RESTART=Neu &Starten
|
||||||
IDS_BTN_RETRY=Wiederholen
|
IDS_BTN_RETRY=Wiederholen
|
||||||
IDS_BTN_START=Starten
|
IDS_BTN_START=Starten
|
||||||
|
@ -117,7 +116,6 @@ IDS_CTL_FRONTEND=Menüsystem
|
||||||
IDS_CTL_FULLSCREENMODE=Fenstermodus
|
IDS_CTL_FULLSCREENMODE=Fenstermodus
|
||||||
IDS_CTL_GAME=Spiel
|
IDS_CTL_GAME=Spiel
|
||||||
IDS_CTL_GAMEFUNCTIONS=Spielfunktionen
|
IDS_CTL_GAMEFUNCTIONS=Spielfunktionen
|
||||||
IDS_CTL_GAMEPADFORMENU=Gamepad zur Menüsteuerung verwenden.
|
|
||||||
IDS_CTL_GAMESPEEDUP=Spielgeschwindigkeit erhöhen
|
IDS_CTL_GAMESPEEDUP=Spielgeschwindigkeit erhöhen
|
||||||
IDS_CTL_GAMESPEEDDOWN=Spielgeschwindigkeit verringern
|
IDS_CTL_GAMESPEEDDOWN=Spielgeschwindigkeit verringern
|
||||||
IDS_CTL_GFXENGINE=Grafiktreiber
|
IDS_CTL_GFXENGINE=Grafiktreiber
|
||||||
|
@ -195,7 +193,6 @@ IDS_DESC_ENDTHEROUND=Die Runde beenden.
|
||||||
IDS_DESC_EXPECTING=Teilnehmer werden erwartet.
|
IDS_DESC_EXPECTING=Teilnehmer werden erwartet.
|
||||||
IDS_DESC_FONTSIZE=Schriftgröße auswählen. Bei Wechsel der Bildschirmauflösung wird die Schriftgröße automatisch angepasst.
|
IDS_DESC_FONTSIZE=Schriftgröße auswählen. Bei Wechsel der Bildschirmauflösung wird die Schriftgröße automatisch angepasst.
|
||||||
IDS_DESC_GAMEMUSIC=Steuert Hintergrundmusik im Spiel.
|
IDS_DESC_GAMEMUSIC=Steuert Hintergrundmusik im Spiel.
|
||||||
IDS_DESC_GAMEPADFORMENU=Mit dieser Option kann das Gamepad für die Steuerung des Menüsystems verwendet werden.
|
|
||||||
IDS_DESC_GAMEPAUSED=Spiel ist pausiert
|
IDS_DESC_GAMEPAUSED=Spiel ist pausiert
|
||||||
IDS_DESC_GAMERUNNING=Spiel läuft
|
IDS_DESC_GAMERUNNING=Spiel läuft
|
||||||
IDS_DESC_GAMESOUND=Steuert Geräuscheffekte im Spiel.
|
IDS_DESC_GAMESOUND=Steuert Geräuscheffekte im Spiel.
|
||||||
|
@ -235,13 +232,11 @@ IDS_DLGTIP_CANCEL=Aktion abbrechen.
|
||||||
IDS_DLGTIP_CHANGECTRL=Wähle eine Steuerung aus um sie anzusehen und zu ändern
|
IDS_DLGTIP_CHANGECTRL=Wähle eine Steuerung aus um sie anzusehen und zu ändern
|
||||||
IDS_DLGTIP_CHAT=Hier Chat-Nachrichten eintippen und mit Enter bestätigen
|
IDS_DLGTIP_CHAT=Hier Chat-Nachrichten eintippen und mit Enter bestätigen
|
||||||
IDS_DLGTIP_CHATWIN=Nachrichten
|
IDS_DLGTIP_CHATWIN=Nachrichten
|
||||||
IDS_DLGTIP_CLASSIC=Clonks laufen weiter, bis sie mit 'Stop' angehalten werden.
|
|
||||||
IDS_DLGTIP_CLEAR=Löscht die Auswahl
|
IDS_DLGTIP_CLEAR=Löscht die Auswahl
|
||||||
IDS_DLGTIP_COPY=Kopiert die Auswahl in die Zwischenablage
|
IDS_DLGTIP_COPY=Kopiert die Auswahl in die Zwischenablage
|
||||||
IDS_DLGTIP_CUT=Schneidet die Auswahl aus und kopiert sie in die Zwischenablage
|
IDS_DLGTIP_CUT=Schneidet die Auswahl aus und kopiert sie in die Zwischenablage
|
||||||
IDS_DLGTIP_EXIT=Beendet das Programm.
|
IDS_DLGTIP_EXIT=Beendet das Programm.
|
||||||
IDS_DLGTIP_GAMEGO=Startet das Spiel.
|
IDS_DLGTIP_GAMEGO=Startet das Spiel.
|
||||||
IDS_DLGTIP_JUMPANDRUN=Clonks halten bei losgelassener Taste an.
|
|
||||||
IDS_DLGTIP_NETWORKGAME=Startet ein Netzwerkspiel oder tritt einem laufenden Netzwerkspiel bei.
|
IDS_DLGTIP_NETWORKGAME=Startet ein Netzwerkspiel oder tritt einem laufenden Netzwerkspiel bei.
|
||||||
IDS_DLGTIP_NEWPLAYER=Erzeugt eine neue Spielerdatei.
|
IDS_DLGTIP_NEWPLAYER=Erzeugt eine neue Spielerdatei.
|
||||||
IDS_DLGTIP_OK2=Aktion bestätigen.
|
IDS_DLGTIP_OK2=Aktion bestätigen.
|
||||||
|
@ -272,7 +267,6 @@ IDS_DLG_ABORT=Abbruch
|
||||||
IDS_DLG_ABOUT=&Credits
|
IDS_DLG_ABOUT=&Credits
|
||||||
IDS_DLG_CANCEL=&Abbrechen
|
IDS_DLG_CANCEL=&Abbrechen
|
||||||
IDS_DLG_CHAT=Chat
|
IDS_DLG_CHAT=Chat
|
||||||
IDS_DLG_CLASSIC=Klassisch
|
|
||||||
IDS_DLG_CLEAR=Löschen
|
IDS_DLG_CLEAR=Löschen
|
||||||
IDS_DLG_CLOSE=&Schließen
|
IDS_DLG_CLOSE=&Schließen
|
||||||
IDS_DLG_CONTROLS=Steuerung
|
IDS_DLG_CONTROLS=Steuerung
|
||||||
|
@ -286,10 +280,8 @@ IDS_DLG_EXACT=Exakte Landschaft
|
||||||
IDS_DLG_EXIT=&Beenden
|
IDS_DLG_EXIT=&Beenden
|
||||||
IDS_DLG_GAME=Spiel
|
IDS_DLG_GAME=Spiel
|
||||||
IDS_DLG_GAMEGO=&Starten
|
IDS_DLG_GAMEGO=&Starten
|
||||||
IDS_DLG_GAMEPAD=Gamepad
|
|
||||||
IDS_DLG_GRAPHICS=Grafik
|
IDS_DLG_GRAPHICS=Grafik
|
||||||
IDS_DLG_INVALIDENTRY=Ungültige Angaben
|
IDS_DLG_INVALIDENTRY=Ungültige Angaben
|
||||||
IDS_DLG_JUMPANDRUN=Jump'n'Run
|
|
||||||
IDS_DLG_LEAGUESIGNUP=Liga-Anmeldung
|
IDS_DLG_LEAGUESIGNUP=Liga-Anmeldung
|
||||||
IDS_DLG_LEAGUESIGNUPCONFIRM=Bestätigung der Liga-Anmeldung
|
IDS_DLG_LEAGUESIGNUPCONFIRM=Bestätigung der Liga-Anmeldung
|
||||||
IDS_DLG_LEAGUESIGNUPFAILED=Liga-Anmeldung fehlgeschlagen
|
IDS_DLG_LEAGUESIGNUPFAILED=Liga-Anmeldung fehlgeschlagen
|
||||||
|
@ -297,7 +289,6 @@ IDS_DLG_LEAGUESIGNUPON=Liga-Anmeldung auf %s
|
||||||
IDS_DLG_LOBBY=Lobby
|
IDS_DLG_LOBBY=Lobby
|
||||||
IDS_DLG_LOG=Fehlermeldungen
|
IDS_DLG_LOG=Fehlermeldungen
|
||||||
IDS_DLG_MISSIONACCESS=Missionszugang
|
IDS_DLG_MISSIONACCESS=Missionszugang
|
||||||
IDS_DLG_MOVEMENT=Bewegung
|
|
||||||
IDS_DLG_NETSTART=Netzwerkspiel starten
|
IDS_DLG_NETSTART=Netzwerkspiel starten
|
||||||
IDS_DLG_NETWORK=Netzwerk
|
IDS_DLG_NETWORK=Netzwerk
|
||||||
IDS_DLG_NO=&Nein
|
IDS_DLG_NO=&Nein
|
||||||
|
@ -593,7 +584,6 @@ IDS_MSG_REMOVEPLR=&Entfernen
|
||||||
IDS_MSG_REMOVEPLR_DESC=Nicht mit diesem Spieler beitreten
|
IDS_MSG_REMOVEPLR_DESC=Nicht mit diesem Spieler beitreten
|
||||||
IDS_MSG_REPLAYPLRS=Schau-Spieler
|
IDS_MSG_REPLAYPLRS=Schau-Spieler
|
||||||
IDS_MSG_REPLAYPLRS_DESC=In den Hauptrollen
|
IDS_MSG_REPLAYPLRS_DESC=In den Hauptrollen
|
||||||
IDS_MSG_RESETKEYSETS=Standardbelegung für alle Tastaturblöcke bzw. Gamepads wieder herstellen.
|
|
||||||
IDS_MSG_RESOLUTION_DESC=Bildschirmauflösung im Vollbildmodus.
|
IDS_MSG_RESOLUTION_DESC=Bildschirmauflösung im Vollbildmodus.
|
||||||
IDS_MSG_RESTARTCHANGECFG=Änderungen werden erst übernommen, wenn das Spiel neu gestartet wurde.
|
IDS_MSG_RESTARTCHANGECFG=Änderungen werden erst übernommen, wenn das Spiel neu gestartet wurde.
|
||||||
IDS_MSG_RNDTEAM=Zufallsteam
|
IDS_MSG_RNDTEAM=Zufallsteam
|
||||||
|
|
|
@ -23,7 +23,6 @@ IDS_BTN_RELOAD=Reloa&d
|
||||||
IDS_BTN_RENAME=Rename
|
IDS_BTN_RENAME=Rename
|
||||||
IDS_BTN_RESET=Reset
|
IDS_BTN_RESET=Reset
|
||||||
IDS_BTN_RESETCONFIG=Reset configuration
|
IDS_BTN_RESETCONFIG=Reset configuration
|
||||||
IDS_BTN_RESETKEYBOARD=Reset all
|
|
||||||
IDS_BTN_RESTART=Restart
|
IDS_BTN_RESTART=Restart
|
||||||
IDS_BTN_RETRY=Retry
|
IDS_BTN_RETRY=Retry
|
||||||
IDS_BTN_START=Start
|
IDS_BTN_START=Start
|
||||||
|
@ -118,7 +117,6 @@ IDS_CTL_FRONTEND=Frontend
|
||||||
IDS_CTL_FULLSCREENMODE=Window mode
|
IDS_CTL_FULLSCREENMODE=Window mode
|
||||||
IDS_CTL_GAME=Game
|
IDS_CTL_GAME=Game
|
||||||
IDS_CTL_GAMEFUNCTIONS=Game Functions
|
IDS_CTL_GAMEFUNCTIONS=Game Functions
|
||||||
IDS_CTL_GAMEPADFORMENU=Use gamepad for menu control.
|
|
||||||
IDS_CTL_GAMESPEEDUP=Increase game speed
|
IDS_CTL_GAMESPEEDUP=Increase game speed
|
||||||
IDS_CTL_GAMESPEEDDOWN=Decrease game speed
|
IDS_CTL_GAMESPEEDDOWN=Decrease game speed
|
||||||
IDS_CTL_GFXENGINE=Renderer
|
IDS_CTL_GFXENGINE=Renderer
|
||||||
|
@ -195,7 +193,6 @@ IDS_DESC_ENDTHEROUND=End the round.
|
||||||
IDS_DESC_EXPECTING=Awaiting participants.
|
IDS_DESC_EXPECTING=Awaiting participants.
|
||||||
IDS_DESC_FONTSIZE=Select font size. When you change the screen resolution, the font size will be automatically adjusted.
|
IDS_DESC_FONTSIZE=Select font size. When you change the screen resolution, the font size will be automatically adjusted.
|
||||||
IDS_DESC_GAMEMUSIC=Enable background music in the game.
|
IDS_DESC_GAMEMUSIC=Enable background music in the game.
|
||||||
IDS_DESC_GAMEPADFORMENU=If enabled, you can control the startup menu system with your gamepad.
|
|
||||||
IDS_DESC_GAMEPAUSED=Game is paused
|
IDS_DESC_GAMEPAUSED=Game is paused
|
||||||
IDS_DESC_GAMERUNNING=Game is running
|
IDS_DESC_GAMERUNNING=Game is running
|
||||||
IDS_DESC_GAMESOUND=Enable sound effects in the game.
|
IDS_DESC_GAMESOUND=Enable sound effects in the game.
|
||||||
|
@ -235,13 +232,11 @@ IDS_DLGTIP_CANCEL=Cancel.
|
||||||
IDS_DLGTIP_CHANGECTRL=Choose a control set to view and modify it
|
IDS_DLGTIP_CHANGECTRL=Choose a control set to view and modify it
|
||||||
IDS_DLGTIP_CHAT=Enter chat messages here and send them with enter.
|
IDS_DLGTIP_CHAT=Enter chat messages here and send them with enter.
|
||||||
IDS_DLGTIP_CHATWIN=Messages
|
IDS_DLGTIP_CHATWIN=Messages
|
||||||
IDS_DLGTIP_CLASSIC=Clonks run until they are stopped using the 'stop' key.
|
|
||||||
IDS_DLGTIP_CLEAR=Clears the selection.
|
IDS_DLGTIP_CLEAR=Clears the selection.
|
||||||
IDS_DLGTIP_COPY=Copies the selection to the clipboard.
|
IDS_DLGTIP_COPY=Copies the selection to the clipboard.
|
||||||
IDS_DLGTIP_CUT=Moves the selection to the clipboard.
|
IDS_DLGTIP_CUT=Moves the selection to the clipboard.
|
||||||
IDS_DLGTIP_EXIT=End the program.
|
IDS_DLGTIP_EXIT=End the program.
|
||||||
IDS_DLGTIP_GAMEGO=Starts the game.
|
IDS_DLGTIP_GAMEGO=Starts the game.
|
||||||
IDS_DLGTIP_JUMPANDRUN=Clonks will stop as soon as the movement key is released.
|
|
||||||
IDS_DLGTIP_NETWORKGAME=Start a network game or join an existing one.
|
IDS_DLGTIP_NETWORKGAME=Start a network game or join an existing one.
|
||||||
IDS_DLGTIP_NEWPLAYER=Create a new player file.
|
IDS_DLGTIP_NEWPLAYER=Create a new player file.
|
||||||
IDS_DLGTIP_OK2=Confirm.
|
IDS_DLGTIP_OK2=Confirm.
|
||||||
|
@ -272,7 +267,6 @@ IDS_DLG_ABORT=Abort
|
||||||
IDS_DLG_ABOUT=&Credits
|
IDS_DLG_ABOUT=&Credits
|
||||||
IDS_DLG_CANCEL=Cancel
|
IDS_DLG_CANCEL=Cancel
|
||||||
IDS_DLG_CHAT=Chat
|
IDS_DLG_CHAT=Chat
|
||||||
IDS_DLG_CLASSIC=Classic
|
|
||||||
IDS_DLG_CLEAR=Clear
|
IDS_DLG_CLEAR=Clear
|
||||||
IDS_DLG_CLOSE=&Close
|
IDS_DLG_CLOSE=&Close
|
||||||
IDS_DLG_CONTROLS=Controls
|
IDS_DLG_CONTROLS=Controls
|
||||||
|
@ -286,10 +280,8 @@ IDS_DLG_EXACT=Exact landscape
|
||||||
IDS_DLG_EXIT=E&xit
|
IDS_DLG_EXIT=E&xit
|
||||||
IDS_DLG_GAME=Game
|
IDS_DLG_GAME=Game
|
||||||
IDS_DLG_GAMEGO=&Start
|
IDS_DLG_GAMEGO=&Start
|
||||||
IDS_DLG_GAMEPAD=Gamepad
|
|
||||||
IDS_DLG_GRAPHICS=Graphics
|
IDS_DLG_GRAPHICS=Graphics
|
||||||
IDS_DLG_INVALIDENTRY=Invalid Entry
|
IDS_DLG_INVALIDENTRY=Invalid Entry
|
||||||
IDS_DLG_JUMPANDRUN=Jump'n'Run
|
|
||||||
IDS_DLG_LEAGUESIGNUP=League Login
|
IDS_DLG_LEAGUESIGNUP=League Login
|
||||||
IDS_DLG_LEAGUESIGNUPCONFIRM=Confirm League Login
|
IDS_DLG_LEAGUESIGNUPCONFIRM=Confirm League Login
|
||||||
IDS_DLG_LEAGUESIGNUPFAILED=League Login Failed
|
IDS_DLG_LEAGUESIGNUPFAILED=League Login Failed
|
||||||
|
@ -297,7 +289,6 @@ IDS_DLG_LEAGUESIGNUPON=League Login on %s
|
||||||
IDS_DLG_LOBBY=Lobby
|
IDS_DLG_LOBBY=Lobby
|
||||||
IDS_DLG_LOG=Error Log
|
IDS_DLG_LOG=Error Log
|
||||||
IDS_DLG_MISSIONACCESS=Mission Access
|
IDS_DLG_MISSIONACCESS=Mission Access
|
||||||
IDS_DLG_MOVEMENT=Movement
|
|
||||||
IDS_DLG_NETSTART=Start Network Game
|
IDS_DLG_NETSTART=Start Network Game
|
||||||
IDS_DLG_NETWORK=Network
|
IDS_DLG_NETWORK=Network
|
||||||
IDS_DLG_NO=&No
|
IDS_DLG_NO=&No
|
||||||
|
@ -593,7 +584,6 @@ IDS_MSG_REMOVEPLR=&Remove
|
||||||
IDS_MSG_REMOVEPLR_DESC=Do not join with this player
|
IDS_MSG_REMOVEPLR_DESC=Do not join with this player
|
||||||
IDS_MSG_REPLAYPLRS=Replay players
|
IDS_MSG_REPLAYPLRS=Replay players
|
||||||
IDS_MSG_REPLAYPLRS_DESC=Starring
|
IDS_MSG_REPLAYPLRS_DESC=Starring
|
||||||
IDS_MSG_RESETKEYSETS=Reset all keyboard blocks (or gamepads respectively).
|
|
||||||
IDS_MSG_RESOLUTION_DESC=Select screen resolution in fullscreen mode.
|
IDS_MSG_RESOLUTION_DESC=Select screen resolution in fullscreen mode.
|
||||||
IDS_MSG_RESTARTCHANGECFG=For changes to take effect the program has to be restarted.
|
IDS_MSG_RESTARTCHANGECFG=For changes to take effect the program has to be restarted.
|
||||||
IDS_MSG_RNDTEAM=Random team
|
IDS_MSG_RNDTEAM=Random team
|
||||||
|
|
|
@ -31,15 +31,6 @@
|
||||||
#include <C4Config.h>
|
#include <C4Config.h>
|
||||||
#include <C4Game.h>
|
#include <C4Game.h>
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
#ifdef HAVE_LANGINFO_H
|
|
||||||
#include <langinfo.h>
|
|
||||||
#endif
|
|
||||||
#include <errno.h>
|
|
||||||
iconv_t C4Language::host_to_local = iconv_t(-1);
|
|
||||||
iconv_t C4Language::local_to_host = iconv_t(-1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
C4Language Languages;
|
C4Language Languages;
|
||||||
|
|
||||||
//char strLog[2048 + 1];
|
//char strLog[2048 + 1];
|
||||||
|
@ -157,88 +148,8 @@ void C4Language::Clear()
|
||||||
Infos = pNext;
|
Infos = pNext;
|
||||||
}
|
}
|
||||||
Infos = NULL;
|
Infos = NULL;
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
if (local_to_host != iconv_t(-1))
|
|
||||||
{
|
|
||||||
iconv_close(local_to_host);
|
|
||||||
local_to_host = iconv_t(-1);
|
|
||||||
}
|
|
||||||
if (host_to_local != iconv_t(-1))
|
|
||||||
{
|
|
||||||
iconv_close(host_to_local);
|
|
||||||
host_to_local = iconv_t(-1);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
StdStrBuf C4Language::Iconv(const char * string, iconv_t cd)
|
|
||||||
{
|
|
||||||
if (cd == iconv_t(-1))
|
|
||||||
{
|
|
||||||
return StdStrBuf(string, true);
|
|
||||||
}
|
|
||||||
StdStrBuf r;
|
|
||||||
if (!string) return r;
|
|
||||||
size_t inlen = strlen(string);
|
|
||||||
size_t outlen = strlen(string);
|
|
||||||
r.SetLength(inlen);
|
|
||||||
const char * inbuf = string;
|
|
||||||
char * outbuf = r.getMData();
|
|
||||||
while (inlen > 0)
|
|
||||||
{
|
|
||||||
// Hope that iconv does not change the inbuf...
|
|
||||||
if ((size_t)(-1) == iconv(cd, const_cast<ICONV_CONST char * *>(&inbuf), &inlen, &outbuf, &outlen))
|
|
||||||
{
|
|
||||||
switch (errno)
|
|
||||||
{
|
|
||||||
// There is not sufficient room at *outbuf.
|
|
||||||
case E2BIG:
|
|
||||||
{
|
|
||||||
size_t done = outbuf - r.getMData();
|
|
||||||
r.Grow(inlen * 2);
|
|
||||||
outbuf = r.getMData() + done;
|
|
||||||
outlen += inlen * 2;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// An invalid multibyte sequence has been encountered in the input.
|
|
||||||
case EILSEQ:
|
|
||||||
++inbuf;
|
|
||||||
--inlen;
|
|
||||||
break;
|
|
||||||
// An incomplete multibyte sequence has been encountered in the input.
|
|
||||||
case EINVAL:
|
|
||||||
default:
|
|
||||||
if (outlen) r.Shrink(outlen);
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (outlen) r.Shrink(outlen);
|
|
||||||
// StdStrBuf has taken care of the terminating zero
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
StdStrBuf C4Language::IconvSystem(const char * string)
|
|
||||||
{
|
|
||||||
return Iconv(string, local_to_host);
|
|
||||||
}
|
|
||||||
StdStrBuf C4Language::IconvClonk(const char * string)
|
|
||||||
{
|
|
||||||
return Iconv(string, host_to_local);
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
StdStrBuf C4Language::IconvSystem(const char * string)
|
|
||||||
{
|
|
||||||
// Just copy through
|
|
||||||
return StdStrBuf(string, true);
|
|
||||||
}
|
|
||||||
StdStrBuf C4Language::IconvClonk(const char * string)
|
|
||||||
{
|
|
||||||
// Just copy through
|
|
||||||
return StdStrBuf(string, true);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int C4Language::GetPackCount()
|
int C4Language::GetPackCount()
|
||||||
{
|
{
|
||||||
return Packs.GetGroupCount();
|
return Packs.GetGroupCount();
|
||||||
|
@ -533,19 +444,6 @@ bool C4Language::LoadStringTable(C4Group &hGroup, const char *strCode)
|
||||||
// Load string table
|
// Load string table
|
||||||
if (!C4LangStringTable::GetSystemStringTable().Load(hGroup, strEntry))
|
if (!C4LangStringTable::GetSystemStringTable().Load(hGroup, strEntry))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
#ifdef HAVE_LANGINFO_H
|
|
||||||
const char * const to_set = nl_langinfo(CODESET);
|
|
||||||
if (local_to_host == iconv_t(-1))
|
|
||||||
local_to_host = iconv_open (to_set ? to_set : "ASCII", "UTF-8");
|
|
||||||
if (host_to_local == iconv_t(-1))
|
|
||||||
host_to_local = iconv_open ("UTF-8",
|
|
||||||
to_set ? to_set : "ASCII");
|
|
||||||
#else
|
|
||||||
const char * const to_set = "";
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
// Success
|
// Success
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,10 +23,6 @@
|
||||||
#include "c4group/C4GroupSet.h"
|
#include "c4group/C4GroupSet.h"
|
||||||
#include "c4group/C4LangStringTable.h"
|
#include "c4group/C4LangStringTable.h"
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
#include <iconv.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
const int C4MaxLanguageInfo = 1024;
|
const int C4MaxLanguageInfo = 1024;
|
||||||
|
|
||||||
class C4LanguageInfo
|
class C4LanguageInfo
|
||||||
|
@ -71,9 +67,6 @@ public:
|
||||||
C4LanguageInfo *FindInfo(const char *strCode);
|
C4LanguageInfo *FindInfo(const char *strCode);
|
||||||
// Loading of actual resource string table
|
// Loading of actual resource string table
|
||||||
bool LoadLanguage(const char *strLanguages);
|
bool LoadLanguage(const char *strLanguages);
|
||||||
// Encoding conversion functions
|
|
||||||
static StdStrBuf IconvClonk(const char * string);
|
|
||||||
static StdStrBuf IconvSystem(const char * string);
|
|
||||||
|
|
||||||
inline bool HasStringTable() const { return !C4LangStringTable::GetSystemStringTable().GetDataBuf().isNull(); }
|
inline bool HasStringTable() const { return !C4LangStringTable::GetSystemStringTable().GetDataBuf().isNull(); }
|
||||||
|
|
||||||
|
@ -84,11 +77,6 @@ private:
|
||||||
// Loading of actual resource string table
|
// Loading of actual resource string table
|
||||||
bool InitStringTable(const char *strCode);
|
bool InitStringTable(const char *strCode);
|
||||||
bool LoadStringTable(C4Group &hGroup, const char *strCode);
|
bool LoadStringTable(C4Group &hGroup, const char *strCode);
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
static iconv_t local_to_host;
|
|
||||||
static iconv_t host_to_local;
|
|
||||||
static StdStrBuf Iconv(const char * string, iconv_t cd);
|
|
||||||
#endif
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extern C4Language Languages;
|
extern C4Language Languages;
|
||||||
|
@ -106,4 +94,4 @@ inline const char *LoadResStr(const char *id)
|
||||||
}
|
}
|
||||||
const char *LoadResStrNoAmp(const char *id);
|
const char *LoadResStrNoAmp(const char *id);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -120,18 +120,4 @@ public:
|
||||||
virtual bool IsLowPriority();
|
virtual bool IsLowPriority();
|
||||||
};
|
};
|
||||||
|
|
||||||
class C4ApplicationSec1Timer : protected CStdTimerProc
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
C4ApplicationSec1Timer() : CStdTimerProc(1000) { }
|
|
||||||
virtual void OnSec1Timer() = 0;
|
|
||||||
protected:
|
|
||||||
virtual bool Execute(int, pollfd *)
|
|
||||||
{
|
|
||||||
if (CheckAndReset())
|
|
||||||
OnSec1Timer();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
|
|
||||||
#include "C4Application.h"
|
#include "C4Application.h"
|
||||||
|
|
||||||
|
#include <StdScheduler.h>
|
||||||
#include <C4Id.h>
|
#include <C4Id.h>
|
||||||
|
|
||||||
#include <C4Window.h>
|
#include <C4Window.h>
|
||||||
|
@ -2355,7 +2356,7 @@ namespace C4GUI
|
||||||
public:
|
public:
|
||||||
InfoDialog(const char *szCaption, int32_t iLineCount); // ctor
|
InfoDialog(const char *szCaption, int32_t iLineCount); // ctor
|
||||||
InfoDialog(const char *szCaption, int iLineCount, const StdStrBuf &sText); // ctor - init w/o timer
|
InfoDialog(const char *szCaption, int iLineCount, const StdStrBuf &sText); // ctor - init w/o timer
|
||||||
~InfoDialog() { Application.Remove(this); }
|
~InfoDialog();
|
||||||
};
|
};
|
||||||
|
|
||||||
// a keyboard event that's only executed if the dialog is activated
|
// a keyboard event that's only executed if the dialog is activated
|
||||||
|
|
|
@ -1194,6 +1194,10 @@ bool MessageDialog::KeyCopy()
|
||||||
pTextWin->UpdateHeight();
|
pTextWin->UpdateHeight();
|
||||||
//pTextWin->ScrollToBottom();
|
//pTextWin->ScrollToBottom();
|
||||||
}
|
}
|
||||||
|
InfoDialog::~InfoDialog()
|
||||||
|
{
|
||||||
|
Application.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
void InfoDialog::CreateSubComponents()
|
void InfoDialog::CreateSubComponents()
|
||||||
{
|
{
|
||||||
|
|
|
@ -136,7 +136,7 @@ C4GUI::ContextMenu *C4StartupMainDlg::OnPlayerSelContextAdd(C4GUI::Element *pBtn
|
||||||
if (*GetFilename(szFn) == '.') continue;
|
if (*GetFilename(szFn) == '.') continue;
|
||||||
if (!WildcardMatch(C4CFN_PlayerFiles, GetFilename(szFn))) continue;
|
if (!WildcardMatch(C4CFN_PlayerFiles, GetFilename(szFn))) continue;
|
||||||
if (!SIsModule(Config.General.Participants, szFn, NULL, false))
|
if (!SIsModule(Config.General.Participants, szFn, NULL, false))
|
||||||
pCtx->AddItem(C4Language::IconvClonk(GetFilenameOnly(szFn)).getData(), "Let this player join in next game", C4GUI::Ico_Player,
|
pCtx->AddItem(GetFilenameOnly(szFn), "Let this player join in next game", C4GUI::Ico_Player,
|
||||||
new C4GUI::CBMenuHandlerEx<C4StartupMainDlg, StdCopyStrBuf>(this, &C4StartupMainDlg::OnPlayerSelContextAddPlr, StdCopyStrBuf(szFn)), NULL);
|
new C4GUI::CBMenuHandlerEx<C4StartupMainDlg, StdCopyStrBuf>(this, &C4StartupMainDlg::OnPlayerSelContextAddPlr, StdCopyStrBuf(szFn)), NULL);
|
||||||
}
|
}
|
||||||
return pCtx;
|
return pCtx;
|
||||||
|
@ -192,7 +192,7 @@ void C4StartupMainDlg::UpdateParticipants()
|
||||||
for (int i = 0; SCopySegment(Config.General.Participants, i, &strPlayer[0], ';', 1024, true); i++)
|
for (int i = 0; SCopySegment(Config.General.Participants, i, &strPlayer[0], ';', 1024, true); i++)
|
||||||
{
|
{
|
||||||
if (i > 0) strPlayers.append(", ");
|
if (i > 0) strPlayers.append(", ");
|
||||||
strPlayers.append(C4Language::IconvClonk(GetFilenameOnly(&strPlayer[0])).getData());
|
strPlayers.append(GetFilenameOnly(&strPlayer[0]));
|
||||||
}
|
}
|
||||||
pParticipantsLbl->SetText(strPlayers.c_str());
|
pParticipantsLbl->SetText(strPlayers.c_str());
|
||||||
}
|
}
|
||||||
|
|
|
@ -808,7 +808,7 @@ bool C4StartupPlrSelDlg::CheckPlayerName(const StdStrBuf &Playername, StdStrBuf
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// generate valid filename
|
// generate valid filename
|
||||||
Filename.Take(C4Language::IconvSystem(Playername.getData()));
|
Filename.Copy(Playername);
|
||||||
// Slashes in Filenames are no good
|
// Slashes in Filenames are no good
|
||||||
SReplaceChar(Filename.getMData(), '\\', '_');
|
SReplaceChar(Filename.getMData(), '\\', '_');
|
||||||
SReplaceChar(Filename.getMData(), '/', '_');
|
SReplaceChar(Filename.getMData(), '/', '_');
|
||||||
|
|
|
@ -467,7 +467,6 @@ bool C4ScenarioListLoader::Entry::Load(C4Group *pFromGrp, const StdStrBuf *psFil
|
||||||
char *szBuf = sName.GrabPointer();
|
char *szBuf = sName.GrabPointer();
|
||||||
RemoveExtension(szBuf);
|
RemoveExtension(szBuf);
|
||||||
sName.Take(szBuf);
|
sName.Take(szBuf);
|
||||||
sName.Take(C4Language::IconvClonk(sName.getData()));
|
|
||||||
// load entry specific stuff that's in the front of the group
|
// load entry specific stuff that's in the front of the group
|
||||||
if (!LoadCustomPre(Group))
|
if (!LoadCustomPre(Group))
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -145,23 +145,17 @@ bool LogSilent(const char *szMessage, bool fConsole)
|
||||||
}
|
}
|
||||||
*pDest++='\n'; *pDest = '\0';
|
*pDest++='\n'; *pDest = '\0';
|
||||||
|
|
||||||
#ifdef HAVE_ICONV
|
|
||||||
StdStrBuf Line = Languages.IconvSystem(TimeMessage.getData());
|
|
||||||
#else
|
|
||||||
const StdStrBuf &Line = TimeMessage;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// Save into log file
|
// Save into log file
|
||||||
if (C4LogFile)
|
if (C4LogFile)
|
||||||
{
|
{
|
||||||
fputs(Line.getData(),C4LogFile);
|
fputs(TimeMessage.getData(),C4LogFile);
|
||||||
fflush(C4LogFile);
|
fflush(C4LogFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Save into record log file, if available
|
// Save into record log file, if available
|
||||||
if(Control.GetRecord())
|
if(Control.GetRecord())
|
||||||
{
|
{
|
||||||
Control.GetRecord()->GetLogFile()->Write(Line.getData(), strlen(Line.getData()));
|
Control.GetRecord()->GetLogFile()->Write(TimeMessage.getData(), TimeMessage.getLength());
|
||||||
#ifdef IMMEDIATEREC
|
#ifdef IMMEDIATEREC
|
||||||
Control.GetRecord()->GetLogFile()->Flush();
|
Control.GetRecord()->GetLogFile()->Flush();
|
||||||
#endif
|
#endif
|
||||||
|
@ -173,9 +167,9 @@ bool LogSilent(const char *szMessage, bool fConsole)
|
||||||
{
|
{
|
||||||
#if defined(_DEBUG) && defined(_WIN32)
|
#if defined(_DEBUG) && defined(_WIN32)
|
||||||
// debug: output to VC console
|
// debug: output to VC console
|
||||||
OutputDebugString(Line.GetWideChar());
|
OutputDebugString(TimeMessage.GetWideChar());
|
||||||
#endif
|
#endif
|
||||||
fputs(Line.getData(),stdout);
|
fputs(TimeMessage.getData(),stdout);
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -338,12 +332,7 @@ bool ShaderLog(const char *szMessage)
|
||||||
if (!Application.AssertMainThread()) return false;
|
if (!Application.AssertMainThread()) return false;
|
||||||
if (!szMessage) return false;
|
if (!szMessage) return false;
|
||||||
// output into shader log file
|
// output into shader log file
|
||||||
#ifdef HAVE_ICONV
|
fputs(szMessage, C4ShaderLogFile);
|
||||||
StdStrBuf Line = Languages.IconvSystem(szMessage);
|
|
||||||
#else
|
|
||||||
StdStrBuf Line; Line.Ref(szMessage);
|
|
||||||
#endif
|
|
||||||
fputs(Line.getData(), C4ShaderLogFile);
|
|
||||||
fputs("\n", C4ShaderLogFile);
|
fputs("\n", C4ShaderLogFile);
|
||||||
fflush(C4ShaderLogFile);
|
fflush(C4ShaderLogFile);
|
||||||
return true;
|
return true;
|
||||||
|
|
|
@ -420,6 +420,11 @@ C4Network2ClientListBox::C4Network2ClientListBox(C4Rect &rcBounds, bool fStartup
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
C4Network2ClientListBox::~C4Network2ClientListBox()
|
||||||
|
{
|
||||||
|
Application.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
void C4Network2ClientListBox::Update()
|
void C4Network2ClientListBox::Update()
|
||||||
{
|
{
|
||||||
// sync with client list
|
// sync with client list
|
||||||
|
@ -524,6 +529,11 @@ C4Network2ClientListDlg::C4Network2ClientListDlg()
|
||||||
Update();
|
Update();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
C4Network2ClientListDlg::~C4Network2ClientListDlg()
|
||||||
|
{
|
||||||
|
if (this==pInstance) pInstance=NULL; Application.Remove(this);
|
||||||
|
}
|
||||||
|
|
||||||
void C4Network2ClientListDlg::Update()
|
void C4Network2ClientListDlg::Update()
|
||||||
{
|
{
|
||||||
// Compose status text
|
// Compose status text
|
||||||
|
|
|
@ -162,7 +162,7 @@ private:
|
||||||
|
|
||||||
public:
|
public:
|
||||||
C4Network2ClientListBox(C4Rect &rcBounds, bool fStartup);
|
C4Network2ClientListBox(C4Rect &rcBounds, bool fStartup);
|
||||||
~C4Network2ClientListBox() { Application.Remove(this); }
|
~C4Network2ClientListBox();
|
||||||
|
|
||||||
// update by client list
|
// update by client list
|
||||||
void OnSec1Timer() { Update(); }
|
void OnSec1Timer() { Update(); }
|
||||||
|
@ -186,7 +186,7 @@ private:
|
||||||
virtual const char *GetID() { return "ClientListDialog"; }
|
virtual const char *GetID() { return "ClientListDialog"; }
|
||||||
public:
|
public:
|
||||||
C4Network2ClientListDlg();
|
C4Network2ClientListDlg();
|
||||||
~C4Network2ClientListDlg() { if (this==pInstance) pInstance=NULL; Application.Remove(this); }
|
~C4Network2ClientListDlg();
|
||||||
|
|
||||||
void OnSec1Timer() { Update(); }
|
void OnSec1Timer() { Update(); }
|
||||||
void Update();
|
void Update();
|
||||||
|
|
|
@ -17,6 +17,7 @@
|
||||||
#define INC_C4SoundLoaders
|
#define INC_C4SoundLoaders
|
||||||
|
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <C4SoundIncludes.h>
|
||||||
#include <C4SoundSystem.h>
|
#include <C4SoundSystem.h>
|
||||||
|
|
||||||
namespace C4SoundLoaders
|
namespace C4SoundLoaders
|
||||||
|
|
|
@ -26,12 +26,70 @@
|
||||||
#include <C4Config.h>
|
#include <C4Config.h>
|
||||||
#include <C4Application.h>
|
#include <C4Application.h>
|
||||||
#include <C4Viewport.h>
|
#include <C4Viewport.h>
|
||||||
|
#include <C4SoundIncludes.h>
|
||||||
#include <C4SoundLoaders.h>
|
#include <C4SoundLoaders.h>
|
||||||
|
|
||||||
#if AUDIO_TK == AUDIO_TK_SDL_MIXER
|
class C4SoundEffect
|
||||||
#define USE_RWOPS
|
{
|
||||||
#include <SDL_mixer.h>
|
friend class C4SoundInstance;
|
||||||
#endif
|
public:
|
||||||
|
C4SoundEffect();
|
||||||
|
~C4SoundEffect();
|
||||||
|
public:
|
||||||
|
char Name[C4MaxSoundName+1];
|
||||||
|
int32_t Instances;
|
||||||
|
int32_t SampleRate, Length;
|
||||||
|
C4SoundHandle pSample;
|
||||||
|
C4SoundInstance *FirstInst;
|
||||||
|
C4SoundEffect *Next;
|
||||||
|
public:
|
||||||
|
void Clear();
|
||||||
|
bool Load(const char *szFileName, C4Group &hGroup);
|
||||||
|
bool Load(BYTE *pData, size_t iDataLen, bool fRaw=false); // load directly from memory
|
||||||
|
void Execute();
|
||||||
|
C4SoundInstance *New(bool fLoop = false, int32_t iVolume = 100, C4Object *pObj = NULL, int32_t iCustomFalloffDistance = 0);
|
||||||
|
C4SoundInstance *GetInstance(C4Object *pObj);
|
||||||
|
void ClearPointers(C4Object *pObj);
|
||||||
|
int32_t GetStartedInstanceCount(int32_t iX, int32_t iY, int32_t iRad); // local
|
||||||
|
int32_t GetStartedInstanceCount(); // global
|
||||||
|
protected:
|
||||||
|
void AddInst(C4SoundInstance *pInst);
|
||||||
|
void RemoveInst(C4SoundInstance *pInst);
|
||||||
|
};
|
||||||
|
|
||||||
|
class C4SoundInstance
|
||||||
|
{
|
||||||
|
friend class C4SoundEffect;
|
||||||
|
protected:
|
||||||
|
C4SoundInstance();
|
||||||
|
public:
|
||||||
|
~C4SoundInstance();
|
||||||
|
protected:
|
||||||
|
C4SoundEffect *pEffect;
|
||||||
|
int32_t iVolume, iPan, iChannel;
|
||||||
|
C4TimeMilliseconds tStarted;
|
||||||
|
int32_t iNearInstanceMax;
|
||||||
|
bool fLooping;
|
||||||
|
C4Object *pObj;
|
||||||
|
int32_t iFalloffDistance;
|
||||||
|
C4SoundInstance *pNext;
|
||||||
|
public:
|
||||||
|
C4Object *getObj() const { return pObj; }
|
||||||
|
bool isStarted() const { return iChannel != -1; }
|
||||||
|
void Clear();
|
||||||
|
bool Create(C4SoundEffect *pEffect, bool fLoop = false, int32_t iVolume = 100, C4Object *pObj = NULL, int32_t iNearInstanceMax = 0, int32_t iFalloffDistance = 0);
|
||||||
|
bool CheckStart();
|
||||||
|
bool Start();
|
||||||
|
bool Stop();
|
||||||
|
bool Playing();
|
||||||
|
void Execute();
|
||||||
|
void SetVolume(int32_t inVolume) { iVolume = inVolume; }
|
||||||
|
void SetPan(int32_t inPan) { iPan = inPan; }
|
||||||
|
void SetVolumeByPos(int32_t x, int32_t y);
|
||||||
|
void SetObj(C4Object *pnObj) { pObj = pnObj; }
|
||||||
|
void ClearPointers(C4Object *pObj);
|
||||||
|
bool Inside(int32_t iX, int32_t iY, int32_t iRad);
|
||||||
|
};
|
||||||
|
|
||||||
using namespace C4SoundLoaders;
|
using namespace C4SoundLoaders;
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@
|
||||||
#define INC_C4SoundSystem
|
#define INC_C4SoundSystem
|
||||||
|
|
||||||
#include <C4Group.h>
|
#include <C4Group.h>
|
||||||
#include <C4SoundIncludes.h>
|
|
||||||
|
|
||||||
const int32_t
|
const int32_t
|
||||||
C4MaxSoundName=100,
|
C4MaxSoundName=100,
|
||||||
|
@ -29,73 +28,11 @@ const int32_t
|
||||||
C4NearSoundRadius=50,
|
C4NearSoundRadius=50,
|
||||||
C4AudibilityRadius=700;
|
C4AudibilityRadius=700;
|
||||||
|
|
||||||
class C4Object;
|
|
||||||
class C4SoundInstance;
|
|
||||||
|
|
||||||
class C4SoundEffect
|
|
||||||
{
|
|
||||||
friend class C4SoundInstance;
|
|
||||||
public:
|
|
||||||
C4SoundEffect();
|
|
||||||
~C4SoundEffect();
|
|
||||||
public:
|
|
||||||
char Name[C4MaxSoundName+1];
|
|
||||||
int32_t Instances;
|
|
||||||
int32_t SampleRate, Length;
|
|
||||||
C4SoundHandle pSample;
|
|
||||||
C4SoundInstance *FirstInst;
|
|
||||||
C4SoundEffect *Next;
|
|
||||||
public:
|
|
||||||
void Clear();
|
|
||||||
bool Load(const char *szFileName, C4Group &hGroup);
|
|
||||||
bool Load(BYTE *pData, size_t iDataLen, bool fRaw=false); // load directly from memory
|
|
||||||
void Execute();
|
|
||||||
C4SoundInstance *New(bool fLoop = false, int32_t iVolume = 100, C4Object *pObj = NULL, int32_t iCustomFalloffDistance = 0);
|
|
||||||
C4SoundInstance *GetInstance(C4Object *pObj);
|
|
||||||
void ClearPointers(C4Object *pObj);
|
|
||||||
int32_t GetStartedInstanceCount(int32_t iX, int32_t iY, int32_t iRad); // local
|
|
||||||
int32_t GetStartedInstanceCount(); // global
|
|
||||||
protected:
|
|
||||||
void AddInst(C4SoundInstance *pInst);
|
|
||||||
void RemoveInst(C4SoundInstance *pInst);
|
|
||||||
};
|
|
||||||
|
|
||||||
class C4SoundInstance
|
|
||||||
{
|
|
||||||
friend class C4SoundEffect;
|
|
||||||
protected:
|
|
||||||
C4SoundInstance();
|
|
||||||
public:
|
|
||||||
~C4SoundInstance();
|
|
||||||
protected:
|
|
||||||
C4SoundEffect *pEffect;
|
|
||||||
int32_t iVolume, iPan, iChannel;
|
|
||||||
C4TimeMilliseconds tStarted;
|
|
||||||
int32_t iNearInstanceMax;
|
|
||||||
bool fLooping;
|
|
||||||
C4Object *pObj;
|
|
||||||
int32_t iFalloffDistance;
|
|
||||||
C4SoundInstance *pNext;
|
|
||||||
public:
|
|
||||||
C4Object *getObj() const { return pObj; }
|
|
||||||
bool isStarted() const { return iChannel != -1; }
|
|
||||||
void Clear();
|
|
||||||
bool Create(C4SoundEffect *pEffect, bool fLoop = false, int32_t iVolume = 100, C4Object *pObj = NULL, int32_t iNearInstanceMax = 0, int32_t iFalloffDistance = 0);
|
|
||||||
bool CheckStart();
|
|
||||||
bool Start();
|
|
||||||
bool Stop();
|
|
||||||
bool Playing();
|
|
||||||
void Execute();
|
|
||||||
void SetVolume(int32_t inVolume) { iVolume = inVolume; }
|
|
||||||
void SetPan(int32_t inPan) { iPan = inPan; }
|
|
||||||
void SetVolumeByPos(int32_t x, int32_t y);
|
|
||||||
void SetObj(C4Object *pnObj) { pObj = pnObj; }
|
|
||||||
void ClearPointers(C4Object *pObj);
|
|
||||||
bool Inside(int32_t iX, int32_t iY, int32_t iRad);
|
|
||||||
};
|
|
||||||
|
|
||||||
const int32_t SoundUnloadTime=60, SoundMaxUnloadSize=100000;
|
const int32_t SoundUnloadTime=60, SoundMaxUnloadSize=100000;
|
||||||
|
|
||||||
|
class C4SoundInstance;
|
||||||
|
class C4SoundEffect;
|
||||||
|
|
||||||
class C4SoundSystem
|
class C4SoundSystem
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
@ -116,9 +53,9 @@ protected:
|
||||||
int32_t RemoveEffect(const char *szFilename);
|
int32_t RemoveEffect(const char *szFilename);
|
||||||
};
|
};
|
||||||
|
|
||||||
class C4SoundInstance *StartSoundEffect(const char *szSndName, bool fLoop = false, int32_t iVolume = 100, C4Object *pObj=NULL, int32_t iCustomFalloffDistance=0);
|
C4SoundInstance *StartSoundEffect(const char *szSndName, bool fLoop = false, int32_t iVolume = 100, C4Object *pObj=NULL, int32_t iCustomFalloffDistance=0);
|
||||||
class C4SoundInstance *StartSoundEffectAt(const char *szSndName, int32_t iX, int32_t iY, int32_t iVolume = 100, int32_t iCustomFallofDistance=0);
|
C4SoundInstance *StartSoundEffectAt(const char *szSndName, int32_t iX, int32_t iY, int32_t iVolume = 100, int32_t iCustomFallofDistance=0);
|
||||||
class C4SoundInstance *GetSoundInstance(const char *szSndName, C4Object *pObj);
|
C4SoundInstance *GetSoundInstance(const char *szSndName, C4Object *pObj);
|
||||||
void StopSoundEffect(const char *szSndName, C4Object *pObj);
|
void StopSoundEffect(const char *szSndName, C4Object *pObj);
|
||||||
void SoundLevel(const char *szSndName, C4Object *pObj, int32_t iLevel);
|
void SoundLevel(const char *szSndName, C4Object *pObj, int32_t iLevel);
|
||||||
void SoundPan(const char *szSndName, C4Object *pObj, int32_t iPan);
|
void SoundPan(const char *szSndName, C4Object *pObj, int32_t iPan);
|
||||||
|
|
|
@ -260,12 +260,22 @@ void __cdecl StdSchedulerThread::_ThreadFunc(void *pPar)
|
||||||
StdSchedulerThread *pThread = reinterpret_cast<StdSchedulerThread *>(pPar);
|
StdSchedulerThread *pThread = reinterpret_cast<StdSchedulerThread *>(pPar);
|
||||||
_endthreadex(pThread->ThreadFunc());
|
_endthreadex(pThread->ThreadFunc());
|
||||||
}
|
}
|
||||||
|
void __cdecl StdThread::_ThreadFunc(void *pPar)
|
||||||
|
{
|
||||||
|
StdThread *pThread = reinterpret_cast<StdThread *>(pPar);
|
||||||
|
_endthreadex(pThread->ThreadFunc());
|
||||||
|
}
|
||||||
#elif defined(HAVE_PTHREAD)
|
#elif defined(HAVE_PTHREAD)
|
||||||
void *StdSchedulerThread::_ThreadFunc(void *pPar)
|
void *StdSchedulerThread::_ThreadFunc(void *pPar)
|
||||||
{
|
{
|
||||||
StdSchedulerThread *pThread = reinterpret_cast<StdSchedulerThread *>(pPar);
|
StdSchedulerThread *pThread = reinterpret_cast<StdSchedulerThread *>(pPar);
|
||||||
return reinterpret_cast<void *>(pThread->ThreadFunc());
|
return reinterpret_cast<void *>(pThread->ThreadFunc());
|
||||||
}
|
}
|
||||||
|
void *StdThread::_ThreadFunc(void *pPar)
|
||||||
|
{
|
||||||
|
StdThread *pThread = reinterpret_cast<StdThread *>(pPar);
|
||||||
|
return reinterpret_cast<void *>(pThread->ThreadFunc());
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
unsigned int StdSchedulerThread::ThreadFunc()
|
unsigned int StdSchedulerThread::ThreadFunc()
|
||||||
|
|
|
@ -123,6 +123,20 @@ public:
|
||||||
virtual uint32_t TimerInterval() { return iDelay; }
|
virtual uint32_t TimerInterval() { return iDelay; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class C4ApplicationSec1Timer : protected CStdTimerProc
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
C4ApplicationSec1Timer() : CStdTimerProc(1000) { }
|
||||||
|
virtual void OnSec1Timer() = 0;
|
||||||
|
protected:
|
||||||
|
virtual bool Execute(int, pollfd *)
|
||||||
|
{
|
||||||
|
if (CheckAndReset())
|
||||||
|
OnSec1Timer();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// A simple alertable proc
|
// A simple alertable proc
|
||||||
class CStdNotifyProc : public StdSchedulerProc
|
class CStdNotifyProc : public StdSchedulerProc
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,27 +1,20 @@
|
||||||
#include "C4Include.h"
|
#include "C4Include.h"
|
||||||
#include "StdScheduler.h"
|
#include "StdScheduler.h"
|
||||||
|
|
||||||
#ifdef HAVE_POLL_H
|
#ifdef HAVE_POLL_H
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
|
||||||
#include <vector>
|
|
||||||
|
|
||||||
#ifdef HAVE_IO_H
|
#ifdef HAVE_IO_H
|
||||||
#include <io.h>
|
#include <io.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_SHARE_H
|
#ifdef HAVE_SHARE_H
|
||||||
#include <share.h>
|
#include <share.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
#ifdef HAVE_UNISTD_H
|
||||||
// For pipe()
|
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <map>
|
#include <map>
|
||||||
|
|
||||||
// Is this process currently signaled?
|
// Is this process currently signaled?
|
||||||
|
@ -134,7 +127,7 @@ bool StdScheduler::DoScheduleProcs(int iTimeout)
|
||||||
bool any_executed = false;
|
bool any_executed = false;
|
||||||
auto tNow = C4TimeMilliseconds::Now();
|
auto tNow = C4TimeMilliseconds::Now();
|
||||||
// Which process?
|
// Which process?
|
||||||
for (auto i = 0; i < procs.size(); i++)
|
for (size_t i = 0; i < procs.size(); i++)
|
||||||
{
|
{
|
||||||
auto proc = procs[i];
|
auto proc = procs[i];
|
||||||
auto tProcTick = proc->GetNextTick(tNow);
|
auto tProcTick = proc->GetNextTick(tNow);
|
||||||
|
@ -186,8 +179,6 @@ bool StdScheduler::DoScheduleProcs(int iTimeout)
|
||||||
|
|
||||||
#if defined(HAVE_SYS_TIMERFD_H)
|
#if defined(HAVE_SYS_TIMERFD_H)
|
||||||
#include <sys/timerfd.h>
|
#include <sys/timerfd.h>
|
||||||
#include <unistd.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
CStdMultimediaTimerProc::CStdMultimediaTimerProc(uint32_t iDelay)
|
CStdMultimediaTimerProc::CStdMultimediaTimerProc(uint32_t iDelay)
|
||||||
{
|
{
|
||||||
fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK | TFD_CLOEXEC);
|
fd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK | TFD_CLOEXEC);
|
||||||
|
@ -230,7 +221,7 @@ void CStdMultimediaTimerProc::GetFDs(std::vector<struct pollfd> & checkfds)
|
||||||
pollfd pfd = { fd, POLLIN, 0 };
|
pollfd pfd = { fd, POLLIN, 0 };
|
||||||
checkfds.push_back(pfd);
|
checkfds.push_back(pfd);
|
||||||
}
|
}
|
||||||
#endif
|
#endif // HAVE_SYS_TIMERFD_H
|
||||||
|
|
||||||
#if !defined(USE_COCOA)
|
#if !defined(USE_COCOA)
|
||||||
void StdScheduler::Added(StdSchedulerProc *pProc) {}
|
void StdScheduler::Added(StdSchedulerProc *pProc) {}
|
||||||
|
@ -238,11 +229,4 @@ void StdScheduler::Removing(StdSchedulerProc *pProc) {}
|
||||||
void StdScheduler::Changed(StdSchedulerProc* pProc) {}
|
void StdScheduler::Changed(StdSchedulerProc* pProc) {}
|
||||||
void StdScheduler::StartOnCurrentThread() {}
|
void StdScheduler::StartOnCurrentThread() {}
|
||||||
#endif
|
#endif
|
||||||
|
#endif // HAVE_POLL_H
|
||||||
void *StdThread::_ThreadFunc(void *pPar)
|
|
||||||
{
|
|
||||||
StdThread *pThread = reinterpret_cast<StdThread *>(pPar);
|
|
||||||
return reinterpret_cast<void *>(pThread->ThreadFunc());
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// Events are Windows-specific
|
// Events are Windows-specific
|
||||||
#include <C4Include.h>
|
#include <C4Include.h>
|
||||||
#include <StdScheduler.h>
|
#include <StdScheduler.h>
|
||||||
#ifdef USE_WIN32_WINDOWS
|
#ifdef STDSCHEDULER_USE_EVENTS
|
||||||
|
|
||||||
#include <mmsystem.h>
|
#include <mmsystem.h>
|
||||||
#include <process.h>
|
#include <process.h>
|
||||||
|
@ -167,11 +167,4 @@ bool CStdMultimediaTimerProc::CheckAndReset()
|
||||||
Event.Reset();
|
Event.Reset();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
void __cdecl StdThread::_ThreadFunc(void *pPar)
|
|
||||||
{
|
|
||||||
StdThread *pThread = reinterpret_cast<StdThread *>(pPar);
|
|
||||||
_endthreadex(pThread->ThreadFunc());
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
Binary file not shown.
|
@ -156,7 +156,7 @@ C4Value C4AulDefFunc::Exec(C4PropList * p, C4Value pPars[], bool fPassErrors)
|
||||||
|
|
||||||
#define MAKE_AND_RETURN_ARRAY(values) do { \
|
#define MAKE_AND_RETURN_ARRAY(values) do { \
|
||||||
C4ValueArray *matrix = new C4ValueArray(sizeof(values) / sizeof(*values)); \
|
C4ValueArray *matrix = new C4ValueArray(sizeof(values) / sizeof(*values)); \
|
||||||
for (long i = 0; i < sizeof(values) / sizeof(*values); ++i) \
|
for (size_t i = 0; i < sizeof(values) / sizeof(*values); ++i) \
|
||||||
(*matrix)[i] = C4VInt(values[i]); \
|
(*matrix)[i] = C4VInt(values[i]); \
|
||||||
return matrix; \
|
return matrix; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
@ -273,7 +273,7 @@ static C4Value FnTrans_Mul(C4PropList * _this, C4Value *pars)
|
||||||
|
|
||||||
// unlike in the other Trans_*-functions, we have to put the array into a C4Value manually here
|
// unlike in the other Trans_*-functions, we have to put the array into a C4Value manually here
|
||||||
C4ValueArray *matrix = new C4ValueArray(sizeof(values) / sizeof(*values));
|
C4ValueArray *matrix = new C4ValueArray(sizeof(values) / sizeof(*values));
|
||||||
for (long i = 0; i < sizeof(values) / sizeof(*values); ++i)
|
for (size_t i = 0; i < sizeof(values) / sizeof(*values); ++i)
|
||||||
(*matrix)[i] = C4VInt(values[i]);
|
(*matrix)[i] = C4VInt(values[i]);
|
||||||
return C4VArray(matrix);
|
return C4VArray(matrix);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ _otool="${OTOOL:-otool}"
|
||||||
_install_name_tool="${INSTALL_NAME_TOOL:-install_name_tool}"
|
_install_name_tool="${INSTALL_NAME_TOOL:-install_name_tool}"
|
||||||
|
|
||||||
# This regexp should match every lib we want to bundle.
|
# This regexp should match every lib we want to bundle.
|
||||||
_libs_to_bundle=".*?/lib(jpeg|GLEW|llvm|SDL|SDL_mixer|freetype|ogg|vorbis|vorbisfile|z\.|png[0-9]*|iconv|alut)\.[^ ]+\.dylib"
|
_libs_to_bundle=".*?/lib(jpeg|GLEW|llvm|SDL|SDL_mixer|freetype|ogg|vorbis|vorbisfile|z\.|png[0-9]*|alut)\.[^ ]+\.dylib"
|
||||||
|
|
||||||
if [ -n "${TARGET_BUILD_DIR}" ]; then
|
if [ -n "${TARGET_BUILD_DIR}" ]; then
|
||||||
cd "${TARGET_BUILD_DIR}"
|
cd "${TARGET_BUILD_DIR}"
|
||||||
|
|
|
@ -38,8 +38,8 @@ for language_file in language_files:
|
||||||
key = keyvalue[0].strip()
|
key = keyvalue[0].strip()
|
||||||
findkey = key.rstrip("0123456789")
|
findkey = key.rstrip("0123456789")
|
||||||
|
|
||||||
if not search_all_files_in_directory_for_phrase(os.path.normpath("../src"),findkey,language_files) \
|
if not search_all_files_in_directory_for_phrase(os.path.normpath("../src"),findkey,language_files):
|
||||||
and not search_all_files_in_directory_for_phrase(os.path.normpath("../planet"),findkey,language_files):
|
#and not search_all_files_in_directory_for_phrase(os.path.normpath("../planet"),findkey,language_files):
|
||||||
unused.append(key)
|
unused.append(key)
|
||||||
else:
|
else:
|
||||||
fout.write(line)
|
fout.write(line)
|
||||||
|
|
Loading…
Reference in New Issue