The squirrel infestation problem is mostly resolved
This reverts commits5e8a28b946
,e8c24e7e23
,e8c24e7e23
This commit is contained in:
parent
40e2e4a62a
commit
e55fc8703a
16
.github/prepare.py
vendored
16
.github/prepare.py
vendored
@ -128,14 +128,14 @@ for arch, platform, libc, statdyn, bplatform, runso
|
|||||||
( 'aarch64', 'darwin', 'macos', 'static', 'darwin', 'macos-12', '.dmg', True, True, None, 'dmg', 'arm64-mac-gcc-static', 'release', 10 ),
|
( 'aarch64', 'darwin', 'macos', '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
|
||||||
]:
|
]:
|
||||||
|
@ -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.
@ -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')
|
|
||||||
|
@ -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();
|
|
||||||
};
|
|
@ -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()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
@ -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);
|
|
||||||
}
|
|
||||||
}
|
|
@ -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,
|
|
||||||
};
|
|
@ -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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -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);
|
|
||||||
};
|
|
@ -1,8 +0,0 @@
|
|||||||
powder_files += files(
|
|
||||||
'AudioEngineReal.cpp',
|
|
||||||
'Sound.cpp',
|
|
||||||
)
|
|
||||||
|
|
||||||
render_files += files(
|
|
||||||
'AudioEngineFake.cpp',
|
|
||||||
)
|
|
@ -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;
|
|
||||||
};
|
};
|
||||||
|
@ -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");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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()
|
||||||
|
@ -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)
|
||||||
|
@ -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]";
|
||||||
|
@ -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();
|
||||||
|
@ -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();
|
||||||
|
@ -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++)
|
||||||
|
@ -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();
|
||||||
};
|
};
|
||||||
|
@ -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_)
|
||||||
|
@ -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);
|
||||||
|
@ -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())
|
||||||
|
@ -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')
|
||||||
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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) {}
|
||||||
};
|
};
|
||||||
|
@ -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),
|
||||||
|
@ -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);
|
||||||
|
@ -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++)
|
||||||
{
|
{
|
||||||
|
@ -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)
|
||||||
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
@ -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
|
@ -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
|
|
Loading…
Reference in New Issue
Block a user