Skip to content

Commit b9c699a

Browse files
committed
Windows fixes
1 parent 6f92cbd commit b9c699a

File tree

11 files changed

+124
-65
lines changed

11 files changed

+124
-65
lines changed

CMakeLists.txt

+42-20
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ if( MSVC )
5656

5757
endif()
5858

59+
set( VIZDOOM_OUTPUT_DIR ${CMAKE_BINARY_DIR}/bin )
5960

6061
# Targets
6162
add_subdirectory( vizdoom_src )
@@ -65,7 +66,7 @@ find_package(Threads REQUIRED)
6566

6667
set( VIZDOOM_INCLUDE_DIR vizdoom_api_src )
6768

68-
include_directories( ${VIZDOOM_IrmNCLUDE_DIR} ${Boost_INCLUDE_DIR} )
69+
include_directories( ${VIZDOOM_INCLUDE_DIR} ${Boost_INCLUDE_DIR} )
6970

7071
set( VIZDOOM_LIBS
7172
${Boost_LIBRARIES}
@@ -90,11 +91,18 @@ target_link_libraries (vizdoomshared ${VIZDOOM_LIBS})
9091

9192
set_target_properties( vizdoomstatic vizdoomshared
9293
PROPERTIES
93-
ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin
94-
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin
95-
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin
94+
ARCHIVE_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}
95+
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}
96+
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}
97+
LIBRARY_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}
98+
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}
99+
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}
100+
RUNTIME_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}
101+
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}
102+
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}
96103
OUTPUT_NAME vizdoom )
97104

105+
#Python binding
98106
if(BUILD_PYTHON)
99107

100108
#set(Boost_USE_DEBUG_PYTHON OFF)
@@ -108,7 +116,7 @@ if(BUILD_PYTHON)
108116

109117
set( VIZDOOM_PYTHON_LIBS
110118
${VIZDOOM_LIBS}
111-
${Boost_PYTHON_LIBRARY}
119+
${Boost_PYTHON_LIBRARY}
112120
${PYTHON_LIBRARIES}
113121
${NUMPY_LIBRARIES} )
114122

@@ -130,15 +138,21 @@ if(BUILD_PYTHON)
130138

131139
set_target_properties( vizdoompython
132140
PROPERTIES
133-
ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/python
134-
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/python
135-
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/python
141+
ARCHIVE_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}/python
142+
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}/python
143+
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}/python
144+
LIBRARY_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}/python
145+
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}/python
146+
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}/python
147+
RUNTIME_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}/python
148+
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}/python
149+
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}/python
136150
OUTPUT_NAME vizdoom )
137151

138152
if(UNIX)
139153
ADD_CUSTOM_COMMAND(
140154
TARGET vizdoompython
141-
COMMAND ln -sf ${PROJECT_SOURCE_DIR}/bin/python/vizdoom.so ${PROJECT_SOURCE_DIR}/examples/python/vizdoom.so
155+
COMMAND ln -sf ${VIZDOOM_OUTPUT_DIR}/python/vizdoom.so ${PROJECT_SOURCE_DIR}/examples/python/vizdoom.so
142156
COMMAND ln -sf ${PROJECT_SOURCE_DIR}/examples/config/bots.cfg ${PROJECT_SOURCE_DIR}/examples/python/bots.cfg
143157
COMMENT "Adding symlinks to vizdoom.so and bots.cfg in examples/python."
144158
)
@@ -147,6 +161,7 @@ if(BUILD_PYTHON)
147161

148162
endif()
149163

164+
#Java binding
150165
if(BUILD_JAVA)
151166

152167
if (NOT DEFINED ENV{JAVA_HOME})
@@ -160,8 +175,7 @@ if(BUILD_JAVA)
160175
set( VIZDOOM_JAVA_INCLUDE_DIR ${VIZDOOM_INCLUDE_DIR} vizdoom_api_bindings/java )
161176

162177
set( VIZDOOM_JAVA_LIBS
163-
${VIZDOOM_LIBS}
164-
${Boost_LIBRARIES}
178+
${VIZDOOM_LIBS}
165179
${Java_LIBRARIES}
166180
${JNI_LIBRARIES} )
167181

@@ -206,23 +220,31 @@ if(BUILD_JAVA)
206220
./vizdoom_api_bindings/java/errors/SharedMemoryException.java
207221
./vizdoom_api_bindings/java/GameState.java
208222
./vizdoom_api_bindings/java/DoomGame.java
209-
OUTPUT_DIR ${PROJECT_SOURCE_DIR}/bin/java OUTPUT_NAME vizdoom)
223+
OUTPUT_DIR ${VIZDOOM_OUTPUT_DIR}/java
224+
OUTPUT_NAME vizdoom)
210225

211226
set_target_properties( vizdoomjava
212227
PROPERTIES
213-
ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/java
214-
LIBRARY_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/java
215-
RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin/java
228+
ARCHIVE_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}/java
229+
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}/java
230+
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}/java
231+
LIBRARY_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}/java
232+
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}/java
233+
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}/java
234+
RUNTIME_OUTPUT_DIRECTORY ${VIZDOOM_OUTPUT_DIR}/java
235+
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${VIZDOOM_OUTPUT_DIR}/java
236+
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${VIZDOOM_OUTPUT_DIR}/java
216237
OUTPUT_NAME vizdoom )
217238

218239
endif()
219240

220-
221-
#message("-- Downloading Freedoom WADs")
222-
#message("-- Original Doom WADs can not be provided due to licences")
223-
224241
if( WIN32 )
225-
file( DOWNLOAD https://github.com/freedoom/freedoom/releases/download/v0.10.1/freedoom-0.10.1.zip ./scenarios/freedoom-0.10.1.zip SHOW_PROGRESS )
242+
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/scenarios/freedoom.zip")
243+
message("-- Downloading Freedoom WADs")
244+
message("-- Original Doom WADs can not be provided due to licences")
245+
246+
file( DOWNLOAD https://github.com/freedoom/freedoom/releases/download/v0.10.1/freedoom-0.10.1.zip ${PROJECT_SOURCE_DIR}/scenarios/freedoom.zip SHOW_PROGRESS )
247+
endif()
226248
endif()
227249

228250
if(UNIX)

vizdoom_api_bindings/java/DoomGame.java

+25-24
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
public class DoomGame{
77
static {
8-
System.loadLibrary("vizdoom");
8+
System.loadLibrary("vizdoom");
99
}
1010

1111
public long internalPtr = 0;
@@ -29,11 +29,11 @@ public DoomGame(){
2929
public native boolean isRunning();
3030

3131
public native void setAction(int[] actions);
32-
public native void advanceAction();
33-
public native void advanceAction(int tics);
34-
public native void advanceAction(int tics, boolean stateUpdate, boolean renderOnly);
35-
public native double makeAction(int[] actions);
36-
public native double makeAction(int[] actions, int tics);
32+
public native void advanceAction();
33+
public native void advanceAction(int tics);
34+
public native void advanceAction(int tics, boolean stateUpdate, boolean renderOnly);
35+
public native double makeAction(int[] actions);
36+
public native double makeAction(int[] actions, int tics);
3737

3838

3939
public native GameState getState();
@@ -44,7 +44,7 @@ public DoomGame(){
4444
public native boolean isEpisodeFinished();
4545

4646
public native boolean isPlayerDead();
47-
public native void respawnPlayer();
47+
public native void respawnPlayer();
4848

4949
public native void addAvailableButton(Button button);
5050
public native void addAvailableButton(Button button, int maxValue);
@@ -56,16 +56,17 @@ public DoomGame(){
5656
public native void addAvailableGameVariable(GameVariable var);
5757

5858
public native void clearAvailableGameVariables();
59-
public native int getAvailableGameVariablesSize();
59+
public native int getAvailableGameVariablesSize();
6060

6161
public native void addGameArgs(String arg);
62-
public native void clearGameArgs();
62+
public native void clearGameArgs();
6363

64-
public native void sendGameCommand(String cmd);
64+
public native void sendGameCommand(String cmd);
6565

6666
public native int[] getGameScreen();
6767

68-
private native int getMod();
68+
private native int getMod();
69+
6970
public Mode getMode(){
7071
Mode ret=Mode.values()[getMod()];
7172
return ret;
@@ -78,13 +79,13 @@ public Mode getMode(){
7879

7980
public native int getGameVariable(GameVariable var);
8081

81-
public native double getLivingReward();
82-
public native void setLivingReward(double livingReward);
83-
public native double getDeathPenalty();
84-
public native void setDeathPenalty(double deathPenalty);
82+
public native double getLivingReward();
83+
public native void setLivingReward(double livingReward);
84+
public native double getDeathPenalty();
85+
public native void setDeathPenalty(double deathPenalty);
8586

86-
public native double getLastReward();
87-
public native double getSummaryReward();
87+
public native double getLastReward();
88+
public native double getSummaryReward();
8889

8990
public native void setViZDoomPath(String path);
9091
public native void setDoomGamePath(String path);
@@ -93,18 +94,18 @@ public Mode getMode(){
9394
public native void setDoomSkill(int skill);
9495
public native void setDoomConfigPath(String path);
9596

96-
public native int getSeed();
97-
public native void setSeed(int seed);
97+
public native int getSeed();
98+
public native void setSeed(int seed);
9899

99-
public native int getEpisodeStartTime();
100-
public native void setEpisodeStartTime(int tics);
100+
public native int getEpisodeStartTime();
101+
public native void setEpisodeStartTime(int tics);
101102

102-
public native int getEpisodeTimeout();
103-
public native void setEpisodeTimeout(int tics);
103+
public native int getEpisodeTimeout();
104+
public native void setEpisodeTimeout(int tics);
104105

105106
public native int getEpisodeTime();
106107

107-
public native void setScreenResolution(ScreenResolution resolution);
108+
public native void setScreenResolution(ScreenResolution resolution);
108109
public native void setScreenFormat(ScreenFormat format);
109110
public native void setRenderHud(boolean hud);
110111
public native void setRenderWeapon(boolean weapon);

vizdoom_api_bindings/java/ViZDoomGameJava.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ JNIEXPORT jobject JNICALL Java_DoomGame_getState
494494
}
495495
env->ReleaseIntArrayElements(jbuffer, oarr, NULL);
496496

497-
uint8_t *pointer;
497+
boost::uint8_t *pointer;
498498
pointer=statec.imageBuffer;
499499
jintArray jbuffer2 = env->NewIntArray(rozmiar);
500500
oarr = env->GetIntArrayElements(jbuffer2, NULL);
@@ -876,7 +876,7 @@ JNIEXPORT jintArray JNICALL Java_DoomGame_getGameScreen
876876
int rozmiar=game->getScreenSize();
877877
std::vector<int> ourvector;
878878

879-
uint8_t *pointer;
879+
boost::uint8_t *pointer;
880880
pointer=game->getGameScreen();
881881
jintArray jbuffer = env->NewIntArray(rozmiar);
882882
jint *oarr;

vizdoom_api_src/ViZDoomDefines.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
#ifndef __VIZDOOM_DEFINES_H__
22
#define __VIZDOOM_DEFINES_H__
33

4-
#include <cstdlib>
4+
#include <boost/cstdint.hpp>
55
#include <vector>
66

77
namespace vizdoom{
88

99
#define VIZDOOM_API_VERSION_STR "1.0.0"
1010
#define VIZDOOM_API_VERSION_INT 100
1111

12-
typedef unsigned char uint8_t;
12+
typedef boost::uint8_t uint8_t;
1313

1414
struct GameState {
1515
unsigned int number;

vizdoom_src/src/d_main.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1025,7 +1025,7 @@ void D_DoomLoop ()
10251025
vizdoom_time = I_GetTime (true);
10261026
I_WaitForTic(vizdoom_time);
10271027
//I_WaitForTic(gametic + 1);
1028-
D_ProcessEvents ();
1028+
//D_ProcessEvents ();
10291029
}
10301030

10311031
G_BuildTiccmd (&netcmds[consoleplayer][maketic%BACKUPTICS]);

vizdoom_src/src/vizdoom_game.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ void ViZDoom_GameVarsInit(){
110110
}
111111

112112
void ViZDoom_GameVarsTic(){
113+
113114
vizdoomGameVars->GAME_TIC = gametic;
114115
vizdoomGameVars->GAME_STATE = gamestate;
115116
vizdoomGameVars->GAME_ACTION = gameaction;
@@ -176,6 +177,7 @@ void ViZDoom_GameVarsTic(){
176177
vizdoomGameVars->PLAYER_AMMO[i] = ViZDoom_CheckSlotAmmo(i);
177178
vizdoomGameVars->PLAYER_WEAPON[i] = ViZDoom_CheckSlotWeapons(i);
178179
}
180+
179181
}
180182

181183
void ViZDoom_GameVarsClose(){

0 commit comments

Comments
 (0)