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', 'dynamic', 'darwin', 'macos-12', '.dmg', False, False, None, 'dmg', None, 'debug', 10 ), # macos-11.0 is x86_64 and I haven't yet figured out how to get homebrew to install aarch64 libs on x86_64
|
||||
# ( 'aarch64', 'darwin', 'macos', 'dynamic', 'darwin', 'macos-12', '.dmg', False, False, None, 'dmg', None, 'release', 10 ), # macos-11.0 is x86_64 and I haven't yet figured out how to get homebrew to install aarch64 libs on x86_64
|
||||
# ( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'i686-and-gcc-static', 'release', 10 ),
|
||||
# ( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'x86_64-and-gcc-static', 'release', 10 ),
|
||||
# ( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm-and-gcc-static', 'release', 10 ),
|
||||
# ( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
# ( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm64-and-gcc-static', 'release', 10 ),
|
||||
( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'x86', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'i686-and-gcc-static', 'release', 10 ),
|
||||
( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'x86_64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'x86_64-and-gcc-static', 'release', 10 ),
|
||||
( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'arm', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm-and-gcc-static', 'release', 10 ),
|
||||
( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'aarch64', 'android', 'bionic', 'static', 'linux', 'ubuntu-20.04', '.apk', True, True, '.dbg', None, 'arm64-and-gcc-static', 'release', 10 ),
|
||||
( 'wasm32', 'emscripten', 'emscripten', 'static', 'linux', 'ubuntu-20.04', '.tar', False, False, None, None, None, 'debug', 0 ), # priority = 0: rarely used debug build
|
||||
( 'wasm32', 'emscripten', 'emscripten', 'static', 'linux', 'ubuntu-20.04', '.tar', True, True, None, 'emscripten', 'wasm32-ems-static', 'release', 10 ), # I have no idea how to separate debug info on emscripten
|
||||
]:
|
||||
|
@ -86,7 +86,7 @@ tpt_libs_debug = is_debug ? 'debug' : 'release'
|
||||
tpt_libs_variant = '@0@-@1@-@2@-@3@'.format(host_arch, host_platform, host_libc, tpt_libs_static)
|
||||
tpt_libs_vtag = get_option('tpt_libs_vtag')
|
||||
if tpt_libs_vtag == ''
|
||||
tpt_libs_vtag = 'v20240330234517'
|
||||
tpt_libs_vtag = 'v20240112165024'
|
||||
endif
|
||||
if tpt_libs_static != 'none'
|
||||
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_online.png', extra_args: 'save_online_png')
|
||||
data_files += to_array.process('font.bz2', extra_args: 'compressed_font_data')
|
||||
data_files += to_array.process('elements.wav.bz2', extra_args: 'elements_wav_bz2')
|
||||
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:
|
||||
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/ElementGraphics.h"
|
||||
#include "simulation/Simulation.h"
|
||||
#include "Misc.h"
|
||||
#include "cats.data.h"
|
||||
#include "resampler/resampler.h"
|
||||
|
||||
constexpr auto VIDXRES = WINDOWW;
|
||||
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()
|
||||
{
|
||||
if(!zoomEnabled)
|
||||
return;
|
||||
{
|
||||
int x, y, i, j;
|
||||
pixel pix;
|
||||
|
||||
int x, y, i, j;
|
||||
pixel pix;
|
||||
|
||||
DrawFilledRect(RectSized(zoomWindowPosition, { zoomScopeSize * ZFACTOR, zoomScopeSize * ZFACTOR }), 0x000000_rgb);
|
||||
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);
|
||||
for (j=0; j<zoomScopeSize; j++)
|
||||
for (i=0; i<zoomScopeSize; i++)
|
||||
DrawFilledRect(RectSized(zoomWindowPosition, { zoomScopeSize * ZFACTOR, zoomScopeSize * ZFACTOR }), 0x000000_rgb);
|
||||
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);
|
||||
for (j=0; j<zoomScopeSize; j++)
|
||||
for (i=0; i<zoomScopeSize; i++)
|
||||
{
|
||||
pix = video[{ i + zoomScopePosition.X, j + zoomScopePosition.Y }];
|
||||
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 }];
|
||||
int part = ID(sim->pmap[j + zoomScopePosition.Y][i + zoomScopePosition.X]);
|
||||
for (y=0; y<ZFACTOR-1; y++)
|
||||
for (x=0; x<ZFACTOR-1; x++) {
|
||||
bool blink = ((sim->frameCount/10) + (part%51)) %51==0;
|
||||
bool panik = sim->parts[part].temp > 600;
|
||||
auto sample = (part && xorshift(part)%21==0) ? SampleSpriteSheet({ panik ? 2 : (blink ? 1 : 0), part%4 }, { x, y }, ZFACTOR-1) : 0;
|
||||
|
||||
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();
|
||||
}
|
||||
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 });
|
||||
}
|
||||
}
|
||||
|
||||
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];
|
||||
}
|
||||
|
||||
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::plasmaTable;
|
||||
std::vector<RGB<uint8_t>> Renderer::heatTable;
|
||||
std::vector<RGB<uint8_t>> Renderer::clfmTable;
|
||||
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 std::mutex tablesPopulatedMx;
|
||||
void Renderer::PopulateTables()
|
||||
@ -278,17 +221,6 @@ void Renderer::PopulateTables()
|
||||
{ 0xFFFF00_rgb, 0.80f },
|
||||
{ 0xFF0000_rgb, 1.00f },
|
||||
}, 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/TagsView.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
#include "Config.h"
|
||||
#include <SDL.h>
|
||||
#include <iostream>
|
||||
@ -241,7 +239,7 @@ void GameController::PlaceSave(ui::Point position)
|
||||
if (placeSave)
|
||||
{
|
||||
HistorySnapshot();
|
||||
gameModel->GetSimulation()->Load(placeSave, !gameView->ShiftBehaviour(), position, true);
|
||||
gameModel->GetSimulation()->Load(placeSave, !gameView->ShiftBehaviour(), position);
|
||||
gameModel->SetPaused(placeSave->paused | gameModel->GetPaused());
|
||||
Client::Ref().MergeStampAuthorInfo(placeSave->authors);
|
||||
}
|
||||
@ -648,7 +646,7 @@ bool GameController::KeyPress(int key, int scan, bool repeat, bool shift, bool c
|
||||
SwitchGravity();
|
||||
break;
|
||||
case SDL_SCANCODE_D:
|
||||
SetDebugHUD(!gameView->GetDebugHUD());
|
||||
gameView->SetDebugHUD(!gameView->GetDebugHUD());
|
||||
break;
|
||||
case SDL_SCANCODE_S:
|
||||
gameView->BeginStampSelection();
|
||||
@ -1009,8 +1007,6 @@ bool GameController::GetBrushEnable()
|
||||
void GameController::SetDebugHUD(bool hudState)
|
||||
{
|
||||
gameView->SetDebugHUD(hudState);
|
||||
gameModel->GetSimulation()->ae->Play(hudState ? 198 : 199);
|
||||
// https://discord.com/channels/311697121914912768/311697121914912768/1165803116030083162
|
||||
}
|
||||
|
||||
bool GameController::GetDebugHUD()
|
||||
|
@ -998,7 +998,7 @@ void GameModel::SetSave(std::unique_ptr<SaveInfo> newSave, bool invertIncludePre
|
||||
SaveToSimParameters(*saveData);
|
||||
sim->clear_sim();
|
||||
ren->ClearAccumulation();
|
||||
sim->Load(saveData, !invertIncludePressure, { 0, 0 }, true);
|
||||
sim->Load(saveData, !invertIncludePressure, { 0, 0 });
|
||||
// This save was created before logging existed
|
||||
// Add in the correct info
|
||||
if (saveData->authors.size() == 0)
|
||||
|
@ -1416,7 +1416,7 @@ void GameView::OnKeyPress(int key, int scan, bool repeat, bool shift, bool ctrl,
|
||||
doScreenshot = true;
|
||||
break;
|
||||
case SDL_SCANCODE_F3:
|
||||
c->SetDebugHUD(!GetDebugHUD());
|
||||
SetDebugHUD(!GetDebugHUD());
|
||||
break;
|
||||
case SDL_SCANCODE_F5:
|
||||
c->ReloadSim();
|
||||
@ -2484,9 +2484,6 @@ void GameView::OnDraw()
|
||||
fpsInfo << " Parts: " << ren->foundElements << "/" << sample.NumParts;
|
||||
else
|
||||
fpsInfo << " Parts: " << sample.NumParts;
|
||||
fpsInfo << " Sounds: " << sample.SoundsPlaying;
|
||||
if (sample.SoundsPlaying == 69)
|
||||
fpsInfo << " (Nice)";
|
||||
}
|
||||
if (c->GetReplaceModeFlags()&REPLACE_MODE)
|
||||
fpsInfo << " [REPLACE MODE]";
|
||||
|
@ -152,16 +152,6 @@ void OptionsController::SetMomentumScroll(bool momentumScroll)
|
||||
model->SetMomentumScroll(momentumScroll);
|
||||
}
|
||||
|
||||
int OptionsController::GetMaxSounds()
|
||||
{
|
||||
return model->GetMaxSounds();
|
||||
}
|
||||
|
||||
void OptionsController::SetMaxSounds(int maxSounds)
|
||||
{
|
||||
model->SetMaxSounds(maxSounds);
|
||||
}
|
||||
|
||||
void OptionsController::Exit()
|
||||
{
|
||||
view->CloseActiveWindow();
|
||||
|
@ -39,8 +39,6 @@ public:
|
||||
void SetIncludePressure(bool includePressure);
|
||||
void SetPerfectCircle(bool perfectCircle);
|
||||
void SetMomentumScroll(bool momentumScroll);
|
||||
int GetMaxSounds();
|
||||
void SetMaxSounds(int maxSounds);
|
||||
|
||||
void Exit();
|
||||
OptionsView * GetView();
|
||||
|
@ -1,6 +1,5 @@
|
||||
#include "OptionsModel.h"
|
||||
#include "OptionsView.h"
|
||||
#include "audio/AudioEngine.h"
|
||||
#include "simulation/Simulation.h"
|
||||
#include "simulation/Air.h"
|
||||
#include "simulation/gravity/Gravity.h"
|
||||
@ -319,16 +318,6 @@ void OptionsModel::SetMomentumScroll(bool state)
|
||||
notifySettingsChanged();
|
||||
}
|
||||
|
||||
int OptionsModel::GetMaxSounds()
|
||||
{
|
||||
return sim->ae->GetMaxSounds();
|
||||
}
|
||||
|
||||
void OptionsModel::SetMaxSounds(int maxSounds)
|
||||
{
|
||||
sim->ae->SetMaxSounds(maxSounds);
|
||||
}
|
||||
|
||||
void OptionsModel::notifySettingsChanged()
|
||||
{
|
||||
for (size_t i = 0; i < observers.size(); i++)
|
||||
|
@ -65,7 +65,5 @@ public:
|
||||
void SetPerfectCircle(bool perfectCircle);
|
||||
bool GetMomentumScroll();
|
||||
void SetMomentumScroll(bool momentumScroll);
|
||||
int GetMaxSounds();
|
||||
void SetMaxSounds(int maxSounds);
|
||||
virtual ~OptionsModel();
|
||||
};
|
||||
|
@ -10,9 +10,7 @@
|
||||
#include "simulation/ElementDefs.h"
|
||||
#include "simulation/SimulationData.h"
|
||||
#include "client/Client.h"
|
||||
#include "prefs/GlobalPrefs.h"
|
||||
#include "gui/dialogues/ConfirmPrompt.h"
|
||||
#include "gui/dialogues/ErrorMessage.h"
|
||||
#include "gui/dialogues/InformationMessage.h"
|
||||
#include "gui/interface/Button.h"
|
||||
#include "gui/interface/Checkbox.h"
|
||||
@ -23,7 +21,6 @@
|
||||
#include "gui/interface/DirectionSelector.h"
|
||||
#include "PowderToySDL.h"
|
||||
#include "Config.h"
|
||||
#include <algorithm>
|
||||
#include <cstdio>
|
||||
#include <cstring>
|
||||
#include <cmath>
|
||||
@ -329,17 +326,6 @@ OptionsView::OptionsView() : ui::Window(ui::Point(-1, -1), ui::Point(320, 340))
|
||||
}, [this] {
|
||||
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;
|
||||
if (ALLOW_DATA_FOLDER)
|
||||
@ -447,33 +433,6 @@ void OptionsView::UpdateAirTemp(String temp, bool isDefocus)
|
||||
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)
|
||||
{
|
||||
temperatureScale->SetOption(sender->GetTemperatureScale()); // has to happen before AmbientAirTempToTextBox is called
|
||||
@ -532,7 +491,6 @@ void OptionsView::NotifySettingsChanged(OptionsModel * sender)
|
||||
perfectCircle->SetChecked(sender->GetPerfectCircle());
|
||||
graveExitsConsole->SetChecked(sender->GetGraveExitsConsole());
|
||||
momentumScroll->SetChecked(sender->GetMomentumScroll());
|
||||
maxSounds->SetText(String::Build(sender->GetMaxSounds()));
|
||||
}
|
||||
|
||||
void OptionsView::AttachController(OptionsController * c_)
|
||||
|
@ -41,13 +41,11 @@ class OptionsView: public ui::Window
|
||||
ui::Checkbox *perfectCircle{};
|
||||
ui::Checkbox *graveExitsConsole{};
|
||||
ui::Checkbox *nativeClipoard{};
|
||||
ui::Textbox *maxSounds{};
|
||||
ui::ScrollPanel *scrollPanel{};
|
||||
float customGravityX, customGravityY;
|
||||
void UpdateAmbientAirTempPreview(float airTemp, bool isValid);
|
||||
void AmbientAirTempToTextBox(float airTemp);
|
||||
void UpdateAirTemp(String temp, bool isDefocus);
|
||||
void UpdateMaxSounds(String temp);
|
||||
public:
|
||||
OptionsView();
|
||||
void NotifySettingsChanged(OptionsModel * sender);
|
||||
|
@ -968,7 +968,7 @@ static int loadStamp(lua_State *L)
|
||||
gameSave->Transform(transform, { remX, remY });
|
||||
}
|
||||
auto *lsi = GetLSI();
|
||||
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY }, true);
|
||||
lsi->sim->Load(gameSave.get(), includePressure, { quoX, quoY });
|
||||
lua_pushinteger(L, 1);
|
||||
|
||||
if (gameSave->authors.size())
|
||||
|
@ -140,7 +140,6 @@ if host_platform == 'linux'
|
||||
font_files += files('WindowIcon.cpp')
|
||||
endif
|
||||
|
||||
subdir('audio')
|
||||
subdir('bson')
|
||||
subdir('bzip2')
|
||||
subdir('client')
|
||||
|
@ -13,8 +13,6 @@
|
||||
#include <iostream>
|
||||
#include <cmath>
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
std::unique_ptr<Snapshot> Simulation::CreateSnapshot() const
|
||||
{
|
||||
auto snap = std::make_unique<Snapshot>();
|
||||
@ -156,7 +154,6 @@ SimulationSample Simulation::GetSample(int x, int y)
|
||||
sample.isMouseInSim = false;
|
||||
|
||||
sample.NumParts = NUM_PARTS;
|
||||
sample.SoundsPlaying = ae->SoundsPlaying();
|
||||
return sample;
|
||||
}
|
||||
|
||||
|
@ -18,8 +18,7 @@ public:
|
||||
float GravityVelocityY;
|
||||
|
||||
int NumParts;
|
||||
int SoundsPlaying;
|
||||
bool isMouseInSim;
|
||||
|
||||
SimulationSample() : particle(), ParticleID(0), PositionX(0), PositionY(0), AirPressure(0), AirTemperature(0), AirVelocityX(0), AirVelocityY(0), WallType(0), Gravity(0), GravityVelocityX(0), GravityVelocityY(0), NumParts(0), 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 <set>
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
static float remainder_p(float x, float y)
|
||||
{
|
||||
return std::fmod(x, y) + (x>=0 ? 0 : y);
|
||||
}
|
||||
|
||||
void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> blockP, bool allowMoo) // block coordinates
|
||||
void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> blockP) // block coordinates
|
||||
{
|
||||
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;
|
||||
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:
|
||||
soapList.insert(std::pair<unsigned int, unsigned int>(n, i));
|
||||
break;
|
||||
case PT_PROT:
|
||||
protCount++;
|
||||
break;
|
||||
}
|
||||
if (GameSave::PressureInTmp3(parts[i].type) && !includePressure)
|
||||
{
|
||||
@ -300,11 +294,6 @@ void Simulation::Load(const GameSave *save, bool includePressure, Vec2<int> bloc
|
||||
{
|
||||
air->ApproximateBlockAirMaps();
|
||||
}
|
||||
|
||||
if (allowMoo && protCount == 1943)
|
||||
{
|
||||
ae->Play(197);
|
||||
}
|
||||
}
|
||||
|
||||
std::unique_ptr<GameSave> Simulation::Save(bool includePressure, Rect<int> partR) // particle coordinates
|
||||
@ -1766,11 +1755,6 @@ bool Simulation::part_change_type(int i, int x, int y, int t)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (t <= PT_RSSS)
|
||||
{
|
||||
ae->Play(t);
|
||||
}
|
||||
|
||||
if (elements[parts[i].type].ChangeType)
|
||||
(*(elements[parts[i].type].ChangeType))(this, i, x, y, parts[i].type, t);
|
||||
if (elements[t].ChangeType)
|
||||
@ -1901,11 +1885,6 @@ int Simulation::create_part(int p, int x, int y, int t, int v)
|
||||
i = p;
|
||||
}
|
||||
|
||||
if (t <= PT_RSSS && (t != PT_EMBR || i == -3)) // Don't play for EMBR creted by fireworks (also bomb, but unintentionally)
|
||||
{
|
||||
ae->Play(t);
|
||||
}
|
||||
|
||||
if (i>parts_lastActiveIndex) parts_lastActiveIndex = i;
|
||||
|
||||
parts[i] = elements[t].DefaultProperties;
|
||||
@ -3907,7 +3886,6 @@ void Simulation::AfterSim()
|
||||
Simulation::~Simulation() = default;
|
||||
|
||||
Simulation::Simulation():
|
||||
ae(std::make_unique<AudioEngine>()),
|
||||
replaceModeSelected(0),
|
||||
replaceModeFlags(0),
|
||||
debug_nextToUpdate(0),
|
||||
|
@ -32,8 +32,6 @@ class Gravity;
|
||||
class Air;
|
||||
class GameSave;
|
||||
|
||||
class AudioEngine;
|
||||
|
||||
class Simulation
|
||||
{
|
||||
public:
|
||||
@ -41,8 +39,6 @@ public:
|
||||
std::unique_ptr<Air> air;
|
||||
RNG rng;
|
||||
|
||||
std::unique_ptr<AudioEngine> ae;
|
||||
|
||||
std::vector<sign> signs;
|
||||
//Element * elements;
|
||||
|
||||
@ -117,7 +113,7 @@ public:
|
||||
uint64_t frameCount;
|
||||
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
|
||||
void SaveSimOptions(GameSave &gameSave);
|
||||
SimulationSample GetSample(int x, int y);
|
||||
|
@ -1,7 +1,5 @@
|
||||
#include "simulation/ElementCommon.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
static int update(UPDATE_FUNC_ARGS);
|
||||
static int graphics(GRAPHICS_FUNC_ARGS);
|
||||
|
||||
@ -67,7 +65,6 @@ static int update(UPDATE_FUNC_ARGS)
|
||||
auto rt = TYP(r);
|
||||
if (rt==PT_FIRE||rt==PT_PLSM||rt==PT_THDR)
|
||||
{
|
||||
sim->ae->Play(195);
|
||||
float gx, gy, multiplier;
|
||||
sim->GetGravityField(x, y, elements[PT_FIRW].Gravity, 1.0f, gx, gy);
|
||||
if (gx*gx+gy*gy < 0.001f)
|
||||
@ -96,7 +93,6 @@ static int update(UPDATE_FUNC_ARGS)
|
||||
}
|
||||
else //if (parts[i].tmp>=2)
|
||||
{
|
||||
sim->ae->Play(196);
|
||||
unsigned col = Renderer::firwTableAt(sim->rng.between(0, 199)).Pack();
|
||||
for (int n=0; n<40; n++)
|
||||
{
|
||||
|
@ -1,13 +1,11 @@
|
||||
#include "simulation/ElementCommon.h"
|
||||
|
||||
#include "audio/AudioEngine.h"
|
||||
|
||||
static int update(UPDATE_FUNC_ARGS);
|
||||
|
||||
void Element::Element_GOO()
|
||||
{
|
||||
Identifier = "DEFAULT_PT_GOO";
|
||||
Name = "SQRL";
|
||||
Name = "GOO";
|
||||
Colour = 0x804000_rgb;
|
||||
MenuVisible = 1;
|
||||
MenuSection = SC_SOLIDS;
|
||||
@ -32,7 +30,7 @@ void Element::Element_GOO()
|
||||
Weight = 100;
|
||||
|
||||
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;
|
||||
|
||||
@ -52,10 +50,6 @@ constexpr float ADVECTION = 0.1f;
|
||||
|
||||
static int update(UPDATE_FUNC_ARGS)
|
||||
{
|
||||
if (sim->rng.chance(1, 2400))
|
||||
{
|
||||
sim->ae->Play(194);
|
||||
}
|
||||
if (!parts[i].life && sim->pv[y/CELL][x/CELL]>1.0f)
|
||||
parts[i].life = sim->rng.between(300, 379);
|
||||
if (parts[i].life)
|
||||
|
@ -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