Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Y
ygopro
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
YGOPRO-520DIY
ygopro
Commits
bfcb4afc
Commit
bfcb4afc
authored
May 09, 2025
by
nanahira
Committed by
GitHub
May 09, 2025
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add miniaudio (#2727)
parent
0b36a716
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
522 additions
and
111 deletions
+522
-111
.github/workflows/build.yml
.github/workflows/build.yml
+107
-15
.gitignore
.gitignore
+1
-0
gframe/duelclient.cpp
gframe/duelclient.cpp
+1
-0
gframe/game.cpp
gframe/game.cpp
+2
-2
gframe/premake5.lua
gframe/premake5.lua
+28
-13
gframe/sound_manager.cpp
gframe/sound_manager.cpp
+135
-46
gframe/sound_manager.h
gframe/sound_manager.h
+18
-2
premake/miniaudio/premake5.lua
premake/miniaudio/premake5.lua
+131
-0
premake5.lua
premake5.lua
+98
-33
sound/files.txt
sound/files.txt
+1
-0
No files found.
.github/workflows/build.yml
View file @
bfcb4afc
...
...
@@ -12,6 +12,7 @@ jobs:
fail-fast
:
false
matrix
:
os
:
[
windows-2019
,
windows-2022
]
audiolib
:
[
miniaudio
,
irrklang
]
runs-on
:
${{ matrix.os }}
...
...
@@ -90,13 +91,75 @@ jobs:
7z x ${{ steps.sqlite.outputs.filepath }}
move sqlite-amalgamation-3490100 sqlite3
-
name
:
Download miniaudio
if
:
matrix.audiolib == 'miniaudio'
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
cd miniaudio
xcopy /Y extras\miniaudio_split\miniaudio.* .
cd ..
-
name
:
Download ogg
if
:
matrix.audiolib == 'miniaudio'
id
:
ogg
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/ogg/releases/download/v1.3.5/libogg-1.3.5.tar.gz
-
name
:
Extract ogg
if
:
matrix.audiolib == 'miniaudio'
run
:
|
tar xf ${{ steps.ogg.outputs.filepath }}
move libogg-1.3.5 miniaudio/external/ogg
-
name
:
Download opus
if
:
matrix.audiolib == 'miniaudio'
id
:
opus
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/opus/releases/download/v1.5.2/opus-1.5.2.tar.gz
-
name
:
Extract opus
if
:
matrix.audiolib == 'miniaudio'
run
:
|
tar xf ${{ steps.opus.outputs.filepath }}
move opus-1.5.2 miniaudio/external/opus
-
name
:
Download opusfile
if
:
matrix.audiolib == 'miniaudio'
id
:
opusfile
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/opusfile/releases/download/v0.12/opusfile-0.12.tar.gz
-
name
:
Extract opusfile
if
:
matrix.audiolib == 'miniaudio'
run
:
|
tar xf ${{ steps.opusfile.outputs.filepath }}
move opusfile-0.12 miniaudio/external/opusfile
-
name
:
Download vorbis
if
:
matrix.audiolib == 'miniaudio'
id
:
vorbis
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://github.com/xiph/vorbis/releases/download/v1.3.7/libvorbis-1.3.7.tar.gz
-
name
:
Extract vorbis
if
:
matrix.audiolib == 'miniaudio'
run
:
|
tar xf ${{ steps.vorbis.outputs.filepath }}
move libvorbis-1.3.7 miniaudio/external/vorbis
-
name
:
Download irrKlang
if
:
matrix.audiolib == 'irrklang'
id
:
irrKlang
uses
:
mercury233/action-cache-download-file@v1.0.0
with
:
url
:
https://www.ambiera.at/downloads/irrKlang-32bit-1.6.0.zip
-
name
:
Extract irrKlang
if
:
matrix.audiolib == 'irrklang'
run
:
|
7z x ${{ steps.irrKlang.outputs.filepath }}
move irrKlang-1.6.0 irrKlang
...
...
@@ -134,16 +197,26 @@ jobs:
xcopy /E premake\* .
xcopy /E resource\* .
-
name
:
Use premake to generate Visual Studio solution (2019)
if
:
matrix.os == 'windows-2019'
-
name
:
Use premake to generate Visual Studio solution (2019
, miniaudio
)
if
:
matrix.os == 'windows-2019'
&& matrix.audiolib == 'miniaudio'
run
:
|
.\premake5.exe vs2019 --winxp-support
-
name
:
Use premake to generate Visual Studio solution (2022)
if
:
matrix.os == 'windows-2022'
-
name
:
Use premake to generate Visual Studio solution (2022
, miniaudio
)
if
:
matrix.os == 'windows-2022'
&& matrix.audiolib == 'miniaudio'
run
:
|
.\premake5.exe vs2022
-
name
:
Use premake to generate Visual Studio solution (2019, irrKlang)
if
:
matrix.os == 'windows-2019' && matrix.audiolib == 'irrklang'
run
:
|
.\premake5.exe vs2019 --winxp-support --audio-lib=irrklang
-
name
:
Use premake to generate Visual Studio solution (2022, irrKlang)
if
:
matrix.os == 'windows-2022' && matrix.audiolib == 'irrklang'
run
:
|
.\premake5.exe vs2022 --audio-lib=irrklang
-
name
:
Add msbuild to PATH
uses
:
microsoft/setup-msbuild@v2
...
...
@@ -154,7 +227,7 @@ jobs:
-
name
:
Upload build artifacts
uses
:
actions/upload-artifact@v4
with
:
name
:
YGOPro-${{ matrix.os }}
name
:
YGOPro-${{ matrix.os }}
-${{ matrix.audiolib }}
path
:
|
bin/release/YGOPro.exe
...
...
@@ -197,7 +270,7 @@ jobs:
-
name
:
Install dependencies
run
:
|
sudo apt-get update
sudo apt-get install -y libevent-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libsqlite3-dev libxxf86vm-dev
sudo apt-get install -y libevent-dev libfreetype6-dev libgl1-mesa-dev libglu1-mesa-dev libsqlite3-dev libxxf86vm-dev
libopusfile-dev libvorbis-dev
-
name
:
Download premake
id
:
premake
...
...
@@ -222,6 +295,13 @@ jobs:
tar xf ${{ steps.lua.outputs.filepath }}
mv lua-5.4.7 lua
-
name
:
Download miniaudio
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
cd miniaudio
cp extras/miniaudio_split/miniaudio.* .
cd ..
-
name
:
Download irrlicht
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
...
...
@@ -234,8 +314,8 @@ jobs:
-
name
:
Use premake to generate make files
run
:
|
./premake5 gmake \
--
no-use-irrklang
\
--
freetype-include-dir="/usr/include/freetype2
"
--
freetype-include-dir="/usr/include/freetype2"
\
--
opus-include-dir="/usr/include/opus
"
-
name
:
Make
run
:
|
...
...
@@ -283,9 +363,9 @@ jobs:
# git pull origin master
# cd ..
#
- name: Install dependencies
#
run: |
# brew install freetype libevent libx11 sqlite zlib
-
name
:
Install dependencies
run
:
|
brew install freetype libevent libx11 sqlite opus opusfile libvorbis
-
name
:
Download premake
id
:
premake
...
...
@@ -310,6 +390,13 @@ jobs:
tar xf ${{ steps.lua.outputs.filepath }}
mv lua-5.4.7 lua
-
name
:
Download miniaudio
run
:
|
git clone --depth=1 --branch 0.11.22 https://github.com/mackron/miniaudio
cd miniaudio
cp extras/miniaudio_split/miniaudio.* .
cd ..
-
name
:
Download irrlicht
run
:
|
git clone --depth=1 https://github.com/mercury233/irrlicht
...
...
@@ -324,21 +411,26 @@ jobs:
run
:
|
./premake5 gmake \
--cc=clang \
--
no-use-irrklang
\
--
freetype-include-dir="/usr/local/include/freetype2
"
--
freetype-include-dir="/usr/local/include/freetype2"
\
--
opus-include-dir="/usr/local/include/opus
"
-
name
:
Use premake to generate make files (ARM64)
if
:
runner.arch == 'ARM64'
run
:
|
./premake5 gmake \
--cc=clang \
--no-use-irrklang \
--event-include-dir="/opt/homebrew/include" \
--event-lib-dir="/opt/homebrew/lib" \
--freetype-include-dir="/opt/homebrew/include/freetype2" \
--freetype-lib-dir="/opt/homebrew/lib" \
--sqlite-include-dir="/opt/homebrew/opt/sqlite/include" \
--sqlite-lib-dir="/opt/homebrew/opt/sqlite/lib"
--sqlite-lib-dir="/opt/homebrew/opt/sqlite/lib" \
--miniaudio-include-dir="/opt/homebrew/include" \
--miniaudio-lib-dir="/opt/homebrew/lib" \
--opus-include-dir="/opt/homebrew/include/opus" \
--opus-lib-dir="/opt/homebrew/lib" \
--vorbis-include-dir="/opt/homebrew/include" \
--vorbis-lib-dir="/opt/homebrew/lib"
-
name
:
Make
run
:
|
...
...
.gitignore
View file @
bfcb4afc
...
...
@@ -32,6 +32,7 @@
/irrklang
/ikpmp3
/lua
/miniaudio
/sqlite3
/gframe/*.ico
/gframe/ygopro.rc
...
...
gframe/duelclient.cpp
View file @
bfcb4afc
...
...
@@ -3034,6 +3034,7 @@ bool DuelClient::ClientAnalyze(unsigned char* msg, int len) {
case
MSG_CHAIN_DISABLED
:
{
int
ct
=
BufferIO
::
ReadUInt8
(
pbuf
);
if
(
!
mainGame
->
dInfo
.
isReplay
||
!
mainGame
->
dInfo
.
isReplaySkiping
)
{
soundManager
.
PlaySoundEffect
(
SOUND_NEGATE
);
mainGame
->
showcardcode
=
mainGame
->
dField
.
chains
[
ct
-
1
].
code
;
mainGame
->
showcarddif
=
0
;
mainGame
->
showcard
=
3
;
...
...
gframe/game.cpp
View file @
bfcb4afc
...
...
@@ -1411,7 +1411,7 @@ void Game::LoadConfig() {
gameConf
.
window_height
=
std
::
strtol
(
valbuf
,
nullptr
,
10
);
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"resize_popup_menu"
))
{
gameConf
.
resize_popup_menu
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
#ifdef YGOPRO_USE_
IRRKLANG
#ifdef YGOPRO_USE_
AUDIO
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"enable_sound"
))
{
gameConf
.
enable_sound
=
std
::
strtol
(
valbuf
,
nullptr
,
10
)
>
0
;
}
else
if
(
!
std
::
strcmp
(
strbuf
,
"sound_volume"
))
{
...
...
@@ -1527,7 +1527,7 @@ void Game::SaveConfig() {
std
::
fprintf
(
fp
,
"window_width = %d
\n
"
,
gameConf
.
window_width
);
std
::
fprintf
(
fp
,
"window_height = %d
\n
"
,
gameConf
.
window_height
);
std
::
fprintf
(
fp
,
"resize_popup_menu = %d
\n
"
,
gameConf
.
resize_popup_menu
?
1
:
0
);
#ifdef YGOPRO_USE_
IRRKLANG
#ifdef YGOPRO_USE_
AUDIO
std
::
fprintf
(
fp
,
"enable_sound = %d
\n
"
,
(
chkEnableSound
->
isChecked
()
?
1
:
0
));
std
::
fprintf
(
fp
,
"enable_music = %d
\n
"
,
(
chkEnableMusic
->
isChecked
()
?
1
:
0
));
std
::
fprintf
(
fp
,
"#Volume of sound and music, between 0 and 100
\n
"
);
...
...
gframe/premake5.lua
View file @
bfcb4afc
...
...
@@ -10,10 +10,6 @@ project "YGOPro"
includedirs
{
"../ocgcore"
}
links
{
"ocgcore"
,
"clzma"
,
"cspmemvfs"
,
LUA_LIB_NAME
,
"sqlite3"
,
"irrlicht"
,
"freetype"
,
"event"
}
if
BUILD_IKPMP3
then
links
{
"ikpmp3"
}
end
if
BUILD_EVENT
then
includedirs
{
"../event/include"
}
else
...
...
@@ -42,18 +38,38 @@ project "YGOPro"
libdirs
{
SQLITE_LIB_DIR
}
end
if
USE_IRRKLANG
then
defines
{
"YGOPRO_USE_IRRKLANG"
}
includedirs
{
IRRKLANG_INCLUDE_DIR
}
if
not
IRRKLANG_PRO
then
libdirs
{
IRRKLANG_LIB_DIR
}
if
USE_AUDIO
then
defines
{
"YGOPRO_USE_AUDIO"
}
if
AUDIO_LIB
==
"miniaudio"
then
defines
{
"YGOPRO_USE_MINIAUDIO"
}
includedirs
{
"../miniaudio"
}
links
{
"miniaudio"
}
if
MINIAUDIO_SUPPORT_OPUS_VORBIS
then
defines
{
"YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS"
}
includedirs
{
"../miniaudio/extras/decoders/libopus"
,
"../miniaudio/extras/decoders/libvorbis"
}
if
not
MINIAUDIO_BUILD_OPUS_VORBIS
then
links
{
"opusfile"
,
"vorbisfile"
,
"opus"
,
"vorbis"
,
"ogg"
}
libdirs
{
OPUS_LIB_DIR
,
VORBIS_LIB_DIR
,
OGG_LIBDIR
}
end
end
end
if
AUDIO_LIB
==
"irrklang"
then
defines
{
"YGOPRO_USE_IRRKLANG"
}
includedirs
{
IRRKLANG_INCLUDE_DIR
}
if
not
IRRKLANG_PRO
then
libdirs
{
IRRKLANG_LIB_DIR
}
end
if
IRRKLANG_PRO_BUILD_IKPMP3
then
links
{
"ikpmp3"
}
end
end
end
filter
"system:windows"
defines
{
"_IRR_WCHAR_FILESYSTEM"
}
files
"ygopro.rc"
if
USE_IRRKLANG
then
links
{
"opengl32"
,
"ws2_32"
,
"winmm"
,
"gdi32"
,
"kernel32"
,
"user32"
,
"imm32"
}
if
USE_AUDIO
and
AUDIO_LIB
==
"irrklang"
then
links
{
"irrKlang"
}
if
IRRKLANG_PRO
then
defines
{
"IRRKLANG_STATIC"
}
...
...
@@ -64,7 +80,6 @@ project "YGOPro"
filter
{}
end
end
links
{
"opengl32"
,
"ws2_32"
,
"winmm"
,
"gdi32"
,
"kernel32"
,
"user32"
,
"imm32"
}
filter
"not system:windows"
links
{
"event_pthreads"
,
"dl"
,
"pthread"
}
filter
"system:macosx"
...
...
@@ -74,12 +89,12 @@ project "YGOPro"
buildoptions
{
"--target=arm64-apple-macos12"
}
linkoptions
{
"-arch arm64"
}
end
if
USE_
IRRKLANG
then
if
USE_
AUDIO
and
AUDIO_LIB
==
"irrklang"
then
links
{
"irrklang"
}
end
filter
"system:linux"
links
{
"GL"
,
"X11"
,
"Xxf86vm"
}
if
USE_
IRRKLANG
then
if
USE_
AUDIO
and
AUDIO_LIB
==
"irrklang"
then
links
{
"IrrKlang"
}
linkoptions
{
IRRKLANG_LINK_RPATH
}
end
gframe/sound_manager.cpp
View file @
bfcb4afc
This diff is collapsed.
Click to expand it.
gframe/sound_manager.h
View file @
bfcb4afc
...
...
@@ -3,6 +3,9 @@
#include "game.h"
#include "../ocgcore/mtrandom.h"
#ifdef YGOPRO_USE_MINIAUDIO
#include <miniaudio.h>
#endif
#ifdef YGOPRO_USE_IRRKLANG
#include <irrKlang.h>
#endif
...
...
@@ -12,8 +15,19 @@ namespace ygo {
class
SoundManager
{
private:
std
::
vector
<
std
::
wstring
>
BGMList
[
8
];
int
bgm_scene
;
int
bgm_scene
{}
;
mt19937
rnd
;
#ifdef YGOPRO_USE_MINIAUDIO
ma_engine_config
engineConfig
;
#ifdef YGOPRO_MINIAUDIO_SUPPORT_OPUS_VORBIS
ma_resource_manager_config
resourceManagerConfig
;
ma_resource_manager
resourceManager
;
#endif
ma_engine
engineSound
;
ma_engine
engineMusic
;
ma_sound
soundBGM
;
wchar_t
currentPlayingMusic
[
1024
]{};
#endif
#ifdef YGOPRO_USE_IRRKLANG
irrklang
::
ISoundEngine
*
engineSound
;
irrklang
::
ISoundEngine
*
engineMusic
;
...
...
@@ -26,7 +40,8 @@ public:
void
RefreshBGMList
();
void
PlaySoundEffect
(
int
sound
);
void
PlayDialogSound
(
irr
::
gui
::
IGUIElement
*
element
);
void
PlayMusic
(
char
*
song
,
bool
loop
);
bool
IsPlayingMusic
(
wchar_t
*
music
=
0
);
void
PlayMusic
(
wchar_t
*
music
,
bool
loop
);
void
PlayBGM
(
int
scene
);
void
StopBGM
();
void
SetSoundVolume
(
double
volume
);
...
...
@@ -45,6 +60,7 @@ extern SoundManager soundManager;
#define SOUND_DESTROYED 108
#define SOUND_BANISHED 109
#define SOUND_TOKEN 110
#define SOUND_NEGATE 111
#define SOUND_ATTACK 201
#define SOUND_DIRECT_ATTACK 202
...
...
premake/miniaudio/premake5.lua
0 → 100644
View file @
bfcb4afc
project
"miniaudio"
kind
"StaticLib"
files
{
"miniaudio.c"
,
"miniaudio.h"
}
defines
{
"MA_NO_ENCODING"
,
"MA_NO_GENERATION"
,
"MA_NO_NEON"
}
if
MINIAUDIO_SUPPORT_OPUS_VORBIS
then
files
{
"extras/decoders/libopus/*"
,
"extras/decoders/libvorbis/*"
}
if
MINIAUDIO_BUILD_OPUS_VORBIS
then
files
{
"external/ogg/src/bitwise.c"
,
"external/ogg/src/framing.c"
,
"external/opus/src/opus.c"
,
"external/opus/src/opus_decoder.c"
,
"external/opus/src/opus_multistream.c"
,
"external/opus/src/opus_multistream_decoder.c"
,
"external/opus/celt/bands.c"
,
"external/opus/celt/celt.c"
,
"external/opus/celt/celt_decoder.c"
,
"external/opus/celt/celt_lpc.c"
,
"external/opus/celt/cwrs.c"
,
"external/opus/celt/entcode.c"
,
"external/opus/celt/entdec.c"
,
"external/opus/celt/entenc.c"
,
"external/opus/celt/kiss_fft.c"
,
"external/opus/celt/laplace.c"
,
"external/opus/celt/mathops.c"
,
"external/opus/celt/mdct.c"
,
"external/opus/celt/modes.c"
,
"external/opus/celt/pitch.c"
,
"external/opus/celt/quant_bands.c"
,
"external/opus/celt/rate.c"
,
"external/opus/celt/vq.c"
,
"external/opus/celt/x86/pitch_avx.c"
,
"external/opus/celt/x86/pitch_sse.c"
,
"external/opus/celt/x86/vq_sse2.c"
,
"external/opus/celt/x86/x86_celt_map.c"
,
"external/opus/celt/x86/x86cpu.c"
,
"external/opus/silk/bwexpander.c"
,
"external/opus/silk/bwexpander_32.c"
,
"external/opus/silk/CNG.c"
,
"external/opus/silk/code_signs.c"
,
"external/opus/silk/dec_API.c"
,
"external/opus/silk/decode_core.c"
,
"external/opus/silk/decode_frame.c"
,
"external/opus/silk/decode_indices.c"
,
"external/opus/silk/decode_parameters.c"
,
"external/opus/silk/decode_pitch.c"
,
"external/opus/silk/decode_pulses.c"
,
"external/opus/silk/decoder_set_fs.c"
,
"external/opus/silk/gain_quant.c"
,
"external/opus/silk/init_decoder.c"
,
"external/opus/silk/lin2log.c"
,
"external/opus/silk/log2lin.c"
,
"external/opus/silk/LPC_analysis_filter.c"
,
"external/opus/silk/LPC_fit.c"
,
"external/opus/silk/LPC_inv_pred_gain.c"
,
"external/opus/silk/NLSF_decode.c"
,
"external/opus/silk/NLSF_stabilize.c"
,
"external/opus/silk/NLSF_unpack.c"
,
"external/opus/silk/NLSF2A.c"
,
"external/opus/silk/pitch_est_tables.c"
,
"external/opus/silk/PLC.c"
,
"external/opus/silk/resampler.c"
,
"external/opus/silk/resampler_private_AR2.c"
,
"external/opus/silk/resampler_private_down_FIR.c"
,
"external/opus/silk/resampler_private_IIR_FIR.c"
,
"external/opus/silk/resampler_private_up2_HQ.c"
,
"external/opus/silk/resampler_rom.c"
,
"external/opus/silk/shell_coder.c"
,
"external/opus/silk/sort.c"
,
"external/opus/silk/stereo_decode_pred.c"
,
"external/opus/silk/stereo_MS_to_LR.c"
,
"external/opus/silk/sum_sqr_shift.c"
,
"external/opus/silk/table_LSF_cos.c"
,
"external/opus/silk/tables_gain.c"
,
"external/opus/silk/tables_LTP.c"
,
"external/opus/silk/tables_NLSF_CB_NB_MB.c"
,
"external/opus/silk/tables_NLSF_CB_WB.c"
,
"external/opus/silk/tables_other.c"
,
"external/opus/silk/tables_pitch_lag.c"
,
"external/opus/silk/tables_pulses_per_block.c"
,
"external/opusfile/src/info.c"
,
"external/opusfile/src/internal.c"
,
"external/opusfile/src/opusfile.c"
,
"external/opusfile/src/stream.c"
,
"external/vorbis/lib/bitrate.c"
,
"external/vorbis/lib/block.c"
,
"external/vorbis/lib/codebook.c"
,
"external/vorbis/lib/envelope.c"
,
"external/vorbis/lib/floor0.c"
,
"external/vorbis/lib/floor1.c"
,
"external/vorbis/lib/info.c"
,
"external/vorbis/lib/lpc.c"
,
"external/vorbis/lib/lsp.c"
,
"external/vorbis/lib/mapping0.c"
,
"external/vorbis/lib/mdct.c"
,
"external/vorbis/lib/psy.c"
,
"external/vorbis/lib/registry.c"
,
"external/vorbis/lib/res0.c"
,
"external/vorbis/lib/sharedbook.c"
,
"external/vorbis/lib/smallft.c"
,
"external/vorbis/lib/synthesis.c"
,
"external/vorbis/lib/vorbisfile.c"
,
"external/vorbis/lib/window.c"
,
}
includedirs
{
"external/ogg/include"
,
"external/opus/include"
,
"external/opus/celt"
,
"external/opus/silk"
,
"external/opusfile/include"
,
"external/vorbis/include"
,
}
defines
{
"OPUS_BUILD"
,
"USE_ALLOCA"
,
"HAVE_LRINTF"
,
"OP_HAVE_LRINTF"
,
"OPUS_X86_PRESUME_SSE"
,
"OPUS_X86_PRESUME_SSE2"
,
"OPUS_HAVE_RTCD"
,
"OPUS_X86_MAY_HAVE_SSE"
,
"OPUS_X86_MAY_HAVE_SSE4_1"
,
"OPUS_X86_MAY_HAVE_AVX2"
,
}
else
includedirs
{
OPUS_INCLUDE_DIR
,
VORBIS_INCLUDE_DIR
,
OGG_INCLUDE_DIR
}
end
end
filter
"system:linux"
links
{
"dl"
,
"pthread"
,
"m"
}
premake5.lua
View file @
bfcb4afc
-- default global settings
BUILD_LUA
=
true
LUA_LIB_NAME
=
"lua"
BUILD_EVENT
=
os
.
istarget
(
"windows"
)
BUILD_FREETYPE
=
os
.
istarget
(
"windows"
)
BUILD_SQLITE
=
os
.
istarget
(
"windows"
)
BUILD_IRRLICHT
=
true
USE_IRRKLANG
=
true
USE_AUDIO
=
true
AUDIO_LIB
=
"miniaudio"
MINIAUDIO_SUPPORT_OPUS_VORBIS
=
true
MINIAUDIO_BUILD_OPUS_VORBIS
=
os
.
istarget
(
"windows"
)
IRRKLANG_PRO
=
false
LUA_LIB_NAME
=
"lua"
IRRKLANG_PRO_BUILD_IKPMP3
=
false
-- read settings from command line or environment variables
...
...
@@ -15,7 +21,7 @@ newoption { trigger = "build-lua", category = "YGOPro - lua", description = "" }
newoption
{
trigger
=
"no-build-lua"
,
category
=
"YGOPro - lua"
,
description
=
""
}
newoption
{
trigger
=
"lua-include-dir"
,
category
=
"YGOPro - lua"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"lua-lib-dir"
,
category
=
"YGOPro - lua"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"lua-lib-name"
,
category
=
"YGOPro - lua"
,
description
=
""
,
value
=
"NAME"
,
default
=
"lua"
}
newoption
{
trigger
=
"lua-lib-name"
,
category
=
"YGOPro - lua"
,
description
=
""
,
value
=
"NAME"
,
default
=
LUA_LIB_NAME
}
newoption
{
trigger
=
"build-event"
,
category
=
"YGOPro - event"
,
description
=
""
}
newoption
{
trigger
=
"no-build-event"
,
category
=
"YGOPro - event"
,
description
=
""
}
...
...
@@ -37,8 +43,24 @@ newoption { trigger = "no-build-irrlicht", category = "YGOPro - irrlicht", descr
newoption
{
trigger
=
"irrlicht-include-dir"
,
category
=
"YGOPro - irrlicht"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"irrlicht-lib-dir"
,
category
=
"YGOPro - irrlicht"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"use-irrklang"
,
category
=
"YGOPro - irrklang"
,
description
=
""
}
newoption
{
trigger
=
"no-use-irrklang"
,
category
=
"YGOPro - irrklang"
,
description
=
""
}
newoption
{
trigger
=
"no-audio"
,
category
=
"YGOPro"
,
description
=
""
}
newoption
{
trigger
=
"audio-lib"
,
category
=
"YGOPro"
,
description
=
""
,
value
=
"miniaudio, irrklang"
,
default
=
AUDIO_LIB
}
newoption
{
trigger
=
"miniaudio-include-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"miniaudio-lib-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"miniaudio-support-opus-vorbis"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
}
newoption
{
trigger
=
"no-miniaudio-support-opus-vorbis"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
}
newoption
{
trigger
=
"build-opus-vorbis"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
}
newoption
{
trigger
=
"no-build-opus-vorbis"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
}
newoption
{
trigger
=
"opus-include-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"opus-lib-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"vorbis-include-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"vorbis-lib-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"ogg-include-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"ogg-lib-dir"
,
category
=
"YGOPro - miniaudio"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"use-irrklang"
,
category
=
"YGOPro - irrklang"
,
description
=
"Deprecated, use audio-lib=irrklang"
}
newoption
{
trigger
=
"no-use-irrklang"
,
category
=
"YGOPro - irrklang"
,
description
=
"Deprecated, use no-audio"
}
newoption
{
trigger
=
"irrklang-include-dir"
,
category
=
"YGOPro - irrklang"
,
description
=
""
,
value
=
"PATH"
}
newoption
{
trigger
=
"irrklang-lib-dir"
,
category
=
"YGOPro - irrklang"
,
description
=
""
,
value
=
"PATH"
}
...
...
@@ -108,37 +130,75 @@ if not BUILD_IRRLICHT then
IRRLICHT_LIB_DIR
=
GetParam
(
"irrlicht-lib-dir"
)
or
os
.
findlib
(
"irrlicht"
)
end
if
GetParam
(
"use-irrklang"
)
then
USE_IRRKLANG
=
true
if
GetParam
(
"no-audio"
)
then
USE_AUDIO
=
false
elseif
GetParam
(
"no-use-miniaudio"
)
then
print
(
"Warning: --no-use-miniaudio is deprecated, use --no-audio"
)
USE_AUDIO
=
false
elseif
GetParam
(
"use-miniaudio"
)
then
print
(
"Warning: --use-miniaudio is deprecated, use --audio-lib=miniaudio"
)
USE_AUDIO
=
true
AUDIO_LIB
=
"miniaudio"
elseif
GetParam
(
"no-use-irrklang"
)
then
USE_IRRKLANG
=
false
end
if
USE_IRRKLANG
then
IRRKLANG_INCLUDE_DIR
=
GetParam
(
"irrklang-include-dir"
)
or
"../irrklang/include"
if
os
.
istarget
(
"windows"
)
then
IRRKLANG_LIB_DIR
=
"../irrklang/lib/Win32-visualStudio"
elseif
os
.
istarget
(
"linux"
)
then
IRRKLANG_LIB_DIR
=
"../irrklang/bin/linux-gcc-64"
IRRKLANG_LINK_RPATH
=
"-Wl,-rpath=./irrklang/bin/linux-gcc-64/"
elseif
os
.
istarget
(
"macosx"
)
then
IRRKLANG_LIB_DIR
=
"../irrklang/bin/macosx-gcc"
end
IRRKLANG_LIB_DIR
=
GetParam
(
"irrklang-lib-dir"
)
or
IRRKLANG_LIB_DIR
print
(
"Warning: --no-use-irrklang is deprecated, use --no-audio"
)
USE_AUDIO
=
false
elseif
GetParam
(
"use-irrklang"
)
then
print
(
"Warning: --use-irrklang is deprecated, use --audio-lib=irrklang"
)
USE_AUDIO
=
true
AUDIO_LIB
=
"irrklang"
end
if
GetParam
(
"irrklang-pro"
)
and
os
.
istarget
(
"windows"
)
then
IRRKLANG_PRO
=
true
elseif
GetParam
(
"no-irrklang-pro"
)
then
IRRKLANG_PRO
=
false
end
if
IRRKLANG_PRO
then
-- irrklang pro can't use the pro lib to debug
IRRKLANG_PRO_RELEASE_LIB_DIR
=
GetParam
(
"irrklang-pro-release-lib-dir"
)
or
"../irrklang/lib/Win32-vs2019"
IRRKLANG_PRO_DEBUG_LIB_DIR
=
GetParam
(
"irrklang-pro-debug-lib-dir"
)
or
"../irrklang/lib/Win32-visualStudio-debug"
if
USE_AUDIO
then
AUDIO_LIB
=
GetParam
(
"audio-lib"
)
or
AUDIO_LIB
if
AUDIO_LIB
==
"miniaudio"
then
if
GetParam
(
"miniaudio-support-opus-vorbis"
)
then
MINIAUDIO_SUPPORT_OPUS_VORBIS
=
true
elseif
GetParam
(
"no-miniaudio-support-opus-vorbis"
)
then
MINIAUDIO_SUPPORT_OPUS_VORBIS
=
false
end
if
MINIAUDIO_SUPPORT_OPUS_VORBIS
then
if
GetParam
(
"no-build-opus-vorbis"
)
then
MINIAUDIO_BUILD_OPUS_VORBIS
=
false
elseif
GetParam
(
"build-opus-vorbis"
)
then
MINIAUDIO_BUILD_OPUS_VORBIS
=
true
end
if
not
MINIAUDIO_BUILD_OPUS_VORBIS
then
OPUS_INCLUDE_DIR
=
GetParam
(
"opus-include-dir"
)
or
os
.
findheader
(
"opus"
)
OPUS_LIB_DIR
=
GetParam
(
"opus-lib-dir"
)
or
os
.
findlib
(
"opusfile"
)
VORBIS_INCLUDE_DIR
=
GetParam
(
"vorbis-include-dir"
)
or
os
.
findheader
(
"vorbis"
)
VORBIS_LIB_DIR
=
GetParam
(
"vorbis-lib-dir"
)
or
os
.
findlib
(
"vorbis"
)
OGG_INCLUDE_DIR
=
GetParam
(
"ogg-include-dir"
)
or
os
.
findheader
(
"ogg"
)
OCG_LIB_DIR
=
GetParam
(
"ogg-lib-dir"
)
or
os
.
findlib
(
"ogg"
)
end
end
elseif
AUDIO_LIB
==
"irrklang"
then
print
(
"Warning: irrKlang is deprecated and may be removed in future, please consider switching to miniaudio"
)
IRRKLANG_INCLUDE_DIR
=
GetParam
(
"irrklang-include-dir"
)
or
"../irrklang/include"
if
os
.
istarget
(
"windows"
)
then
IRRKLANG_LIB_DIR
=
"../irrklang/lib/Win32-visualStudio"
elseif
os
.
istarget
(
"linux"
)
then
IRRKLANG_LIB_DIR
=
"../irrklang/bin/linux-gcc-64"
IRRKLANG_LINK_RPATH
=
"-Wl,-rpath=./irrklang/bin/linux-gcc-64/"
elseif
os
.
istarget
(
"macosx"
)
then
IRRKLANG_LIB_DIR
=
"../irrklang/bin/macosx-gcc"
end
IRRKLANG_LIB_DIR
=
GetParam
(
"irrklang-lib-dir"
)
or
IRRKLANG_LIB_DIR
if
GetParam
(
"irrklang-pro"
)
and
os
.
istarget
(
"windows"
)
then
IRRKLANG_PRO
=
true
elseif
GetParam
(
"no-irrklang-pro"
)
then
IRRKLANG_PRO
=
false
end
if
IRRKLANG_PRO
then
-- irrklang pro can't use the pro lib to debug
IRRKLANG_PRO_RELEASE_LIB_DIR
=
GetParam
(
"irrklang-pro-release-lib-dir"
)
or
"../irrklang/lib/Win32-vs2019"
IRRKLANG_PRO_DEBUG_LIB_DIR
=
GetParam
(
"irrklang-pro-debug-lib-dir"
)
or
"../irrklang/lib/Win32-visualStudio-debug"
end
IRRKLANG_PRO_BUILD_IKPMP3
=
GetParam
(
"build-ikpmp3"
)
or
IRRKLANG_PRO
else
error
(
"Unknown audio library: "
..
AUDIO_LIB
)
end
end
BUILD_IKPMP3
=
USE_IRRKLANG
and
(
GetParam
(
"build-ikpmp3"
)
or
IRRKLANG_PRO
)
if
GetParam
(
"winxp-support"
)
and
os
.
istarget
(
"windows"
)
then
WINXP_SUPPORT
=
true
end
...
...
@@ -233,6 +293,11 @@ workspace "YGOPro"
if
BUILD_SQLITE
then
include
"sqlite3"
end
if
BUILD_IKPMP3
then
include
"ikpmp3"
if
USE_AUDIO
then
if
AUDIO_LIB
==
"miniaudio"
then
include
"miniaudio"
end
if
IRRKLANG_PRO_BUILD_IKPMP3
then
include
"ikpmp3"
end
end
sound/files.txt
View file @
bfcb4afc
...
...
@@ -8,6 +8,7 @@ equip.wav
destroyed.wav
banished.wav
token.wav
negate.wav
attack.wav
directattack.wav
draw.wav
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment