Add squir... sound. Add sound

This commit is contained in:
catsoften 2024-03-30 22:33:13 -04:00
parent 7edc413cdc
commit e8c24e7e23
No known key found for this signature in database
GPG Key ID: B354DAA95BFBCB33
74 changed files with 712 additions and 175 deletions

16
.github/prepare.py vendored
View File

@ -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
]:

View File

@ -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

Binary file not shown.

View File

@ -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
View 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();
};

View 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()
{
}

View 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
View 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
View 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
View 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
View File

@ -0,0 +1,8 @@
powder_files += files(
'AudioEngineReal.cpp',
'Sound.cpp',
)
render_files += files(
'AudioEngineFake.cpp',
)

View File

@ -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()

View File

@ -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)

View File

@ -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]";

View File

@ -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())

View File

@ -140,6 +140,7 @@ if host_platform == 'linux'
font_files += files('WindowIcon.cpp')
endif
subdir('audio')
subdir('bson')
subdir('bzip2')
subdir('client')

View File

@ -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;
}

View File

@ -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) {}
};

View File

@ -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),

View File

@ -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);

View File

@ -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++)
{

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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