The squirrel infestation problem is mostly resolved

This reverts commits 5e8a28b946, e8c24e7e23, e8c24e7e23
This commit is contained in:
jacob1 2024-04-01 19:43:48 -04:00
parent 40e2e4a62a
commit e55fc8703a
No account linked to committer's email address
84 changed files with 200 additions and 905 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', '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, '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 # ( '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', 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', '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', 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 ), ( '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', 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 ), ( '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', 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 ), ( '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', 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 ( '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_variant = '@0@-@1@-@2@-@3@'.format(host_arch, host_platform, host_libc, tpt_libs_static)
tpt_libs_vtag = get_option('tpt_libs_vtag') tpt_libs_vtag = get_option('tpt_libs_vtag')
if tpt_libs_vtag == '' if tpt_libs_vtag == ''
tpt_libs_vtag = 'v20240330234517' tpt_libs_vtag = 'v20240112165024'
endif endif
if tpt_libs_static != 'none' if tpt_libs_static != 'none'
if tpt_libs_variant not in [ if tpt_libs_variant not in [

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -118,5 +118,3 @@ endif
data_files += to_array.process('save_local.png', extra_args: 'save_local_png') 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('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('font.bz2', extra_args: 'compressed_font_data')
data_files += to_array.process('elements.wav.bz2', extra_args: 'elements_wav_bz2')
data_files += to_array.process('cats.data', extra_args: 'cats_data')

View File

@ -1,38 +0,0 @@
#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;
int maxSounds = 100;
std::array<std::unique_ptr<Sound>, 1000> 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();
int GetMaxSounds();
void SetMaxSounds(int maxSounds);
void Play(int index);
~AudioEngine();
};

View File

@ -1,53 +0,0 @@
#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;
}
int AudioEngine::GetMaxSounds()
{
return 0;
}
void AudioEngine::SetMaxSounds(int maxSounds)
{
}
void AudioEngine::Play(int index)
{
}
AudioEngine::~AudioEngine()
{
}

View File

@ -1,148 +0,0 @@
#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;
}
int AudioEngine::GetMaxSounds()
{
return maxSounds;
}
void AudioEngine::SetMaxSounds(int maxSounds)
{
this->maxSounds = maxSounds;
}
void AudioEngine::Play(int index)
{
if (ready && index >= 0 && index <= 199 && (!counts[index] || index > 193) && (playing < maxSounds))
{
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);
}
}

View File

@ -1,206 +0,0 @@
#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,
};

View File

@ -1,39 +0,0 @@
#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;
}
}
}

View File

@ -1,20 +0,0 @@
#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);
};

View File

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

View File

@ -163,10 +163,4 @@ public:
private: private:
int gridSize; int gridSize;
static constexpr Vec2<int> kitcatSpriteConfig { 3, 4 };
static constexpr int kitcatSpriteSize = 13;
static uint8_t SampleSpriteSheet(Vec2<int> spritePos, Vec2<int> samplePos, int scale);
static PlaneAdapter<std::vector<uint8_t>> MakeMipMap(int scale, const char * filterName);
static std::array<PlaneAdapter<std::vector<uint8_t>>, (kitcatSpriteSize * 2)-1> kitcatmipmap;
}; };

View File

@ -5,9 +5,6 @@
#include "simulation/ElementClasses.h" #include "simulation/ElementClasses.h"
#include "simulation/ElementGraphics.h" #include "simulation/ElementGraphics.h"
#include "simulation/Simulation.h" #include "simulation/Simulation.h"
#include "Misc.h"
#include "cats.data.h"
#include "resampler/resampler.h"
constexpr auto VIDXRES = WINDOWW; constexpr auto VIDXRES = WINDOWW;
constexpr auto VIDYRES = WINDOWH; constexpr auto VIDYRES = WINDOWH;
@ -64,60 +61,38 @@ void Renderer::FinaliseParts()
} }
} }
uint8_t Renderer::SampleSpriteSheet(Vec2<int> spritePos, Vec2<int> samplePos, int scale) {
int x = samplePos.X;
int y = samplePos.Y;
if(scale >= kitcatmipmap.size()) {
x = int(std::floor((float(samplePos.X)/float(scale)) * kitcatSpriteSize));
y = int(std::floor((float(samplePos.Y)/float(scale)) * kitcatSpriteSize));
scale = kitcatSpriteSize;
}
return kitcatmipmap[scale][{x + spritePos.X*scale, y + spritePos.Y * scale}];
}
int xorshift(int x) {
x ^= x >> 11;
x ^= x << 5;
return x;
}
void Renderer::RenderZoom() void Renderer::RenderZoom()
{ {
if(!zoomEnabled) if(!zoomEnabled)
return; return;
{
int x, y, i, j;
pixel pix;
int x, y, i, j; DrawFilledRect(RectSized(zoomWindowPosition, { zoomScopeSize * ZFACTOR, zoomScopeSize * ZFACTOR }), 0x000000_rgb);
pixel pix; DrawRect(RectSized(zoomWindowPosition - Vec2{ 2, 2 }, Vec2{ zoomScopeSize*ZFACTOR+3, zoomScopeSize*ZFACTOR+3 }), 0xC0C0C0_rgb);
DrawRect(RectSized(zoomWindowPosition - Vec2{ 1, 1 }, Vec2{ zoomScopeSize*ZFACTOR+1, zoomScopeSize*ZFACTOR+1 }), 0x000000_rgb);
DrawFilledRect(RectSized(zoomWindowPosition, { zoomScopeSize * ZFACTOR, zoomScopeSize * ZFACTOR }), 0x000000_rgb); for (j=0; j<zoomScopeSize; j++)
DrawRect(RectSized(zoomWindowPosition - Vec2{ 2, 2 }, Vec2{ zoomScopeSize*ZFACTOR+3, zoomScopeSize*ZFACTOR+3 }), 0xC0C0C0_rgb); for (i=0; i<zoomScopeSize; i++)
DrawRect(RectSized(zoomWindowPosition - Vec2{ 1, 1 }, Vec2{ zoomScopeSize*ZFACTOR+1, zoomScopeSize*ZFACTOR+1 }), 0x000000_rgb); {
for (j=0; j<zoomScopeSize; j++) pix = video[{ i + zoomScopePosition.X, j + zoomScopePosition.Y }];
for (i=0; i<zoomScopeSize; i++) for (y=0; y<ZFACTOR-1; y++)
for (x=0; x<ZFACTOR-1; x++)
video[{ i * ZFACTOR + x + zoomWindowPosition.X, j * ZFACTOR + y + zoomWindowPosition.Y }] = pix;
}
if (zoomEnabled)
{ {
pix = video[{ i + zoomScopePosition.X, j + zoomScopePosition.Y }]; for (j=-1; j<=zoomScopeSize; j++)
int part = ID(sim->pmap[j + zoomScopePosition.Y][i + zoomScopePosition.X]); {
for (y=0; y<ZFACTOR-1; y++) XorPixel(zoomScopePosition + Vec2{ j, -1 });
for (x=0; x<ZFACTOR-1; x++) { XorPixel(zoomScopePosition + Vec2{ j, zoomScopeSize });
bool blink = ((sim->frameCount/10) + (part%51)) %51==0; }
bool panik = sim->parts[part].temp > 600; for (j=0; j<zoomScopeSize; j++)
auto sample = (part && xorshift(part)%21==0) ? SampleSpriteSheet({ panik ? 2 : (blink ? 1 : 0), part%4 }, { x, y }, ZFACTOR-1) : 0; {
XorPixel(zoomScopePosition + Vec2{ -1, j });
video[{ i * ZFACTOR + x + zoomWindowPosition.X, j * ZFACTOR + y + zoomWindowPosition.Y }] = RGBA<uint8_t>::Unpack(pix).NoAlpha().Blend(RGBA<uint8_t>(0, 0, 0, sample)).Pack(); XorPixel(zoomScopePosition + Vec2{ zoomScopeSize, j });
} }
} }
for (j=-1; j<=zoomScopeSize; j++)
{
XorPixel(zoomScopePosition + Vec2{ j, -1 });
XorPixel(zoomScopePosition + Vec2{ j, zoomScopeSize });
}
for (j=0; j<zoomScopeSize; j++)
{
XorPixel(zoomScopePosition + Vec2{ -1, j });
XorPixel(zoomScopePosition + Vec2{ zoomScopeSize, j });
} }
} }
@ -190,43 +165,11 @@ pixel Renderer::GetPixel(Vec2<int> pos) const
return video[pos]; return video[pos];
} }
PlaneAdapter<std::vector<uint8_t>> Renderer::MakeMipMap(int scale, const char * filterName) {
int scaledX = int((kitcatSpriteSize * kitcatSpriteConfig.X) * (float(scale)/kitcatSpriteSize));
int scaledY = int((kitcatSpriteSize * kitcatSpriteConfig.Y) * (float(scale)/kitcatSpriteSize));
PlaneAdapter<std::vector<uint8_t>> mipmap({scaledX, scaledY});
Resampler resampler(
kitcatSpriteSize * kitcatSpriteConfig.X, kitcatSpriteSize * kitcatSpriteConfig.Y, // source size
scaledX, scaledY,
Resampler::BOUNDARY_CLAMP,
0.0f, 255.0f,
filterName,
NULL, NULL,
0.75f, 0.75f
);
auto line = std::make_unique<float []>(kitcatSpriteSize * kitcatSpriteConfig.X);
auto destY = 0;
for (int y = 0; y < kitcatSpriteConfig.Y * kitcatSpriteSize; y++)
{
for(int x = 0; x < kitcatSpriteConfig.X * kitcatSpriteSize; x++) {
line[x] = cats_data[x + (y * kitcatSpriteConfig.X * kitcatSpriteSize)];
}
resampler.put_line(line.get());
while(auto outLine = resampler.get_line()) {
for(int destX = 0; destX < scaledX; destX++) {
mipmap.data()[destX + (destY * scaledX)] = uint8_t(outLine[destX]);
}
destY++;
}
}
return mipmap;
}
std::vector<RGB<uint8_t>> Renderer::flameTable; std::vector<RGB<uint8_t>> Renderer::flameTable;
std::vector<RGB<uint8_t>> Renderer::plasmaTable; std::vector<RGB<uint8_t>> Renderer::plasmaTable;
std::vector<RGB<uint8_t>> Renderer::heatTable; std::vector<RGB<uint8_t>> Renderer::heatTable;
std::vector<RGB<uint8_t>> Renderer::clfmTable; std::vector<RGB<uint8_t>> Renderer::clfmTable;
std::vector<RGB<uint8_t>> Renderer::firwTable; std::vector<RGB<uint8_t>> Renderer::firwTable;
std::array<PlaneAdapter<std::vector<uint8_t>>, (Renderer::kitcatSpriteSize*2)-1> Renderer::kitcatmipmap;
static bool tablesPopulated = false; static bool tablesPopulated = false;
static std::mutex tablesPopulatedMx; static std::mutex tablesPopulatedMx;
void Renderer::PopulateTables() void Renderer::PopulateTables()
@ -278,17 +221,6 @@ void Renderer::PopulateTables()
{ 0xFFFF00_rgb, 0.80f }, { 0xFFFF00_rgb, 0.80f },
{ 0xFF0000_rgb, 1.00f }, { 0xFF0000_rgb, 1.00f },
}, 200); }, 200);
for(int scale = 1; scale < kitcatmipmap.size(); scale++) {
if(scale == kitcatSpriteSize) {
kitcatmipmap[scale] = PlaneAdapter<std::vector<uint8_t>>({kitcatSpriteConfig.X * kitcatSpriteSize, kitcatSpriteConfig.Y * kitcatSpriteSize});
std::copy(reinterpret_cast<const uint8_t *>(cats_data), reinterpret_cast<const uint8_t *>(cats_data+cats_data_size), kitcatmipmap[scale].data());
} else if(scale > kitcatSpriteSize) {
kitcatmipmap[scale] = MakeMipMap(scale, "mitchell");
} else {
kitcatmipmap[scale] = MakeMipMap(scale, "lanczos4");
}
}
} }
} }

View File

@ -63,8 +63,6 @@
#include "gui/tags/TagsController.h" #include "gui/tags/TagsController.h"
#include "gui/tags/TagsView.h" #include "gui/tags/TagsView.h"
#include "audio/AudioEngine.h"
#include "Config.h" #include "Config.h"
#include <SDL.h> #include <SDL.h>
#include <iostream> #include <iostream>
@ -241,7 +239,7 @@ void GameController::PlaceSave(ui::Point position)
if (placeSave) if (placeSave)
{ {
HistorySnapshot(); HistorySnapshot();
gameModel->GetSimulation()->Load(placeSave, !gameView->ShiftBehaviour(), position, true); gameModel->GetSimulation()->Load(placeSave, !gameView->ShiftBehaviour(), position);
gameModel->SetPaused(placeSave->paused | gameModel->GetPaused()); gameModel->SetPaused(placeSave->paused | gameModel->GetPaused());
Client::Ref().MergeStampAuthorInfo(placeSave->authors); Client::Ref().MergeStampAuthorInfo(placeSave->authors);
} }
@ -648,7 +646,7 @@ bool GameController::KeyPress(int key, int scan, bool repeat, bool shift, bool c
SwitchGravity(); SwitchGravity();
break; break;
case SDL_SCANCODE_D: case SDL_SCANCODE_D:
SetDebugHUD(!gameView->GetDebugHUD()); gameView->SetDebugHUD(!gameView->GetDebugHUD());
break; break;
case SDL_SCANCODE_S: case SDL_SCANCODE_S:
gameView->BeginStampSelection(); gameView->BeginStampSelection();
@ -1009,8 +1007,6 @@ bool GameController::GetBrushEnable()
void GameController::SetDebugHUD(bool hudState) void GameController::SetDebugHUD(bool hudState)
{ {
gameView->SetDebugHUD(hudState); gameView->SetDebugHUD(hudState);
gameModel->GetSimulation()->ae->Play(hudState ? 198 : 199);
// https://discord.com/channels/311697121914912768/311697121914912768/1165803116030083162
} }
bool GameController::GetDebugHUD() bool GameController::GetDebugHUD()

View File

@ -998,7 +998,7 @@ void GameModel::SetSave(std::unique_ptr<SaveInfo> newSave, bool invertIncludePre
SaveToSimParameters(*saveData); SaveToSimParameters(*saveData);
sim->clear_sim(); sim->clear_sim();
ren->ClearAccumulation(); ren->ClearAccumulation();
sim->Load(saveData, !invertIncludePressure, { 0, 0 }, true); sim->Load(saveData, !invertIncludePressure, { 0, 0 });
// This save was created before logging existed // This save was created before logging existed
// Add in the correct info // Add in the correct info
if (saveData->authors.size() == 0) 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; doScreenshot = true;
break; break;
case SDL_SCANCODE_F3: case SDL_SCANCODE_F3:
c->SetDebugHUD(!GetDebugHUD()); SetDebugHUD(!GetDebugHUD());
break; break;
case SDL_SCANCODE_F5: case SDL_SCANCODE_F5:
c->ReloadSim(); c->ReloadSim();
@ -2484,9 +2484,6 @@ void GameView::OnDraw()
fpsInfo << " Parts: " << ren->foundElements << "/" << sample.NumParts; fpsInfo << " Parts: " << ren->foundElements << "/" << sample.NumParts;
else else
fpsInfo << " Parts: " << sample.NumParts; fpsInfo << " Parts: " << sample.NumParts;
fpsInfo << " Sounds: " << sample.SoundsPlaying;
if (sample.SoundsPlaying == 69)
fpsInfo << " (Nice)";
} }
if (c->GetReplaceModeFlags()&REPLACE_MODE) if (c->GetReplaceModeFlags()&REPLACE_MODE)
fpsInfo << " [REPLACE MODE]"; fpsInfo << " [REPLACE MODE]";

View File

@ -152,16 +152,6 @@ void OptionsController::SetMomentumScroll(bool momentumScroll)
model->SetMomentumScroll(momentumScroll); model->SetMomentumScroll(momentumScroll);
} }
int OptionsController::GetMaxSounds()
{
return model->GetMaxSounds();
}
void OptionsController::SetMaxSounds(int maxSounds)
{
model->SetMaxSounds(maxSounds);
}
void OptionsController::Exit() void OptionsController::Exit()
{ {
view->CloseActiveWindow(); view->CloseActiveWindow();

View File

@ -39,8 +39,6 @@ public:
void SetIncludePressure(bool includePressure); void SetIncludePressure(bool includePressure);
void SetPerfectCircle(bool perfectCircle); void SetPerfectCircle(bool perfectCircle);
void SetMomentumScroll(bool momentumScroll); void SetMomentumScroll(bool momentumScroll);
int GetMaxSounds();
void SetMaxSounds(int maxSounds);
void Exit(); void Exit();
OptionsView * GetView(); OptionsView * GetView();

View File

@ -1,6 +1,5 @@
#include "OptionsModel.h" #include "OptionsModel.h"
#include "OptionsView.h" #include "OptionsView.h"
#include "audio/AudioEngine.h"
#include "simulation/Simulation.h" #include "simulation/Simulation.h"
#include "simulation/Air.h" #include "simulation/Air.h"
#include "simulation/gravity/Gravity.h" #include "simulation/gravity/Gravity.h"
@ -319,16 +318,6 @@ void OptionsModel::SetMomentumScroll(bool state)
notifySettingsChanged(); notifySettingsChanged();
} }
int OptionsModel::GetMaxSounds()
{
return sim->ae->GetMaxSounds();
}
void OptionsModel::SetMaxSounds(int maxSounds)
{
sim->ae->SetMaxSounds(maxSounds);
}
void OptionsModel::notifySettingsChanged() void OptionsModel::notifySettingsChanged()
{ {
for (size_t i = 0; i < observers.size(); i++) for (size_t i = 0; i < observers.size(); i++)

View File

@ -65,7 +65,5 @@ public:
void SetPerfectCircle(bool perfectCircle); void SetPerfectCircle(bool perfectCircle);
bool GetMomentumScroll(); bool GetMomentumScroll();
void SetMomentumScroll(bool momentumScroll); void SetMomentumScroll(bool momentumScroll);
int GetMaxSounds();
void SetMaxSounds(int maxSounds);
virtual ~OptionsModel(); virtual ~OptionsModel();
}; };

View File

@ -10,9 +10,7 @@
#include "simulation/ElementDefs.h" #include "simulation/ElementDefs.h"
#include "simulation/SimulationData.h" #include "simulation/SimulationData.h"
#include "client/Client.h" #include "client/Client.h"
#include "prefs/GlobalPrefs.h"
#include "gui/dialogues/ConfirmPrompt.h" #include "gui/dialogues/ConfirmPrompt.h"
#include "gui/dialogues/ErrorMessage.h"
#include "gui/dialogues/InformationMessage.h" #include "gui/dialogues/InformationMessage.h"
#include "gui/interface/Button.h" #include "gui/interface/Button.h"
#include "gui/interface/Checkbox.h" #include "gui/interface/Checkbox.h"
@ -23,7 +21,6 @@
#include "gui/interface/DirectionSelector.h" #include "gui/interface/DirectionSelector.h"
#include "PowderToySDL.h" #include "PowderToySDL.h"
#include "Config.h" #include "Config.h"
#include <algorithm>
#include <cstdio> #include <cstdio>
#include <cstring> #include <cstring>
#include <cmath> #include <cmath>
@ -329,17 +326,6 @@ OptionsView::OptionsView() : ui::Window(ui::Point(-1, -1), ui::Point(320, 340))
}, [this] { }, [this] {
c->SetDecoSpace(decoSpace->GetOption().second); c->SetDecoSpace(decoSpace->GetOption().second);
}); });
maxSounds = new ui::Textbox(ui::Point(Size.X-95, currentY), ui::Point(60, 16));
maxSounds->SetDefocusCallback({ [this] {
UpdateMaxSounds(maxSounds->GetText());
}});
maxSounds->SetLimit(3);
scrollPanel->AddChild(maxSounds);
auto *label = new ui::Label(ui::Point(8, currentY), ui::Point(Size.X-105, 16), "Max sounds");
label->Appearance.HorizontalAlign = ui::Appearance::AlignLeft;
label->Appearance.VerticalAlign = ui::Appearance::AlignMiddle;
scrollPanel->AddChild(label);
currentY += 20;
currentY += 4; currentY += 4;
if (ALLOW_DATA_FOLDER) if (ALLOW_DATA_FOLDER)
@ -447,33 +433,6 @@ void OptionsView::UpdateAirTemp(String temp, bool isDefocus)
UpdateAmbientAirTempPreview(airTemp, isValid); UpdateAmbientAirTempPreview(airTemp, isValid);
} }
void OptionsView::UpdateMaxSounds(String sounds)
{
int max = -1;
try
{
max = std::clamp(sounds.ToNumber<int>(), 0, 999);
}
catch (const std::exception &e)
{
maxSounds->SetText(String::Build(c->GetMaxSounds()));
return;
}
if (max < interfaceRng.between(0, 40))
{
int coins = GlobalPrefs::Ref().Get("Coins.coins", 0);
if (coins < 20)
{
new ErrorMessage("Error", String::Build("This options requires 20 \xEE\x81\xAAowdercoins to change, but you only have ", coins));
maxSounds->SetText(String::Build(c->GetMaxSounds()));
return;
}
GlobalPrefs::Ref().Set("Coins.coins", coins - 20);
}
c->SetMaxSounds(max);
}
void OptionsView::NotifySettingsChanged(OptionsModel * sender) void OptionsView::NotifySettingsChanged(OptionsModel * sender)
{ {
temperatureScale->SetOption(sender->GetTemperatureScale()); // has to happen before AmbientAirTempToTextBox is called temperatureScale->SetOption(sender->GetTemperatureScale()); // has to happen before AmbientAirTempToTextBox is called
@ -532,7 +491,6 @@ void OptionsView::NotifySettingsChanged(OptionsModel * sender)
perfectCircle->SetChecked(sender->GetPerfectCircle()); perfectCircle->SetChecked(sender->GetPerfectCircle());
graveExitsConsole->SetChecked(sender->GetGraveExitsConsole()); graveExitsConsole->SetChecked(sender->GetGraveExitsConsole());
momentumScroll->SetChecked(sender->GetMomentumScroll()); momentumScroll->SetChecked(sender->GetMomentumScroll());
maxSounds->SetText(String::Build(sender->GetMaxSounds()));
} }
void OptionsView::AttachController(OptionsController * c_) void OptionsView::AttachController(OptionsController * c_)

View File

@ -41,13 +41,11 @@ class OptionsView: public ui::Window
ui::Checkbox *perfectCircle{}; ui::Checkbox *perfectCircle{};
ui::Checkbox *graveExitsConsole{}; ui::Checkbox *graveExitsConsole{};
ui::Checkbox *nativeClipoard{}; ui::Checkbox *nativeClipoard{};
ui::Textbox *maxSounds{};
ui::ScrollPanel *scrollPanel{}; ui::ScrollPanel *scrollPanel{};
float customGravityX, customGravityY; float customGravityX, customGravityY;
void UpdateAmbientAirTempPreview(float airTemp, bool isValid); void UpdateAmbientAirTempPreview(float airTemp, bool isValid);
void AmbientAirTempToTextBox(float airTemp); void AmbientAirTempToTextBox(float airTemp);
void UpdateAirTemp(String temp, bool isDefocus); void UpdateAirTemp(String temp, bool isDefocus);
void UpdateMaxSounds(String temp);
public: public:
OptionsView(); OptionsView();
void NotifySettingsChanged(OptionsModel * sender); void NotifySettingsChanged(OptionsModel * sender);

View File

@ -968,7 +968,7 @@ static int loadStamp(lua_State *L)
gameSave->Transform(transform, { remX, remY }); gameSave->Transform(transform, { remX, remY });
} }
auto *lsi = GetLSI(); auto *lsi = GetLSI();
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY }, true); lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY });
lua_pushinteger(L, 1); lua_pushinteger(L, 1);
if (gameSave->authors.size()) if (gameSave->authors.size())

View File

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

View File

@ -13,8 +13,6 @@
#include <iostream> #include <iostream>
#include <cmath> #include <cmath>
#include "audio/AudioEngine.h"
std::unique_ptr<Snapshot> Simulation::CreateSnapshot() const std::unique_ptr<Snapshot> Simulation::CreateSnapshot() const
{ {
auto snap = std::make_unique<Snapshot>(); auto snap = std::make_unique<Snapshot>();
@ -156,7 +154,6 @@ SimulationSample Simulation::GetSample(int x, int y)
sample.isMouseInSim = false; sample.isMouseInSim = false;
sample.NumParts = NUM_PARTS; sample.NumParts = NUM_PARTS;
sample.SoundsPlaying = ae->SoundsPlaying();
return sample; return sample;
} }

View File

@ -18,8 +18,7 @@ public:
float GravityVelocityY; float GravityVelocityY;
int NumParts; int NumParts;
int SoundsPlaying;
bool isMouseInSim; 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), SoundsPlaying(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), isMouseInSim(true) {}
}; };

View File

@ -16,14 +16,12 @@
#include <iostream> #include <iostream>
#include <set> #include <set>
#include "audio/AudioEngine.h"
static float remainder_p(float x, float y) static float remainder_p(float x, float y)
{ {
return std::fmod(x, y) + (x>=0 ? 0 : y); return std::fmod(x, y) + (x>=0 ? 0 : y);
} }
void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> blockP, bool allowMoo) // block coordinates void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> blockP) // block coordinates
{ {
auto partP = blockP * CELL; auto partP = blockP * CELL;
@ -78,7 +76,6 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
} }
}; };
int protCount = 0;
std::map<unsigned int, unsigned int> soapList; std::map<unsigned int, unsigned int> soapList;
for (int n = 0; n < NPART && n < save->particlesCount; n++) for (int n = 0; n < NPART && n < save->particlesCount; n++)
{ {
@ -213,9 +210,6 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
case PT_SOAP: case PT_SOAP:
soapList.insert(std::pair<unsigned int, unsigned int>(n, i)); soapList.insert(std::pair<unsigned int, unsigned int>(n, i));
break; break;
case PT_PROT:
protCount++;
break;
} }
if (GameSave::PressureInTmp3(parts[i].type) && !includePressure) if (GameSave::PressureInTmp3(parts[i].type) && !includePressure)
{ {
@ -300,11 +294,6 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
{ {
air->ApproximateBlockAirMaps(); air->ApproximateBlockAirMaps();
} }
if (allowMoo && protCount == 1943)
{
ae->Play(197);
}
} }
std::unique_ptr<GameSave> Simulation::Save(bool includePressure, Rect<int> partR) // particle coordinates std::unique_ptr<GameSave> Simulation::Save(bool includePressure, Rect<int> partR) // particle coordinates
@ -1766,11 +1755,6 @@ bool Simulation::part_change_type(int i, int x, int y, int t)
return false; return false;
} }
if (t <= PT_RSSS)
{
ae->Play(t);
}
if (elements[parts[i].type].ChangeType) if (elements[parts[i].type].ChangeType)
(*(elements[parts[i].type].ChangeType))(this, i, x, y, parts[i].type, t); (*(elements[parts[i].type].ChangeType))(this, i, x, y, parts[i].type, t);
if (elements[t].ChangeType) if (elements[t].ChangeType)
@ -1901,11 +1885,6 @@ int Simulation::create_part(int p, int x, int y, int t, int v)
i = p; 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; if (i>parts_lastActiveIndex) parts_lastActiveIndex = i;
parts[i] = elements[t].DefaultProperties; parts[i] = elements[t].DefaultProperties;
@ -3907,7 +3886,6 @@ void Simulation::AfterSim()
Simulation::~Simulation() = default; Simulation::~Simulation() = default;
Simulation::Simulation(): Simulation::Simulation():
ae(std::make_unique<AudioEngine>()),
replaceModeSelected(0), replaceModeSelected(0),
replaceModeFlags(0), replaceModeFlags(0),
debug_nextToUpdate(0), debug_nextToUpdate(0),

View File

@ -32,8 +32,6 @@ class Gravity;
class Air; class Air;
class GameSave; class GameSave;
class AudioEngine;
class Simulation class Simulation
{ {
public: public:
@ -41,8 +39,6 @@ public:
std::unique_ptr<Air> air; std::unique_ptr<Air> air;
RNG rng; RNG rng;
std::unique_ptr<AudioEngine> ae;
std::vector<sign> signs; std::vector<sign> signs;
//Element * elements; //Element * elements;
@ -117,7 +113,7 @@ public:
uint64_t frameCount; uint64_t frameCount;
bool ensureDeterminism; bool ensureDeterminism;
void Load(const GameSave *save, bool includePressure, Vec2<int> blockP, bool allowMoo = false); // block coordinates void Load(const GameSave *save, bool includePressure, Vec2<int> blockP); // block coordinates
std::unique_ptr<GameSave> Save(bool includePressure, Rect<int> partR); // particle coordinates std::unique_ptr<GameSave> Save(bool includePressure, Rect<int> partR); // particle coordinates
void SaveSimOptions(GameSave &gameSave); void SaveSimOptions(GameSave &gameSave);
SimulationSample GetSample(int x, int y); SimulationSample GetSample(int x, int y);

View File

@ -1,7 +1,5 @@
#include "simulation/ElementCommon.h" #include "simulation/ElementCommon.h"
#include "audio/AudioEngine.h"
static int update(UPDATE_FUNC_ARGS); static int update(UPDATE_FUNC_ARGS);
static int graphics(GRAPHICS_FUNC_ARGS); static int graphics(GRAPHICS_FUNC_ARGS);
@ -67,7 +65,6 @@ static int update(UPDATE_FUNC_ARGS)
auto rt = TYP(r); auto rt = TYP(r);
if (rt==PT_FIRE||rt==PT_PLSM||rt==PT_THDR) if (rt==PT_FIRE||rt==PT_PLSM||rt==PT_THDR)
{ {
sim->ae->Play(195);
float gx, gy, multiplier; float gx, gy, multiplier;
sim->GetGravityField(x, y, elements[PT_FIRW].Gravity, 1.0f, gx, gy); sim->GetGravityField(x, y, elements[PT_FIRW].Gravity, 1.0f, gx, gy);
if (gx*gx+gy*gy < 0.001f) if (gx*gx+gy*gy < 0.001f)
@ -96,7 +93,6 @@ static int update(UPDATE_FUNC_ARGS)
} }
else //if (parts[i].tmp>=2) else //if (parts[i].tmp>=2)
{ {
sim->ae->Play(196);
unsigned col = Renderer::firwTableAt(sim->rng.between(0, 199)).Pack(); unsigned col = Renderer::firwTableAt(sim->rng.between(0, 199)).Pack();
for (int n=0; n<40; n++) for (int n=0; n<40; n++)
{ {

View File

@ -1,13 +1,11 @@
#include "simulation/ElementCommon.h" #include "simulation/ElementCommon.h"
#include "audio/AudioEngine.h"
static int update(UPDATE_FUNC_ARGS); static int update(UPDATE_FUNC_ARGS);
void Element::Element_GOO() void Element::Element_GOO()
{ {
Identifier = "DEFAULT_PT_GOO"; Identifier = "DEFAULT_PT_GOO";
Name = "SQRL"; Name = "GOO";
Colour = 0x804000_rgb; Colour = 0x804000_rgb;
MenuVisible = 1; MenuVisible = 1;
MenuSection = SC_SOLIDS; MenuSection = SC_SOLIDS;
@ -32,7 +30,7 @@ void Element::Element_GOO()
Weight = 100; Weight = 100;
HeatConduct = 75; HeatConduct = 75;
Description = "Squirrels. \"Every time we cut an emoji for a squirrel we have to cut it from tpt as well\" - jacob1"; Description = "Deforms and disappears under pressure.";
Properties = TYPE_SOLID | PROP_NEUTPENETRATE|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC; Properties = TYPE_SOLID | PROP_NEUTPENETRATE|PROP_LIFE_DEC|PROP_LIFE_KILL_DEC;
@ -52,10 +50,6 @@ constexpr float ADVECTION = 0.1f;
static int update(UPDATE_FUNC_ARGS) 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) if (!parts[i].life && sim->pv[y/CELL][x/CELL]>1.0f)
parts[i].life = sim->rng.between(300, 379); parts[i].life = sim->rng.between(300, 379);
if (parts[i].life) if (parts[i].life)

View File

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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

@ -0,0 +1,6 @@
[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

@ -1,6 +0,0 @@
[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