Smooth replay finish
This commit is contained in:
parent
5a44fb515b
commit
ab70d727b8
8 changed files with 36 additions and 12 deletions
22
README.md
22
README.md
|
@ -1,6 +1,4 @@
|
|||
# HIGH WORK IN PROGRESS, NOT USABLE YET
|
||||
|
||||
But looks nice already, feel free to experiment and have fun, potentially even send me a feedback.
|
||||
# WORK IN PROGRESS, NOT RELEASED YET
|
||||
|
||||
The following is a draft of readme that will eventually be published, it may contain information that is not yet true but is expected to become true once the project is finished.
|
||||
|
||||
|
@ -9,6 +7,8 @@ The following is a draft of readme that will eventually be published, it may con
|
|||
*free and selfless KISS racing game*
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
For more detail see also the [game manual](media/manual.txt).
|
||||
|
||||
|
@ -56,7 +56,7 @@ Please note however the game is still relatively simple and so **the physics IS
|
|||
- **Pokitto** (32bit 48 MHz CPU, 36 KB RAM)
|
||||
- **Circuitmess Nibble** (32b 160 MHz CPU, 80 KB RAM)
|
||||
- **ESPboy** (32b 160 MHz CPU, 80 KB RAM)
|
||||
- tested compilers: gcc, g++, clang, tcc, emscripten
|
||||
- tested compilers: gcc, g++, clang, tcc (currently bugging), emscripten
|
||||
- It also goes without saying the physics is **100% deterministic**, it behaves the same on every platform, independently of rendering FPS. Besides others this allows for recording and playing back very small replays and creating press forward maps.
|
||||
- It is **super moddable and hackable**, the code is relatively simple and **well commented**, written to encourage hacking. There are no obstacles such as DRM, anti-cheating, obfuscation etc. Cheating and hacking is allowed, do literally what you want.
|
||||
- **No codes of censorship, flags, furry mascots or similar political bullshit.**
|
||||
|
@ -71,4 +71,16 @@ At this point I can't possibly summarize my views and life philosophy satisfying
|
|||
|
||||
## Legal "Rights"
|
||||
|
||||
TODO
|
||||
**tl;dr**: Everything in this repository is CC0 + a waiver of all rights, completely public domain as much as humanly possible, do absolutely anything you want.
|
||||
|
||||
I, Miloslav Číž (drummyfish), have created everything in this repository, including but not limited to code, graphics, sprites, palettes, fonts, sounds, music samples, music, storyline and texts, even the font in the video trailer and drum sound samples for the soundtrack, completely myself from scratch, using completely and exclusive free as in freedom software, without accepting any contributions, with the goal of creating a completely original art which is not a derivative work of anyone else's existing work, so that I could assure that by waiving my intellectual property rights the work will become completely public domain with as little doubt as posible.
|
||||
|
||||
This work's goal is to never be encumbered by any exclusive intellectual property rights, it is intended to always stay completely and forever in the public domain, available for any use whatsoever.
|
||||
|
||||
I therefore release everything in this repository under CC0 1.0 (public domain, https://creativecommons.org/publicdomain/zero/1.0/) + a waiver of all other IP rights (including patents), which is as follows:
|
||||
|
||||
Each contributor to this work agrees that they waive any exclusive rights, including but not limited to copyright, patents, trademark, trade dress, industrial design, plant varieties and trade secrets, to any and all ideas, concepts, processes, discoveries, improvements and inventions conceived, discovered, made, designed, researched or developed by the contributor either solely or jointly with others, which relate to this work or result from this work. Should any waiver of such right be judged legally invalid or ineffective under applicable law, the contributor hereby grants to each affected person a royalty-free, non transferable, non sublicensable, non exclusive, irrevocable and unconditional license to this right.
|
||||
|
||||
I would like to ask you, without it being any requirement at all, to please support free software and free culture by sharing at least some of your own work in a similar way I do with this project.
|
||||
|
||||
If you'd like to support me or just read something about me and my projects, visit my site: www.tastyfish.cz.
|
||||
|
|
2
TODO.txt
2
TODO.txt
|
@ -30,6 +30,8 @@ fuck issue trackers :D
|
|||
|
||||
=========== BUGS =================
|
||||
|
||||
- TCC: physics on some maps (tiny2, tiny3, ...) behaves wrong, some replays
|
||||
don't work
|
||||
- camera follow speed depends on FPS, it's slower with low FPS, but this is no
|
||||
big deal, it's only noticable with extremely high/low FPS -- fix or not?
|
||||
- replay loading BUG! somehow map2 replay was saves with hash 05ef0ab1 instead
|
||||
|
|
3
data
3
data
|
@ -1,3 +1,6 @@
|
|||
This is Licar data file, for storing additional maps, replays and other data.
|
||||
See the game manual for more detail.
|
||||
|
||||
#MLCbonus1;457 0
|
||||
ovaerall structure
|
||||
:=h0h :fl1v :fm51
|
||||
|
|
|
@ -33,10 +33,9 @@ uint8_t musicBuffer[AUDIO_BUFFER_SIZE];
|
|||
|
||||
uint8_t LCR_keyPressed(uint8_t key)
|
||||
{
|
||||
#define k(x) sfKeyboard_isKeyPressed(sfKey ## x)
|
||||
|
||||
switch (key)
|
||||
{
|
||||
#define k(x) sfKeyboard_isKeyPressed(sfKey ## x)
|
||||
case LCR_KEY_UP: return k(W) || k(Up) || k(Num8); break;
|
||||
case LCR_KEY_RIGHT: return k(E) || k(Right) || k(Num6); break;
|
||||
case LCR_KEY_DOWN: return k(S) || k(Down) || k(Num5) || k(Num2); break;
|
||||
|
@ -44,6 +43,7 @@ uint8_t LCR_keyPressed(uint8_t key)
|
|||
case LCR_KEY_A: return k(K) || k(Return); break;
|
||||
case LCR_KEY_B: return k(L) || k(Escape); break;
|
||||
default: break;
|
||||
#undef k
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -58,8 +58,8 @@ void LCR_sleep(uint16_t timeMs)
|
|||
|
||||
void LCR_drawPixel(unsigned long index, uint16_t color)
|
||||
{
|
||||
windowPixels[index] = 0xff000000 | ((color & 0x07e0) << 5) |
|
||||
(((color << 19) | (color >> 8)) & 0x00f800f8) ;
|
||||
windowPixels[index] = 0xff000000 | ((color & 0x07e0) << 5) | (((color << 19) |
|
||||
(color >> 8)) & 0x00f800f8);
|
||||
}
|
||||
|
||||
void printHelp(void)
|
||||
|
|
|
@ -13,6 +13,8 @@
|
|||
#define LCR_SETTING_RESOLUTION_Y SAF_SCREEN_HEIGHT
|
||||
#define LCR_SETTING_FPS SAF_FPS
|
||||
#define LCR_SETTING_MUSIC 0
|
||||
#define LCR_SETTING_GHOST_MAX_SAMPLES 0
|
||||
#define LCR_SETTING_REPLAY_MAX_SIZE 0
|
||||
#define LCR_SETTING_ENABLE_DATA_FILE 0
|
||||
#define LCR_SETTING_332_COLOR 1
|
||||
#define LCR_SETTING_SKY_SIZE 1
|
||||
|
|
4
game.h
4
game.h
|
@ -1275,8 +1275,8 @@ void LCR_gameDraw3DView(void)
|
|||
#endif
|
||||
? LCR_GAME_UNIT -
|
||||
((LCR_game.nextRacingTickTime - LCR_game.time) * LCR_GAME_UNIT)
|
||||
/ LCR_RACING_TICK_MS_RT
|
||||
: LCR_GAME_UNIT / 2;
|
||||
/ LCR_RACING_TICK_MS_RT // 32: magic constant
|
||||
: _LCR_min(LCR_GAME_UNIT,32 * (LCR_game.time - LCR_game.stateStartTime));
|
||||
|
||||
LCR_racingGetCarTransform(carTransform,carTransform + 3,
|
||||
physicsInterpolationParam);
|
||||
|
|
|
@ -116,6 +116,11 @@ int _LCR_strCmp(const char *s1, const char *s2)
|
|||
return 1;
|
||||
}
|
||||
|
||||
int _LCR_min(int a, int b)
|
||||
{
|
||||
return a <= b ? a : b;
|
||||
}
|
||||
|
||||
int _LCR_triangleWinding(int_least32_t x0, int_least32_t y0, int_least32_t x1,
|
||||
int_least32_t y1, int_least32_t x2, int_least32_t y2)
|
||||
{
|
||||
|
|
2
make.bat
2
make.bat
|
@ -2,5 +2,5 @@
|
|||
:: work right away, but can hint on how to compile it. MinGW is used as a compiler.
|
||||
:: It's possible to use this under Wine to not have to touch the horrible OS.
|
||||
echo making Licar
|
||||
bin/g++.exe -std=c99 -DSDL_MAIN_HANDLED -ISDL2-2.30.9/x86_64-w64-mingw32/include/ -LSDL2-2.30.9/x86_64-w64-mingw32/lib/ -o licar.exe frontend_sdl.c -lSDL2
|
||||
bin/g++.exe -std=c99 -O3 -DSDL_MAIN_HANDLED -ISDL2-2.30.9/x86_64-w64-mingw32/include/ -LSDL2-2.30.9/x86_64-w64-mingw32/lib/ -o licar.exe frontend_sdl.c -lSDL2
|
||||
echo done
|
||||
|
|
Loading…
Reference in a new issue