diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..5db72ad --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,27 @@ +name: 'Build' + +on: + - push + - pull_request + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + with: + submodules: true + - name: Install Dependencies + run: | + apt-get update + apt-get install --no-install-recommends -y build-essential cmake ninja-build libopenal-dev libsdl2-dev + - name: Build Desktop + run: | + cd platforms/sdl + mkdir build + cd build + cmake -GNinja .. + cmake --build . + - name: Build WASM + run: ./build-wasm.sh diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 3a4f199..581cfc1 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -274,3 +274,11 @@ else() find_package(OpenGL REQUIRED) target_link_libraries(reminecraftpe-core PUBLIC OpenGL::OpenGL OpenGL::GLU) endif() + +# Sound Data +if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../sound_data/sounds.h") + if(NOT DEFINED ENV{CI}) + message(WARNING "Missing sound data! Did you run tools/grabsounds.py?") + endif() + target_compile_definitions(reminecraftpe-core PRIVATE MISSING_SOUND_DATA) +endif() diff --git a/source/client/sound/SoundData.cpp b/source/client/sound/SoundData.cpp index 7650d8f..76c283f 100644 --- a/source/client/sound/SoundData.cpp +++ b/source/client/sound/SoundData.cpp @@ -15,4 +15,6 @@ // Check the readme for a guide on how to extract game sounds from the // mcpe01_canada.apk file. // -------------------------------------------------------------------- +#ifndef MISSING_SOUND_DATA #include "../../sound_data/sounds.h" +#endif diff --git a/source/client/sound/SoundEngine.cpp b/source/client/sound/SoundEngine.cpp index b2f5829..f053c56 100644 --- a/source/client/sound/SoundEngine.cpp +++ b/source/client/sound/SoundEngine.cpp @@ -23,6 +23,7 @@ void SoundEngine::init(Options* options) // TODO: Who's the genius who decided it'd be better to check a name string rather than an enum? m_pOptions = options; +#ifndef MISSING_SOUND_DATA m_repository.add("step.cloth", SA_cloth1); m_repository.add("step.cloth", SA_cloth2); m_repository.add("step.cloth", SA_cloth3); @@ -56,6 +57,7 @@ void SoundEngine::init(Options* options) m_repository.add("random.splash", SA_splash); m_repository.add("random.explode", SA_explode); m_repository.add("random.click", SA_click); +#endif } void SoundEngine::play(const std::string& name)