Refactor: Python 3.12, build libtcod & SFML from source. Cmake build. Directory cleanup
directories needed: * build - for cmake output * deps - stuff needed to compile McRogueface (headers) libtcod -> ../modules/libtcod/src/libtcod sfml -> ../modules/SFML/include/SFML python -> ../modules/cpython/Include * lib - stuff needed to link McRogueFace (shared objects); also required at runtime libtcod -> `../modules/libtcod/buildsys/autotools/.libs/libtcod.so.1.0.24` sfml -> `../modules/SFML/build/lib/*` python -> `../modules/cpython/libpython3.12.so`; standard lib at ../modules/cpython/build/lib.linux-x86_64-3.12 & ../modules/cpython/Lib You can get dependencies by: - Build from source (i.e. all submodules) - Go download them from each project's website - install packages from your distro and symlink them to deps/lib directories
This commit is contained in:
parent
d0d2eae762
commit
07b597d6f2
999 changed files with 6679 additions and 155791 deletions
50
src/Animation.h
Normal file
50
src/Animation.h
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#pragma once
|
||||
#include "Common.h"
|
||||
#include <functional>
|
||||
|
||||
class Animation
|
||||
{
|
||||
protected:
|
||||
static constexpr float EPSILON = 0.05;
|
||||
float duration, elapsed;
|
||||
std::function<void()> callback;
|
||||
bool loop;
|
||||
bool complete=false;
|
||||
public:
|
||||
//Animation(float, T, T*, std::function<void()>, bool); // lerp
|
||||
//Animation(float, std::vector<T>, T*, std::function<void()>, bool); // discrete
|
||||
Animation(float, std::function<void()>, bool);
|
||||
//Animation() {};
|
||||
virtual void step(float) = 0;
|
||||
virtual void cancel() = 0;
|
||||
bool isDone();
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class LerpAnimation: public Animation
|
||||
{
|
||||
T startvalue, endvalue;
|
||||
std::function<void(T)> write;
|
||||
void lerp();
|
||||
public:
|
||||
~LerpAnimation() { cancel(); }
|
||||
LerpAnimation(float, T, T, std::function<void()>, std::function<void(T)>, bool);
|
||||
//LerpAnimation() {};
|
||||
void step(float) override final;
|
||||
void cancel() override final;
|
||||
};
|
||||
|
||||
template<typename T>
|
||||
class DiscreteAnimation: public Animation
|
||||
{
|
||||
std::vector<T> values;
|
||||
std::function<void(T)> write;
|
||||
float nonelapsed, timestep;
|
||||
int index;
|
||||
public:
|
||||
DiscreteAnimation(float, std::vector<T>, std::function<void()>, std::function<void(T)>, bool);
|
||||
DiscreteAnimation() {};
|
||||
~DiscreteAnimation() { cancel(); }
|
||||
void step(float) override final;
|
||||
void cancel() override final;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue