Add squir... sound. Add sound
This commit is contained in:
parent
7edc413cdc
commit
e8c24e7e23
16
.github/prepare.py
vendored
16
.github/prepare.py
vendored
@ -128,14 +128,14 @@ for arch, platform, libc, statdyn, bplatform, runso
|
||||
( 'aarch64', 'darwin', 'macos', 'static', 'darwin', 'macos-12', '.dmg', True, True, None, 'dmg', 'arm64-mac-gcc-static', 'release', 10 ),
|
||||
# ( 'aarch64', 'darwin', 'macos', 'dynamic', 'darwin', 'macos-12', '.dmg', False, False, None, 'dmg', None, 'debug', 10 ), # macos-11.0 is x86_64 and I haven't yet figured out how to get homebrew to install aarch64 libs on x86_64
|
||||
# ( 'aarch64', 'darwin', 'macos', 'dynamic', 'darwin', 'macos-12', '.dmg', False, False, None, 'dmg', None, 'release', 10 ), # macos-11.0 is x86_64 and I haven't yet figured out how to get homebrew to install aarch64 libs on x86_64
|
||||
( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'i686-and-gcc-static', 'release', 10 ),
|
||||
( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'x86_64-and-gcc-static', 'release', 10 ),
|
||||
( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm-and-gcc-static', 'release', 10 ),
|
||||
( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm64-and-gcc-static', 'release', 10 ),
|
||||
# ( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'i686-and-gcc-static', 'release', 10 ),
|
||||
# ( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'x86_64-and-gcc-static', 'release', 10 ),
|
||||
# ( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm-and-gcc-static', 'release', 10 ),
|
||||
# ( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm64-and-gcc-static', 'release', 10 ),
|
||||
( 'wasm32', 'emscripten', 'emscripten', 'static', 'linux', 'ubuntu-20.04', '.tar', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'wasm32', 'emscripten', 'emscripten', 'static', 'linux', 'ubuntu-20.04', '.tar', True, True, None, 'emscripten', 'wasm32-ems-static', 'release', 10 ), # I have no idea how to separate debug info on emscripten
|
||||
]:
|
||||
|
@ -86,7 +86,7 @@ tpt_libs_debug = is_debug ? 'debug' : 'release'
|
||||
tpt_libs_variant = '@0@-@1@-@2@-@3@'.format(host_arch, host_platform, host_libc, tpt_libs_static)
|
||||
tpt_libs_vtag = get_option('tpt_libs_vtag')
|
||||
if tpt_libs_vtag == ''
|
||||
tpt_libs_vtag = 'v20240112165024'
|
||||
tpt_libs_vtag = 'v20240330234517'
|
||||
endif
|
||||
if tpt_libs_static != 'none'
|
||||
if tpt_libs_variant not in [
|
||||
|
BIN
resources/elements.wav.bz2
Normal file
BIN
resources/elements.wav.bz2
Normal file
Binary file not shown.
@ -118,3 +118,4 @@ endif
|
||||
data_files += to_array.process('save_local.png', extra_args: 'save_local_png')
|
||||
data_files += to_array.process('save_online.png', extra_args: 'save_online_png')
|
||||
data_files += to_array.process('font.bz2', extra_args: 'compressed_font_data')
|
||||
data_files += to_array.process('elements.wav.bz2', extra_args: 'elements_wav_bz2')
|
||||
|
35
src/audio/AudioEngine.h
Normal file
35
src/audio/AudioEngine.h
Normal file
@ -0,0 +1,35 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
#include <array>
|
||||
#include <memory>
|
||||
#include <atomic>
|
||||
|
||||
class Sound;
|
||||
struct SDLData; // Renderer builds don't have access to SDL
|
||||
|
||||
class AudioEngine
|
||||
{
|
||||
bool ready;
|
||||
|
||||
std::unique_ptr<SDLData> sdlData;
|
||||
int16_t* audio_buf;
|
||||
uint32_t audio_len;
|
||||
|
||||
std::array<std::unique_ptr<Sound>, 100> sounds;
|
||||
std::array<int, 200> counts;
|
||||
std::atomic<int> playing;
|
||||
|
||||
std::unique_ptr<float[]> buf;
|
||||
|
||||
public:
|
||||
AudioEngine();
|
||||
|
||||
static void SDL_AudioCallback(void* userdata, uint8_t* stream, int len);
|
||||
|
||||
int SoundsPlaying();
|
||||
|
||||
void Play(int index);
|
||||
|
||||
~AudioEngine();
|
||||
};
|
42
src/audio/AudioEngineFake.cpp
Normal file
42
src/audio/AudioEngineFake.cpp
Normal file
@ -0,0 +1,42 @@
|
||||
#include "AudioEngine.h"
|
||||
|
||||
class Sound
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
struct SDLData
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
AudioEngine::AudioEngine() :
|
||||
ready(false),
|
||||
sdlData(nullptr),
|
||||
sounds({ nullptr }),
|
||||
counts({ 0 }),
|
||||
playing(0),
|
||||
buf(nullptr)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void AudioEngine::SDL_AudioCallback(void* userdata, uint8_t* stream, int len)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int AudioEngine::SoundsPlaying()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
void AudioEngine::Play(int index)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
AudioEngine::~AudioEngine()
|
||||
{
|
||||
|
||||
}
|
138
src/audio/AudioEngineReal.cpp
Normal file
138
src/audio/AudioEngineReal.cpp
Normal file
@ -0,0 +1,138 @@
|
||||
#include "AudioEngine.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
#include <SDL2/SDL_audio.h>
|
||||
|
||||
#include "bzip2/bz2wrap.h"
|
||||
|
||||
#include "elements.wav.bz2.h"
|
||||
|
||||
#include "Sound.h"
|
||||
|
||||
struct SDLData
|
||||
{
|
||||
SDL_AudioSpec spec;
|
||||
SDL_AudioDeviceID device;
|
||||
};
|
||||
|
||||
AudioEngine::AudioEngine() :
|
||||
ready(false),
|
||||
sdlData(std::make_unique<SDLData>()),
|
||||
sounds({ nullptr }),
|
||||
counts({ 0 }),
|
||||
playing(0),
|
||||
buf(nullptr)
|
||||
{
|
||||
std::vector<char> elements_wav;
|
||||
if (BZ2WDecompress(elements_wav, reinterpret_cast<const char *>(elements_wav_bz2), elements_wav_bz2_size) != BZ2WDecompressOk)
|
||||
{
|
||||
std::cerr << "AudioEngine::AudioEngine->BZ2WDecompress" << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0)
|
||||
{
|
||||
std::cerr << "AudioEngine::AudioEngine->SDL_InitSubSystem: " << SDL_GetError() << std::endl;
|
||||
return;
|
||||
}
|
||||
|
||||
if (!SDL_LoadWAV_RW(SDL_RWFromConstMem(elements_wav.data(), elements_wav.size()), 1, &sdlData->spec, reinterpret_cast<uint8_t**>(&audio_buf), &audio_len))
|
||||
{
|
||||
std::cerr << "AudioEngine::AudioEngine->SDL_LoadWAV_RW: " << SDL_GetError() << std::endl;
|
||||
SDL_QuitSubSystem(SDL_INIT_AUDIO);
|
||||
return;
|
||||
}
|
||||
audio_len /= 2; // 8 to 16 bit conversion
|
||||
|
||||
sdlData->spec.callback = &SDL_AudioCallback;
|
||||
sdlData->spec.userdata = this;
|
||||
|
||||
sdlData->device = SDL_OpenAudioDevice(NULL, 0, &sdlData->spec, NULL, 0);
|
||||
if (!sdlData->device)
|
||||
{
|
||||
std::cerr << "AudioEngine::AudioEngine->SDL_OpenAudioDevice: " << SDL_GetError() << std::endl;
|
||||
SDL_FreeWAV(reinterpret_cast<uint8_t*>(audio_buf));
|
||||
SDL_QuitSubSystem(SDL_INIT_AUDIO);
|
||||
return;
|
||||
}
|
||||
|
||||
ready = true;
|
||||
}
|
||||
|
||||
void AudioEngine::SDL_AudioCallback(void* userdata, uint8_t* stream, int len)
|
||||
{
|
||||
auto& eng = *reinterpret_cast<AudioEngine*>(userdata);
|
||||
|
||||
if (!eng.buf)
|
||||
{
|
||||
eng.buf = std::make_unique<float[]>(len / 2);
|
||||
}
|
||||
std::fill_n(eng.buf.get(), len / 2, 0.0f);
|
||||
|
||||
for (auto& i : eng.sounds)
|
||||
{
|
||||
if (i)
|
||||
{
|
||||
if (i->HasSamples())
|
||||
{
|
||||
i->AddSamples(eng.buf.get(), len / 2);
|
||||
}
|
||||
if (!i->HasSamples())
|
||||
{
|
||||
eng.counts[i->GetIndex()]--;
|
||||
eng.playing--;
|
||||
i = nullptr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < len / 2; i++)
|
||||
{
|
||||
reinterpret_cast<int16_t*>(stream)[i] = static_cast<int16_t>(std::tanh(eng.buf[i]) * static_cast<float>(SDL_MAX_SINT16));
|
||||
}
|
||||
|
||||
if (!eng.playing)
|
||||
{
|
||||
SDL_PauseAudioDevice(eng.sdlData->device, 1);
|
||||
}
|
||||
}
|
||||
|
||||
int AudioEngine::SoundsPlaying()
|
||||
{
|
||||
return playing;
|
||||
}
|
||||
|
||||
void AudioEngine::Play(int index)
|
||||
{
|
||||
if (ready && index >= 0 && index <= 199 && (!counts[index] || index > 193))
|
||||
{
|
||||
SDL_LockAudioDevice(sdlData->device);
|
||||
for (auto& i : sounds)
|
||||
{
|
||||
if (!i)
|
||||
{
|
||||
i = std::make_unique<Sound>(audio_buf, index);
|
||||
counts[index]++;
|
||||
playing++;
|
||||
SDL_PauseAudioDevice(sdlData->device, 0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
SDL_UnlockAudioDevice(sdlData->device);
|
||||
}
|
||||
}
|
||||
|
||||
AudioEngine::~AudioEngine()
|
||||
{
|
||||
if (ready)
|
||||
{
|
||||
SDL_CloseAudioDevice(sdlData->device);
|
||||
SDL_FreeWAV(reinterpret_cast<uint8_t*>(audio_buf));
|
||||
SDL_QuitSubSystem(SDL_INIT_AUDIO);
|
||||
}
|
||||
}
|
206
src/audio/OffsetTable.h
Normal file
206
src/audio/OffsetTable.h
Normal file
@ -0,0 +1,206 @@
|
||||
#include <cstdint>
|
||||
|
||||
uint32_t elements_wav_offsets[] =
|
||||
{
|
||||
0,
|
||||
10944,
|
||||
24768,
|
||||
36288,
|
||||
48384,
|
||||
62208,
|
||||
75456,
|
||||
88704,
|
||||
107712,
|
||||
132480,
|
||||
143424,
|
||||
154944,
|
||||
172224,
|
||||
188928,
|
||||
202752,
|
||||
213120,
|
||||
226944,
|
||||
240192,
|
||||
251136,
|
||||
268416,
|
||||
289152,
|
||||
300672,
|
||||
312768,
|
||||
326592,
|
||||
337536,
|
||||
355392,
|
||||
379008,
|
||||
389952,
|
||||
405504,
|
||||
424512,
|
||||
449280,
|
||||
468864,
|
||||
487296,
|
||||
505152,
|
||||
521280,
|
||||
544896,
|
||||
570240,
|
||||
594432,
|
||||
619200,
|
||||
637056,
|
||||
653760,
|
||||
665856,
|
||||
681984,
|
||||
706752,
|
||||
734400,
|
||||
747648,
|
||||
762048,
|
||||
789696,
|
||||
805248,
|
||||
817920,
|
||||
831744,
|
||||
850176,
|
||||
874944,
|
||||
896256,
|
||||
910656,
|
||||
933696,
|
||||
949824,
|
||||
964224,
|
||||
978048,
|
||||
991296,
|
||||
1001664,
|
||||
1026432,
|
||||
1043712,
|
||||
1069056,
|
||||
1085184,
|
||||
1106496,
|
||||
1121472,
|
||||
1132416,
|
||||
1142784,
|
||||
1162368,
|
||||
1184832,
|
||||
1200960,
|
||||
1222848,
|
||||
1238976,
|
||||
1259712,
|
||||
1281024,
|
||||
1300032,
|
||||
1309824,
|
||||
1331712,
|
||||
1344960,
|
||||
1358208,
|
||||
1385856,
|
||||
1406016,
|
||||
1430784,
|
||||
1444608,
|
||||
1466496,
|
||||
1482624,
|
||||
1506240,
|
||||
1520064,
|
||||
1541376,
|
||||
1554624,
|
||||
1570176,
|
||||
1581120,
|
||||
1593216,
|
||||
1619136,
|
||||
1629504,
|
||||
1658304,
|
||||
1670976,
|
||||
1681344,
|
||||
1715904,
|
||||
1727424,
|
||||
1749312,
|
||||
1770048,
|
||||
1784448,
|
||||
1802880,
|
||||
1826496,
|
||||
1851840,
|
||||
1877184,
|
||||
1900800,
|
||||
1934784,
|
||||
1950336,
|
||||
1968192,
|
||||
1981440,
|
||||
2006208,
|
||||
2026944,
|
||||
2038464,
|
||||
2051136,
|
||||
2075904,
|
||||
2092608,
|
||||
2106432,
|
||||
2120832,
|
||||
2140416,
|
||||
2160000,
|
||||
2180736,
|
||||
2195136,
|
||||
2212992,
|
||||
2226816,
|
||||
2240064,
|
||||
2251008,
|
||||
2272896,
|
||||
2284992,
|
||||
2303424,
|
||||
2324736,
|
||||
2343744,
|
||||
2373696,
|
||||
2407680,
|
||||
2440512,
|
||||
2460096,
|
||||
2481408,
|
||||
2502144,
|
||||
2518272,
|
||||
2541888,
|
||||
2556288,
|
||||
2568384,
|
||||
2580480,
|
||||
2599488,
|
||||
2622528,
|
||||
2622528,
|
||||
2634048,
|
||||
2650752,
|
||||
2662848,
|
||||
2682432,
|
||||
2701440,
|
||||
2716992,
|
||||
2750976,
|
||||
2772288,
|
||||
2791872,
|
||||
2805120,
|
||||
2827008,
|
||||
2839104,
|
||||
2850048,
|
||||
2863872,
|
||||
2884032,
|
||||
2901312,
|
||||
2918016,
|
||||
2940480,
|
||||
2961792,
|
||||
2992320,
|
||||
3013632,
|
||||
3025152,
|
||||
3039552,
|
||||
3052224,
|
||||
3067200,
|
||||
3086208,
|
||||
3104640,
|
||||
3120192,
|
||||
3145536,
|
||||
3169728,
|
||||
3189888,
|
||||
3215808,
|
||||
3232512,
|
||||
3252672,
|
||||
3269376,
|
||||
3288384,
|
||||
3309120,
|
||||
3335616,
|
||||
3355200,
|
||||
3380544,
|
||||
3399552,
|
||||
3413952,
|
||||
3439872,
|
||||
3450816,
|
||||
3465216,
|
||||
3479040,
|
||||
3508992,
|
||||
3542067,
|
||||
3553092,
|
||||
3575142,
|
||||
3592782,
|
||||
3623886,
|
||||
3656142,
|
||||
};
|
39
src/audio/Sound.cpp
Normal file
39
src/audio/Sound.cpp
Normal file
@ -0,0 +1,39 @@
|
||||
#include "Sound.h"
|
||||
|
||||
#include <SDL2/SDL.h>
|
||||
|
||||
#include "OffsetTable.h"
|
||||
|
||||
Sound::Sound(int16_t* audio_buf_, int index_) :
|
||||
audio_buf(audio_buf_),
|
||||
index(index_),
|
||||
pos(elements_wav_offsets[index_]),
|
||||
endPos(elements_wav_offsets[index_ + 1])
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
int Sound::GetIndex()
|
||||
{
|
||||
return index;
|
||||
}
|
||||
|
||||
bool Sound::HasSamples()
|
||||
{
|
||||
return pos != endPos;
|
||||
}
|
||||
|
||||
void Sound::AddSamples(float* stream, int len)
|
||||
{
|
||||
for (int i = 0; i < len; i++)
|
||||
{
|
||||
if (pos != endPos)
|
||||
{
|
||||
stream[i] += static_cast<float>(audio_buf[pos++]) / static_cast<float>(SDL_MAX_SINT16);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
20
src/audio/Sound.h
Normal file
20
src/audio/Sound.h
Normal file
@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include <cstdint>
|
||||
|
||||
class Sound
|
||||
{
|
||||
int16_t* audio_buf;
|
||||
|
||||
int index;
|
||||
uint32_t pos;
|
||||
uint32_t endPos;
|
||||
|
||||
public:
|
||||
Sound(int16_t* audio_buf_, int index_);
|
||||
|
||||
int GetIndex();
|
||||
bool HasSamples();
|
||||
|
||||
void AddSamples(float* stream, int len);
|
||||
};
|
8
src/audio/meson.build
Normal file
8
src/audio/meson.build
Normal file
@ -0,0 +1,8 @@
|
||||
powder_files += files(
|
||||
'AudioEngineReal.cpp',
|
||||
'Sound.cpp',
|
||||
)
|
||||
|
||||
render_files += files(
|
||||
'AudioEngineFake.cpp',
|
||||
)
|
@ -63,6 +63,8 @@
|
||||
#include "gui/tags/TagsController.h"
|
||||
#include "gui/tags/TagsView.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
#include "Config.h"
|
||||
#include <SDL.h>
|
||||
#include <iostream>
|
||||
@ -239,7 +241,7 @@ void GameController::PlaceSave(ui::Point position)
|
||||
if (placeSave)
|
||||
{
|
||||
HistorySnapshot();
|
||||
gameModel->GetSimulation()->Load(placeSave, !gameView->ShiftBehaviour(), position);
|
||||
gameModel->GetSimulation()->Load(placeSave, !gameView->ShiftBehaviour(), position, true);
|
||||
gameModel->SetPaused(placeSave->paused | gameModel->GetPaused());
|
||||
Client::Ref().MergeStampAuthorInfo(placeSave->authors);
|
||||
}
|
||||
@ -646,7 +648,7 @@ bool GameController::KeyPress(int key, int scan, bool repeat, bool shift, bool c
|
||||
SwitchGravity();
|
||||
break;
|
||||
case SDL_SCANCODE_D:
|
||||
gameView->SetDebugHUD(!gameView->GetDebugHUD());
|
||||
SetDebugHUD(!gameView->GetDebugHUD());
|
||||
break;
|
||||
case SDL_SCANCODE_S:
|
||||
gameView->BeginStampSelection();
|
||||
@ -1007,6 +1009,8 @@ bool GameController::GetBrushEnable()
|
||||
void GameController::SetDebugHUD(bool hudState)
|
||||
{
|
||||
gameView->SetDebugHUD(hudState);
|
||||
gameModel->GetSimulation()->ae->Play(hudState ? 198 : 199);
|
||||
// https://discord.com/channels/311697121914912768/311697121914912768/1165803116030083162
|
||||
}
|
||||
|
||||
bool GameController::GetDebugHUD()
|
||||
|
@ -998,7 +998,7 @@ void GameModel::SetSave(std::unique_ptr<SaveInfo> newSave, bool invertIncludePre
|
||||
SaveToSimParameters(*saveData);
|
||||
sim->clear_sim();
|
||||
ren->ClearAccumulation();
|
||||
sim->Load(saveData, !invertIncludePressure, { 0, 0 });
|
||||
sim->Load(saveData, !invertIncludePressure, { 0, 0 }, true);
|
||||
// This save was created before logging existed
|
||||
// Add in the correct info
|
||||
if (saveData->authors.size() == 0)
|
||||
|
@ -1416,7 +1416,7 @@ void GameView::OnKeyPress(int key, int scan, bool repeat, bool shift, bool ctrl,
|
||||
doScreenshot = true;
|
||||
break;
|
||||
case SDL_SCANCODE_F3:
|
||||
SetDebugHUD(!GetDebugHUD());
|
||||
c->SetDebugHUD(!GetDebugHUD());
|
||||
break;
|
||||
case SDL_SCANCODE_F5:
|
||||
c->ReloadSim();
|
||||
@ -2484,6 +2484,9 @@ void GameView::OnDraw()
|
||||
fpsInfo << " Parts: " << ren->foundElements << "/" << sample.NumParts;
|
||||
else
|
||||
fpsInfo << " Parts: " << sample.NumParts;
|
||||
fpsInfo << " Sounds: " << sample.SoundsPlaying;
|
||||
if (sample.SoundsPlaying == 69)
|
||||
fpsInfo << " (Nice)";
|
||||
}
|
||||
if (c->GetReplaceModeFlags()&REPLACE_MODE)
|
||||
fpsInfo << " [REPLACE MODE]";
|
||||
|
@ -968,7 +968,7 @@ static int loadStamp(lua_State *L)
|
||||
gameSave->Transform(transform, { remX, remY });
|
||||
}
|
||||
auto *lsi = GetLSI();
|
||||
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY });
|
||||
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY }, true);
|
||||
lua_pushinteger(L, 1);
|
||||
|
||||
if (gameSave->authors.size())
|
||||
|
@ -140,6 +140,7 @@ if host_platform == 'linux'
|
||||
font_files += files('WindowIcon.cpp')
|
||||
endif
|
||||
|
||||
subdir('audio')
|
||||
subdir('bson')
|
||||
subdir('bzip2')
|
||||
subdir('client')
|
||||
|
@ -13,6 +13,8 @@
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
std::unique_ptr<Snapshot> Simulation::CreateSnapshot() const
|
||||
{
|
||||
auto snap = std::make_unique<Snapshot>();
|
||||
@ -154,6 +156,7 @@ SimulationSample Simulation::GetSample(int x, int y)
|
||||
sample.isMouseInSim = false;
|
||||
|
||||
sample.NumParts = NUM_PARTS;
|
||||
sample.SoundsPlaying = ae->SoundsPlaying();
|
||||
return sample;
|
||||
}
|
||||
|
||||
|
@ -18,7 +18,8 @@ public:
|
||||
float GravityVelocityY;
|
||||
|
||||
int NumParts;
|
||||
int SoundsPlaying;
|
||||
bool isMouseInSim;
|
||||
|
||||
SimulationSample() : particle(), ParticleID(0), PositionX(0), PositionY(0), AirPressure(0), AirTemperature(0), AirVelocityX(0), AirVelocityY(0), WallType(0), Gravity(0), GravityVelocityX(0), GravityVelocityY(0), NumParts(0), isMouseInSim(true) {}
|
||||
SimulationSample() : particle(), ParticleID(0), PositionX(0), PositionY(0), AirPressure(0), AirTemperature(0), AirVelocityX(0), AirVelocityY(0), WallType(0), Gravity(0), GravityVelocityX(0), GravityVelocityY(0), NumParts(0), SoundsPlaying(0), isMouseInSim(true) {}
|
||||
};
|
||||
|
@ -16,12 +16,14 @@
|
||||
#include <iostream>
|
||||
#include <set>
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
static float remainder_p(float x, float y)
|
||||
{
|
||||
return std::fmod(x, y) + (x>=0 ? 0 : y);
|
||||
}
|
||||
|
||||
void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> blockP) // block coordinates
|
||||
void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> blockP, bool allowMoo) // block coordinates
|
||||
{
|
||||
auto partP = blockP * CELL;
|
||||
|
||||
@ -76,6 +78,7 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
|
||||
}
|
||||
};
|
||||
|
||||
int protCount = 0;
|
||||
std::map<unsigned int, unsigned int> soapList;
|
||||
for (int n = 0; n < NPART && n < save->particlesCount; n++)
|
||||
{
|
||||
@ -210,6 +213,9 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
|
||||
case PT_SOAP:
|
||||
soapList.insert(std::pair<unsigned int, unsigned int>(n, i));
|
||||
break;
|
||||
case PT_PROT:
|
||||
protCount++;
|
||||
break;
|
||||
}
|
||||
if (GameSave::PressureInTmp3(parts[i].type) && !includePressure)
|
||||
{
|
||||
@ -294,6 +300,11 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
|
||||
{
|
||||
air->ApproximateBlockAirMaps();
|
||||
}
|
||||
|
||||
if (allowMoo && protCount == 1943)
|
||||
{
|
||||
ae->Play(197);
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<GameSave> Simulation::Save(bool includePressure, Rect<int> partR) // particle coordinates
|
||||
@ -1755,6 +1766,11 @@ bool Simulation::part_change_type(int i, int x, int y, int t)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (t <= PT_RSSS)
|
||||
{
|
||||
ae->Play(t);
|
||||
}
|
||||
|
||||
if (elements[parts[i].type].ChangeType)
|
||||
(*(elements[parts[i].type].ChangeType))(this, i, x, y, parts[i].type, t);
|
||||
if (elements[t].ChangeType)
|
||||
@ -1885,6 +1901,11 @@ int Simulation::create_part(int p, int x, int y, int t, int v)
|
||||
i = p;
|
||||
}
|
||||
|
||||
if (t <= PT_RSSS && (t != PT_EMBR || i == -3)) // Don't play for EMBR creted by fireworks (also bomb, but unintentionally)
|
||||
{
|
||||
ae->Play(t);
|
||||
}
|
||||
|
||||
if (i>parts_lastActiveIndex) parts_lastActiveIndex = i;
|
||||
|
||||
parts[i] = elements[t].DefaultProperties;
|
||||
@ -3886,6 +3907,7 @@ void Simulation::AfterSim()
|
||||
Simulation::~Simulation() = default;
|
||||
|
||||
Simulation::Simulation():
|
||||
ae(std::make_unique<AudioEngine>()),
|
||||
replaceModeSelected(0),
|
||||
replaceModeFlags(0),
|
||||
debug_nextToUpdate(0),
|
||||
|
@ -32,6 +32,8 @@ class Gravity;
|
||||
class Air;
|
||||
class GameSave;
|
||||
|
||||
class AudioEngine;
|
||||
|
||||
class Simulation
|
||||
{
|
||||
public:
|
||||
@ -39,6 +41,8 @@ public:
|
||||
std::unique_ptr<Air> air;
|
||||
RNG rng;
|
||||
|
||||
std::unique_ptr<AudioEngine> ae;
|
||||
|
||||
std::vector<sign> signs;
|
||||
//Element * elements;
|
||||
|
||||
@ -113,7 +117,7 @@ public:
|
||||
uint64_t frameCount;
|
||||
bool ensureDeterminism;
|
||||
|
||||
void Load(const GameSave *save, bool includePressure, Vec2<int> blockP); // block coordinates
|
||||
void Load(const GameSave *save, bool includePressure, Vec2<int> blockP, bool allowMoo = false); // block coordinates
|
||||
std::unique_ptr<GameSave> Save(bool includePressure, Rect<int> partR); // particle coordinates
|
||||
void SaveSimOptions(GameSave &gameSave);
|
||||
SimulationSample GetSample(int x, int y);
|
||||
|
@ -1,5 +1,7 @@
|
||||
#include "simulation/ElementCommon.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
static int update(UPDATE_FUNC_ARGS);
|
||||
static int graphics(GRAPHICS_FUNC_ARGS);
|
||||
|
||||
@ -65,6 +67,7 @@ static int update(UPDATE_FUNC_ARGS)
|
||||
auto rt = TYP(r);
|
||||
if (rt==PT_FIRE||rt==PT_PLSM||rt==PT_THDR)
|
||||
{
|
||||
sim->ae->Play(195);
|
||||
float gx, gy, multiplier;
|
||||
sim->GetGravityField(x, y, elements[PT_FIRW].Gravity, 1.0f, gx, gy);
|
||||
if (gx*gx+gy*gy < 0.001f)
|
||||
@ -93,6 +96,7 @@ static int update(UPDATE_FUNC_ARGS)
|
||||
}
|
||||
else //if (parts[i].tmp>=2)
|
||||
{
|
||||
sim->ae->Play(196);
|
||||
unsigned col = Renderer::firwTableAt(sim->rng.between(0, 199)).Pack();
|
||||
for (int n=0; n<40; n++)
|
||||
{
|
||||
|
@ -1,11 +1,13 @@
|
||||
#include "simulation/ElementCommon.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
static int update(UPDATE_FUNC_ARGS);
|
||||
|
||||
void Element::Element_GOO()
|
||||
{
|
||||
Identifier = "DEFAULT_PT_GOO";
|
||||
Name = "GOO";
|
||||
Name = "SQRL";
|
||||
Colour = 0x804000_rgb;
|
||||
MenuVisible = 1;
|
||||
MenuSection = SC_SOLIDS;
|
||||
@ -30,7 +32,7 @@ void Element::Element_GOO()
|
||||
Weight = 100;
|
||||
|
||||
HeatConduct = 75;
|
||||
Description = "Deforms and disappears under pressure.";
|
||||
Description = "Squirrels. \"Every time we cut an emoji for a squirrel we have to cut it from tpt as well\" - jacob1";
|
||||
|
||||
Properties = TYPE_SOLID | PROP_NEUTPENETRATE|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;
|
||||
|
||||
@ -50,6 +52,10 @@ constexpr float ADVECTION = 0.1f;
|
||||
|
||||
static int update(UPDATE_FUNC_ARGS)
|
||||
{
|
||||
if (sim->rng.chance(1, 2400))
|
||||
{
|
||||
sim->ae->Play(194);
|
||||
}
|
||||
if (!parts[i].life && sim->pv[y/CELL][x/CELL]>1.0f)
|
||||
parts[i].life = sim->rng.between(300, 379);
|
||||
if (parts[i].life)
|
||||
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-android-bionic-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-aarch64-android-bionic-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-android-bionic-static-debug-v20240112165024.zip
|
||||
source_hash = 0aa6c80de3f38a8f2ce5cad2e79822adb6648da8355c5345be99ee678bfd80ee
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-android-bionic-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-aarch64-android-bionic-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-android-bionic-static-debug-v20240330234517.zip
|
||||
source_hash = cfdfcd9a7ac19c531da8250013c262b1c41acf4f64e18656a4e29b0c9f2ad2e4
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-android-bionic-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-aarch64-android-bionic-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-android-bionic-static-release-v20240112165024.zip
|
||||
source_hash = da3bd2fead1f021bfa2aa97e8c713a5685c70e71e3e110ea688628ca2c103c27
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-android-bionic-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-aarch64-android-bionic-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-android-bionic-static-release-v20240330234517.zip
|
||||
source_hash = c9e3e4c782341c0ad80a7b52643f5568c531b2d348fae2eaeb8f7977bad2a65e
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-darwin-macos-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-aarch64-darwin-macos-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-darwin-macos-static-debug-v20240112165024.zip
|
||||
source_hash = b43d51ea1a346fbcca7519dad21bd0b102fe8b46d82a9ac1042b874f9fa62c06
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-darwin-macos-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-aarch64-darwin-macos-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-darwin-macos-static-debug-v20240330234517.zip
|
||||
source_hash = 26a09eb4a9fdaf7e796df1344b170ddefcc7df4471614c9f8104c939bbfe9222
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-darwin-macos-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-aarch64-darwin-macos-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-darwin-macos-static-release-v20240112165024.zip
|
||||
source_hash = d5db5ecfa0d5ec7d54b041bb47d25145ac62ef1a25008befe99c761cfd4f5617
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-aarch64-darwin-macos-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-aarch64-darwin-macos-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-aarch64-darwin-macos-static-release-v20240330234517.zip
|
||||
source_hash = 7024614fe3db011ed977bbd1448ca9941212c8d629e261173fa8560283acd74b
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-arm-android-bionic-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-arm-android-bionic-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-arm-android-bionic-static-debug-v20240112165024.zip
|
||||
source_hash = 515f85bf7d4303fe4cf9be53b7e7cfccd11635ed758f75a0a513f2fdd82326b3
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-arm-android-bionic-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-arm-android-bionic-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-arm-android-bionic-static-debug-v20240330234517.zip
|
||||
source_hash = c91e4b624c2f2878f2215023872c93519df8298c09af531a39ff9ea00e5c20a0
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-arm-android-bionic-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-arm-android-bionic-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-arm-android-bionic-static-release-v20240112165024.zip
|
||||
source_hash = ffdee9c2a73a1023ef456029621e861666a9fd230c1106fda8fa69ca11b1625b
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-arm-android-bionic-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-arm-android-bionic-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-arm-android-bionic-static-release-v20240330234517.zip
|
||||
source_hash = 889c4dde022532bea7574fa4994ac3ba40e02b2bdb5cb1cad61a06f7340d0376
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-debug-v20240112165024.zip
|
||||
source_hash = 83ff6aa694497b8960f5136fcbc1d2ed95afc7b147b9268fbbdc237b3d8bb5ec
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-debug-v20240330234517.zip
|
||||
source_hash = 20a5ed1a24eeb5a70d6cd3ccb6a6a8ffac7d26b491d5bc0b16b4f94b4022981b
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-release-v20240112165024.zip
|
||||
source_hash = 3e96dda457d0b9550a335f40a2c194237920e7f527357db9e74bae9242ead29d
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-wasm32-emscripten-emscripten-static-release-v20240330234517.zip
|
||||
source_hash = 5c18874b9a75c5e77deddc597788dd9ce918d4e08229dea20981b192eff096ec
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-android-bionic-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86-android-bionic-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-android-bionic-static-debug-v20240112165024.zip
|
||||
source_hash = 8df8000396af91f63320a042131aafeb31afc9fa78f78e9c211ba24dea73798a
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-android-bionic-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86-android-bionic-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-android-bionic-static-debug-v20240330234517.zip
|
||||
source_hash = 28ce8c609ca1b27ba8b27c180789863c6ccc1e2ec6ce831faf4e4ee910c7706f
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-android-bionic-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86-android-bionic-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-android-bionic-static-release-v20240112165024.zip
|
||||
source_hash = 13d2910c9a38958d146eff01e8987bf7dc94d8ee57761ee00992fea5ce9cab03
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-android-bionic-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86-android-bionic-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-android-bionic-static-release-v20240330234517.zip
|
||||
source_hash = 414ecef2c4996a541dbabe96dfb358757907c4b319839127a9005e5fd8eff60b
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-dynamic-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86-windows-msvc-dynamic-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-dynamic-debug-v20240112165024.zip
|
||||
source_hash = 460632c4902760d9f894437be9c2979ebbd2fcf5cbe6604731eb7db65c77813c
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-dynamic-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86-windows-msvc-dynamic-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-dynamic-debug-v20240330234517.zip
|
||||
source_hash = 59d575ceb60821e5013df3b65b5c37f7313235334600a958c9e1a01e6e4edcc3
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-dynamic-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86-windows-msvc-dynamic-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-dynamic-release-v20240112165024.zip
|
||||
source_hash = a69a97ed84712ebf37597b24fbae8351ca14d87f9e58c8bd407e2e7d933d8134
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-dynamic-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86-windows-msvc-dynamic-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-dynamic-release-v20240330234517.zip
|
||||
source_hash = 5729f290b5519e6db43c284bed110420bad0e80df1eb2ba410c696c479649006
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86-windows-msvc-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-static-debug-v20240112165024.zip
|
||||
source_hash = e6bc71d08732c2856abe26303b8ac3cc1d3932b77e89cd2c2d93c8f616c84897
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86-windows-msvc-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-static-debug-v20240330234517.zip
|
||||
source_hash = 079d8253bb0919a5b32ca260151a7b721e4889700ffddff8a895d50fdf33a5de
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86-windows-msvc-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-static-release-v20240112165024.zip
|
||||
source_hash = 7afc9725fc47aad67428aa38759e71919eca5a23214e09ee5a3474402dcb8d6f
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86-windows-msvc-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86-windows-msvc-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86-windows-msvc-static-release-v20240330234517.zip
|
||||
source_hash = f22bd31be96810daf5f869a15b50636acdb02ba64a4f125dff3d72def2aebbe4
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-android-bionic-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-android-bionic-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-android-bionic-static-debug-v20240112165024.zip
|
||||
source_hash = f5652a85ea82c9e2709f003ebef582effd96bdafbad32a600a14a2d01d8f7146
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-android-bionic-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-android-bionic-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-android-bionic-static-debug-v20240330234517.zip
|
||||
source_hash = 0fce08f021c74f22c2f891f4b84288b50e2cfe877b615d43efa8e2cade92b627
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-android-bionic-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-android-bionic-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-android-bionic-static-release-v20240112165024.zip
|
||||
source_hash = 48550eb3271a71e36a2f9eaff954253faa6bb010b159d0b08268d912933dd5f5
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-android-bionic-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-android-bionic-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-android-bionic-static-release-v20240330234517.zip
|
||||
source_hash = f7e0d942f6396cd99d10583c7b8ee9a4f28c3321ae8598adb6a11b57d88aa36d
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-darwin-macos-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-darwin-macos-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-darwin-macos-static-debug-v20240112165024.zip
|
||||
source_hash = 99102770f63b4de80d37589a62ee489d658d221aa3a783b9c908d8e5c8d80f6c
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-darwin-macos-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-darwin-macos-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-darwin-macos-static-debug-v20240330234517.zip
|
||||
source_hash = 6f83b60298b89eca8228ba44472ef688a24331daca77f99b3c0ebc334df5909f
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-darwin-macos-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-darwin-macos-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-darwin-macos-static-release-v20240112165024.zip
|
||||
source_hash = 08975826567c00b5c70477162779ba228d418314430152e43f55dc8924d56808
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-darwin-macos-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-darwin-macos-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-darwin-macos-static-release-v20240330234517.zip
|
||||
source_hash = 52f5550056c21b497ffda0a9c1c21fb87130debccf8251b1c0653428d35be47b
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-linux-gnu-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-linux-gnu-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-linux-gnu-static-debug-v20240112165024.zip
|
||||
source_hash = e6bfda9c4a1c3b76c549a2817ee801475b07ba942c19b7ba8a20a8989596d56d
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-linux-gnu-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-linux-gnu-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-linux-gnu-static-debug-v20240330234517.zip
|
||||
source_hash = 11e5f05a27a1ceab849da06036fb67429d02dbefd710d293bb788b43fbfa3c86
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-linux-gnu-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-linux-gnu-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-linux-gnu-static-release-v20240112165024.zip
|
||||
source_hash = 2724fcf0e77565ead41d303ee2f64f435ca953d3ae2a4ff7296a2f0ac2897587
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-linux-gnu-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-linux-gnu-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-linux-gnu-static-release-v20240330234517.zip
|
||||
source_hash = 243f07fbf9c42ba9502602eabce7817707aba8920fbe4d5c4adc308ad47c1347
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-mingw-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-windows-mingw-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-mingw-static-debug-v20240112165024.zip
|
||||
source_hash = 172aa09c144f71b97a6825aebf4ba57fa266f937c6ad7e23ccfb8b0f46dfafa4
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-mingw-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-windows-mingw-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-mingw-static-debug-v20240330234517.zip
|
||||
source_hash = 65bc07e8b021a3d18923f6fd992b32e0051aa299238f5bbf9907c5393aa1e35a
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-mingw-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-windows-mingw-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-mingw-static-release-v20240112165024.zip
|
||||
source_hash = 0aa1ece3df3209c224a5163471de6428a34b7c54736ae941e517fabc9d4581fb
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-mingw-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-windows-mingw-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-mingw-static-release-v20240330234517.zip
|
||||
source_hash = e21a1effd7aae800a1db769a6bbbafbd151b1c40115258529886682874b845d3
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-debug-v20240112165024.zip
|
||||
source_hash = 71ed59786dab81fea3d31d186cf872e6dd5a2f591b1f76dc47df7a000e5696b3
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-debug-v20240330234517.zip
|
||||
source_hash = a227c1985b0e2f082b8b9ac5d263b7f37c314cc7b649b48f29106f6c5884d65b
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-release-v20240112165024.zip
|
||||
source_hash = 5478258659bf90960e07016ae39849b52d1a9a5556dd7463b278b1f750c8c25d
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-dynamic-release-v20240330234517.zip
|
||||
source_hash = 86d105b45162312e46422db94a9a793e7ee54fe5487c5ad28d3524dddf09cf7d
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-static-debug-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-windows-msvc-static-debug-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-static-debug-v20240112165024.zip
|
||||
source_hash = 70e16605aa2233bf33f60d16df0908792bdd704c49205ed752d47f8d2f727b06
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-static-debug-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-windows-msvc-static-debug-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-static-debug-v20240330234517.zip
|
||||
source_hash = 0099267d1f9158e5cf3f87b2207c64c4cbe7d1e6558a30fb731a21d47c262b58
|
@ -1,6 +0,0 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-static-release-v20240112165024
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240112165024/tpt-libs-prebuilt-x86_64-windows-msvc-static-release-v20240112165024.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-static-release-v20240112165024.zip
|
||||
source_hash = 1ed1ce5d7fa94a4e552bfe8fc2914c46b91731fa64eebe1f21afa8b11da11b5f
|
@ -0,0 +1,6 @@
|
||||
[wrap-file]
|
||||
directory = tpt-libs-prebuilt-x86_64-windows-msvc-static-release-v20240330234517
|
||||
|
||||
source_url = https://github.com/The-Powder-Toy/tpt-libs/releases/download/v20240330234517/tpt-libs-prebuilt-x86_64-windows-msvc-static-release-v20240330234517.zip
|
||||
source_filename = tpt-libs-prebuilt-x86_64-windows-msvc-static-release-v20240330234517.zip
|
||||
source_hash = 9af05567b5340c97f6339c07e3ec90429dc4c298ffc7bb5584cd4126ff3b8615
|
Loading…
Reference in New Issue
Block a user