mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-12-26 12:21:19 +00:00
Merge branch 'next' into minor-item-tweaks
This commit is contained in:
commit
ea40a1b153
40 changed files with 611 additions and 603 deletions
|
@ -36,12 +36,15 @@ jobs:
|
||||||
- v1-SRB2-APT
|
- v1-SRB2-APT
|
||||||
- run:
|
- run:
|
||||||
name: Install SDK
|
name: Install SDK
|
||||||
command: apt-get -qq -y install git build-essential nasm libpng12-dev:i386 libsdl2-mixer-dev:i386 libgme-dev:i386 gettext ccache wget gcc-multilib upx
|
command: apt-get -qq -y --no-install-recommends install git build-essential nasm libpng12-dev:i386 libsdl2-mixer-dev:i386 libgme-dev:i386 gettext ccache wget gcc-multilib upx openssh-client
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: v1-SRB2-APT
|
key: v1-SRB2-APT
|
||||||
paths:
|
paths:
|
||||||
- /var/cache/apt/archives
|
- /var/cache/apt/archives
|
||||||
- checkout
|
- checkout
|
||||||
|
- run:
|
||||||
|
name: Compile without network support
|
||||||
|
command: make -C src LINUX=1 ERRORMODE=1 -k NONET=1
|
||||||
- run:
|
- run:
|
||||||
name: Clean build
|
name: Clean build
|
||||||
command: make -C src LINUX=1 clean
|
command: make -C src LINUX=1 clean
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -4,7 +4,7 @@ project(libgme)
|
||||||
include (CheckCXXCompilerFlag)
|
include (CheckCXXCompilerFlag)
|
||||||
|
|
||||||
# When version is changed, also change the one in gme/gme.h to match
|
# When version is changed, also change the one in gme/gme.h to match
|
||||||
set(GME_VERSION 0.6.0 CACHE INTERNAL "libgme Version")
|
set(GME_VERSION 0.6.2 CACHE INTERNAL "libgme Version")
|
||||||
|
|
||||||
# 2.6+ always assumes FATAL_ERROR, but 2.4 and below don't.
|
# 2.6+ always assumes FATAL_ERROR, but 2.4 and below don't.
|
||||||
# Of course, 2.4 might work, in which case you're welcome to drop
|
# Of course, 2.4 might work, in which case you're welcome to drop
|
||||||
|
@ -57,6 +57,8 @@ if (USE_GME_NSFE AND NOT USE_GME_NSF)
|
||||||
SET(USE_GME_NSF 1 CACHE BOOL "Enable NES NSF music emulation" FORCE)
|
SET(USE_GME_NSF 1 CACHE BOOL "Enable NES NSF music emulation" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
option(BUILD_SHARED_LIBS "Build shared library (set to OFF for static library)" ON)
|
||||||
|
|
||||||
# Check for GCC "visibility" support.
|
# Check for GCC "visibility" support.
|
||||||
if (CMAKE_COMPILER_IS_GNUCXX)
|
if (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
check_cxx_compiler_flag (-fvisibility=hidden __LIBGME_TEST_VISIBILITY)
|
check_cxx_compiler_flag (-fvisibility=hidden __LIBGME_TEST_VISIBILITY)
|
||||||
|
@ -79,10 +81,10 @@ if (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endif() # test visibility
|
endif() # test visibility
|
||||||
endif (CMAKE_COMPILER_IS_GNUCXX)
|
|
||||||
|
|
||||||
# Cache this result
|
# Cache this result
|
||||||
set( LIBGME_HAVE_GCC_VISIBILITY ${ENABLE_VISIBILITY} CACHE BOOL "GCC support for hidden visibility")
|
set( LIBGME_HAVE_GCC_VISIBILITY ${ENABLE_VISIBILITY} CACHE BOOL "GCC support for hidden visibility")
|
||||||
|
endif (CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
|
||||||
# Shared library defined here
|
# Shared library defined here
|
||||||
add_subdirectory(gme)
|
add_subdirectory(gme)
|
||||||
|
|
|
@ -1,262 +1,5 @@
|
||||||
Game_Music_Emu Change Log
|
Game_Music_Emu Change Log
|
||||||
-------------------------
|
-------------------------
|
||||||
|
|
||||||
Game_Music_Emu 0.6.0
|
Please see the git version history (e.g. git shortlog tags/0.6.0..tags/0.6.1)
|
||||||
--------------------
|
for the accurate change log.
|
||||||
|
|
||||||
- Note: A 0.5.6 release was referenced but never tagged or packaged.
|
|
||||||
|
|
||||||
- SPC improvements:
|
|
||||||
- Switched to newer snes_spc 0.9.0 for SPC emulation. Uses fast DSP.
|
|
||||||
- Fixed Spc_Emu::gain().
|
|
||||||
- Fixed support for files <0x10200 bytes.
|
|
||||||
|
|
||||||
- Other bugfixes:
|
|
||||||
- Fixed a couple of GBS bugs, one involving access of memory after
|
|
||||||
realloc.
|
|
||||||
- Blip_Buffer works on systems where 'double' is a single-precision
|
|
||||||
floating-point type.
|
|
||||||
- Fix uninitialized buffer size in dual_resampler.
|
|
||||||
- Compilation warnings squashed out as of clang 3.3-pre and gcc 4.7.2.
|
|
||||||
|
|
||||||
- API changes/additions:
|
|
||||||
- Removed documentation of C++ interface, as the C interface in gme.h is
|
|
||||||
the only supported one.
|
|
||||||
- Added gme_enable_accuracy() for enabling more accurate sound emulation
|
|
||||||
options (currently affects SPC only).
|
|
||||||
|
|
||||||
- Build system improvements:
|
|
||||||
- Add pkg_config support.
|
|
||||||
- Fix build on case-insensitive systems.
|
|
||||||
- Allow for install on Cygwin.
|
|
||||||
- Fix install on multilib systems, such as many 64-bit distros (CMake must
|
|
||||||
be able to figure out your system's libsuffix, if any).
|
|
||||||
- C++ implementation symbols are not leaked into the resultant library
|
|
||||||
file (requires symbol visibility support).
|
|
||||||
|
|
||||||
- Sample player improvements:
|
|
||||||
- Can toggle fast/accurate emulation (with the 'A' key).
|
|
||||||
|
|
||||||
Game_Music_Emu 0.5.5
|
|
||||||
--------------------
|
|
||||||
- CMake build support has been added. You can build Game_Music_Emu as
|
|
||||||
a shared library and install it so that you do not have to include your
|
|
||||||
own copy if you know libgme will be present on your target system.
|
|
||||||
Requires CMake 2.6 or higher.
|
|
||||||
|
|
||||||
|
|
||||||
Game_Music_Emu 0.5.2
|
|
||||||
--------------------
|
|
||||||
- *TONS* of changes and improvements. You should re-read the new header
|
|
||||||
files and documentation as the changes will allow you to simplify your
|
|
||||||
code a lot (it might even be simpler to just rewrite it). Existing code
|
|
||||||
should continue to work without changes in most cases (see Deprecated
|
|
||||||
features in gme.txt).
|
|
||||||
|
|
||||||
- New file formats: AY, HES, KSS, SAP, NSFE
|
|
||||||
|
|
||||||
- All-new comprehensive C interface (also usable from C++). Simplifies
|
|
||||||
many things, especially file loading, and brings everything together in
|
|
||||||
one header file (gme.h).
|
|
||||||
|
|
||||||
- Information tags and track names and times can be accessed for all
|
|
||||||
game music formats
|
|
||||||
|
|
||||||
- New features supported by all emulators: end of track fading,
|
|
||||||
automatic silence detection, adjustable song tempo, seek to new time in
|
|
||||||
track
|
|
||||||
|
|
||||||
- Updated mini player example to support track names and times, echo,
|
|
||||||
tempo, and channel muting, and added visual waveform display
|
|
||||||
|
|
||||||
- Improved configuration to use blargg_config.h, which you can modify
|
|
||||||
and keep when you update to a newer libary version. Includes flag for
|
|
||||||
library to automatically handle gzipped files using zlib (so you don't
|
|
||||||
need to use Gzip_File_Reader anymore).
|
|
||||||
|
|
||||||
- GBS: Fixed wave channel to not reset waveform when APU is powered off
|
|
||||||
(affected Garfield). Also improved invalid bank selection (affected Game
|
|
||||||
& Watch and others).
|
|
||||||
|
|
||||||
- VGM: Added support for alternate noise shifter register
|
|
||||||
configurations, used by other systems like the BBC Micro.
|
|
||||||
|
|
||||||
- SPC: Removed IPL ROM dump from emulator, as none of the SPC files I
|
|
||||||
scanned needed it, and an SPC file can include a copy if necessary. Also
|
|
||||||
re-enabled supposed clamping in gaussian interpolation between the third
|
|
||||||
and fourth lookups, though I don't know whether it matters
|
|
||||||
|
|
||||||
- Added Music_Emu::load_mem() to use music data already in memory
|
|
||||||
(without copying it)
|
|
||||||
|
|
||||||
- Added Music_Emu::warning(), which reports minor problems when loading
|
|
||||||
and playing a music file
|
|
||||||
|
|
||||||
- Added Music_Emu::set_gain() for uniform adjustment of gain. Can only
|
|
||||||
be set during initialization, so not useful as a general volume control.
|
|
||||||
|
|
||||||
- Added custom operator new to ensure that no exceptions are thrown in
|
|
||||||
the library (I'd use std::nothrow if it were part of pre-ISO (ARM) C++)
|
|
||||||
|
|
||||||
- Added BLIP_BUFFER_FAST flag to blargg_config.h to use a lower quality
|
|
||||||
bandlimited synthesis in "classic" emulators, which might help
|
|
||||||
performance on ancient processors (measure first!). Don't use this
|
|
||||||
unless absolutely necessary, as quality suffers.
|
|
||||||
|
|
||||||
- Improved performance a bit for x86 platforms
|
|
||||||
|
|
||||||
- Text files now in DOS newline format so they will open in Notepad
|
|
||||||
properly
|
|
||||||
|
|
||||||
- Removed requirement that file header structures not have any padding
|
|
||||||
added to the end
|
|
||||||
|
|
||||||
- Fixed common bug in all CPU emulators where negative program counter
|
|
||||||
could crash emulator (occurred during a negative branch from the
|
|
||||||
beginning of memory). Also fixed related bug in Z80 emulator for
|
|
||||||
IX/IY+displacement mode.
|
|
||||||
|
|
||||||
- Eliminated all warnings when compiling on gcc 4.0. The following
|
|
||||||
generates no diagnostics:
|
|
||||||
|
|
||||||
gcc -S gme/*.cpp -o /dev/null -ansi -fno-gnu-keywords
|
|
||||||
-fno-nonansi-builtins -pedantic -W -Wabi -Wall -Wcast-align
|
|
||||||
-Wcast-qual -Wchar-subscripts -Wdisabled-optimization -Werror
|
|
||||||
-Winline -Wlong-long -Wmultichar -Winvalid-offsetof
|
|
||||||
-Wnon-virtual-dtor -Woverloaded-virtual -Wparentheses
|
|
||||||
-Wpointer-arith -Wredundant-decls -Wreorder -Wsign-compare
|
|
||||||
-Wsign-promo -Wunknown-pragmas -Wwrite-strings
|
|
||||||
|
|
||||||
|
|
||||||
Game_Music_Emu 0.3.0
|
|
||||||
--------------------
|
|
||||||
- Added more demos, including music player using the SDL multimedia
|
|
||||||
library for sound, and improved documentation
|
|
||||||
|
|
||||||
- All: Improved interface to emulators to allow simpler setup and
|
|
||||||
loading. Instead of various init() functions, all now support
|
|
||||||
set_sample_rate( long rate ) and load( const char* file_path ).
|
|
||||||
|
|
||||||
- All: Removed error return from start_track() and play(), and added
|
|
||||||
error_count() to get the total number of emulation errors since the
|
|
||||||
track was last started. See demos for examples of new usage.
|
|
||||||
|
|
||||||
- All: Fixed mute_voices() muting to be preserved after loading files
|
|
||||||
and starting tracks, instead of being cleared as it was whenever a track
|
|
||||||
was started
|
|
||||||
|
|
||||||
- VGM: Rewrote Vgm_Emu to support Sega Genesis/Mega Drive FM sound at
|
|
||||||
any sample rate with optional FM oversampling, support for alternate
|
|
||||||
YM2612 sound cores, and support for optional YM2413
|
|
||||||
|
|
||||||
- VGM: Added tempo control, useful for slowing 60Hz NTSC Sega Genesis
|
|
||||||
music to 50Hz PAL
|
|
||||||
|
|
||||||
- VGM: Removed Vgm_Emu::track_data(), since I realized that this
|
|
||||||
information is already present in the VGM header (oops!)
|
|
||||||
|
|
||||||
- GYM: Changed Gym_Emu::track_length() operation (see Gym_Emu.h)
|
|
||||||
|
|
||||||
- NSF: Added support for Sunsoft FME-7 sound chip used by Gimmick
|
|
||||||
soundtrack
|
|
||||||
|
|
||||||
- NSF: Fixed Namco 106 problems with Final Lap and others
|
|
||||||
|
|
||||||
- Moved library sources to gme/ directory to reduce clutter, and merged
|
|
||||||
boost/ functionality into blargg_common.h
|
|
||||||
|
|
||||||
- Added Gzip_File_Reader for transparently using gzipped files
|
|
||||||
|
|
||||||
|
|
||||||
Game_Music_Emu 0.2.4
|
|
||||||
--------------------
|
|
||||||
- Created a discussion forum for problems and feedback:
|
|
||||||
http://groups-beta.google.com/group/blargg-sound-libs
|
|
||||||
|
|
||||||
- Changed error return value of Blip_Buffer::sample_rate() (also for
|
|
||||||
Stereo_Buffer, Effects_Buffer, etc.) to blargg_err_t (defined in
|
|
||||||
blargg_common.h), to make error reporting consistent with other
|
|
||||||
functions. This means the "no error" return value is the opposite of
|
|
||||||
what it was before, which will break current code which checks the error
|
|
||||||
return value:
|
|
||||||
|
|
||||||
// current code (broken)
|
|
||||||
if ( !buf.sample_rate( samples_per_sec ) )
|
|
||||||
out_of_memory();
|
|
||||||
|
|
||||||
// quick-and-dirty fix (just remove the ! operation)
|
|
||||||
if ( buf.sample_rate( samples_per_sec ) )
|
|
||||||
out_of_memory();
|
|
||||||
|
|
||||||
// proper fix
|
|
||||||
blargg_err_t error = buf.sample_rate( samples_per_sec );
|
|
||||||
if ( error )
|
|
||||||
report_error( error );
|
|
||||||
|
|
||||||
- Implemented workaround for MSVC++ 6 compiler limitations, allowing it
|
|
||||||
to work on that compiler again
|
|
||||||
|
|
||||||
- Added sample clamping to avoid wrap-around at high volumes, allowing
|
|
||||||
higher volume with little distortion
|
|
||||||
|
|
||||||
- Added to-do list and design notes
|
|
||||||
|
|
||||||
- Added Music_Emu::skip( long sample_count ) to skip ahead in current
|
|
||||||
track
|
|
||||||
|
|
||||||
- Added Gym_Emu::track_length() and Vgm_Emu::track_length() for
|
|
||||||
determining the length of non-looped GYM and VGM files
|
|
||||||
|
|
||||||
- Partially implemented DMC non-linearity when its value is directly set
|
|
||||||
using $4011, which reduces previously over-emphasized "popping" of
|
|
||||||
percussion on some games (TMNT II in particular)
|
|
||||||
|
|
||||||
- Fixed Fir_Resampler, used for SPC and GYM playback (was incorrectly
|
|
||||||
using abs() instead of fabs()...argh)
|
|
||||||
|
|
||||||
- Fixed SPC emulation bugs: eliminated clicks in Plok! soundtrack and
|
|
||||||
now stops sample slightly earlier than the end, as the SNES does. Fixed
|
|
||||||
a totally broken CPU addressing mode.
|
|
||||||
|
|
||||||
- Fixed Konami VRC6 saw wave (was very broken before). Now VRC6 music
|
|
||||||
sounds decent
|
|
||||||
|
|
||||||
- Fixed a minor GBS emulation bug
|
|
||||||
|
|
||||||
- Fixed GYM loop point bug when track was restarted before loop point
|
|
||||||
had been reached
|
|
||||||
|
|
||||||
- Made default GBS frequency equalization less muffled
|
|
||||||
|
|
||||||
- Added pseudo-surround effect removal for SPC files
|
|
||||||
|
|
||||||
- Added Music_Emu::voice_names() which returns names for each voice.
|
|
||||||
|
|
||||||
- Added BLARGG_SOURCE_BEGIN which allows custom compiler options to be
|
|
||||||
easily set for library sources
|
|
||||||
|
|
||||||
- Changed assignment of expansion sound chips in Nsf_Emu to be spread
|
|
||||||
more evenly when using Effects_Buffer
|
|
||||||
|
|
||||||
- Changed 'size_t' values in Blip_Buffer interface to 'long'
|
|
||||||
|
|
||||||
- Changed demo to generate a WAVE sound file rather than an AIFF file
|
|
||||||
|
|
||||||
|
|
||||||
Game_Music_Emu 0.2.0
|
|
||||||
--------------------
|
|
||||||
- Redid framework and rewrote/cleaned up emulators
|
|
||||||
|
|
||||||
- Changed licensing to GNU Lesser General Public License (LGPL)
|
|
||||||
|
|
||||||
- Added Sega Genesis GYM and Super Nintendo SPC emulators
|
|
||||||
|
|
||||||
- Added Namco-106 and Konami VRC6 sound chip support to NSF emulator
|
|
||||||
|
|
||||||
- Eliminated use of static mutable data in emulators, allowing
|
|
||||||
multi-instance safety
|
|
||||||
|
|
||||||
|
|
||||||
Game_Music_Emu 0.1.0
|
|
||||||
--------------------
|
|
||||||
- First release
|
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
/* C example that opens a game music file and records 10 seconds to "out.wav" */
|
/* C example that opens a game music file and records 10 seconds to "out.wav" */
|
||||||
|
|
||||||
static char filename [] = "test.nsf"; /* opens this file (can be any music type) */
|
|
||||||
|
|
||||||
#include "gme/gme.h"
|
#include "gme/gme.h"
|
||||||
|
|
||||||
#include "Wave_Writer.h" /* wave_ functions for writing sound file */
|
#include "Wave_Writer.h" /* wave_ functions for writing sound file */
|
||||||
|
@ -10,10 +8,15 @@ static char filename [] = "test.nsf"; /* opens this file (can be any music type)
|
||||||
|
|
||||||
void handle_error( const char* str );
|
void handle_error( const char* str );
|
||||||
|
|
||||||
int main()
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
const char *filename = "test.nsf"; /* Default file to open */
|
||||||
|
if ( argc >= 2 )
|
||||||
|
filename = argv[1];
|
||||||
|
|
||||||
long sample_rate = 44100; /* number of samples per second */
|
long sample_rate = 44100; /* number of samples per second */
|
||||||
int track = 0; /* index of track to play (0 = first) */
|
/* index of track to play (0 = first) */
|
||||||
|
int track = argc >= 3 ? atoi(argv[2]) : 0;
|
||||||
|
|
||||||
/* Open music file in new emulator */
|
/* Open music file in new emulator */
|
||||||
Music_Emu* emu;
|
Music_Emu* emu;
|
||||||
|
|
|
@ -1,7 +1,5 @@
|
||||||
// C++ example that opens a game music file and records 10 seconds to "out.wav"
|
// C++ example that opens a game music file and records 10 seconds to "out.wav"
|
||||||
|
|
||||||
static char filename [] = "test.nsf"; /* opens this file (can be any music type) */
|
|
||||||
|
|
||||||
#include "gme/Music_Emu.h"
|
#include "gme/Music_Emu.h"
|
||||||
|
|
||||||
#include "Wave_Writer.h"
|
#include "Wave_Writer.h"
|
||||||
|
@ -10,10 +8,15 @@ static char filename [] = "test.nsf"; /* opens this file (can be any music type)
|
||||||
|
|
||||||
void handle_error( const char* str );
|
void handle_error( const char* str );
|
||||||
|
|
||||||
int main()
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
const char *filename = "test.nsf"; /* Default file to open */
|
||||||
|
if ( argc >= 2 )
|
||||||
|
filename = argv[1];
|
||||||
|
|
||||||
long sample_rate = 44100; // number of samples per second
|
long sample_rate = 44100; // number of samples per second
|
||||||
int track = 0; // index of track to play (0 = first)
|
// index of track to play (0 = first)
|
||||||
|
int track = argc >= 3 ? atoi(argv[2]) : 0;
|
||||||
|
|
||||||
// Determine file type
|
// Determine file type
|
||||||
gme_type_t file_type;
|
gme_type_t file_type;
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
Game_Music_Emu 0.6.0
|
Game_Music_Emu 0.6.2
|
||||||
--------------------
|
--------------------
|
||||||
Author : Shay Green <gblargg@gmail.com>
|
Author : Shay Green <gblargg@gmail.com>
|
||||||
Website: http://www.slack.net/~ant/libs/
|
Maintainer : Michael Pyne <mpyne@purinchu.net>
|
||||||
Forum : http://groups.google.com/group/blargg-sound-libs
|
Website : https://bitbucket.org/mpyne/game-music-emu/
|
||||||
Source : https://code.google.com/p/game-music-emu/
|
Source : https://bitbucket.org/mpyne/game-music-emu/
|
||||||
License: GNU Lesser General Public License (LGPL)
|
License : GNU Lesser General Public License (LGPL), see LICENSE.txt
|
||||||
|
|
||||||
Contents
|
Contents
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -143,7 +143,7 @@ add_definitions(-DBLARGG_BUILD_DLL)
|
||||||
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
|
||||||
# Add library to be compiled.
|
# Add library to be compiled.
|
||||||
add_library(gme SHARED ${libgme_SRCS})
|
add_library(gme ${libgme_SRCS})
|
||||||
|
|
||||||
# The version is the release. The "soversion" is the API version. As long
|
# The version is the release. The "soversion" is the API version. As long
|
||||||
# as only build fixes are performed (i.e. no backwards-incompatible changes
|
# as only build fixes are performed (i.e. no backwards-incompatible changes
|
||||||
|
@ -159,4 +159,4 @@ install(TARGETS gme LIBRARY DESTINATION lib${LIB_SUFFIX}
|
||||||
ARCHIVE DESTINATION lib) # DLL platforms
|
ARCHIVE DESTINATION lib) # DLL platforms
|
||||||
|
|
||||||
install(FILES ${EXPORTED_HEADERS} DESTINATION include/gme)
|
install(FILES ${EXPORTED_HEADERS} DESTINATION include/gme)
|
||||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgme.pc DESTINATION lib/pkgconfig)
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libgme.pc DESTINATION lib${LIB_SUFFIX}/pkgconfig)
|
||||||
|
|
|
@ -22,8 +22,13 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||||
|
|
||||||
const char Data_Reader::eof_error [] = "Unexpected end of file";
|
const char Data_Reader::eof_error [] = "Unexpected end of file";
|
||||||
|
|
||||||
|
#define RETURN_VALIDITY_CHECK( cond ) \
|
||||||
|
do { if ( unlikely( !(cond) ) ) return "Corrupt file"; } while(0)
|
||||||
|
|
||||||
blargg_err_t Data_Reader::read( void* p, long s )
|
blargg_err_t Data_Reader::read( void* p, long s )
|
||||||
{
|
{
|
||||||
|
RETURN_VALIDITY_CHECK( s > 0 );
|
||||||
|
|
||||||
long result = read_avail( p, s );
|
long result = read_avail( p, s );
|
||||||
if ( result != s )
|
if ( result != s )
|
||||||
{
|
{
|
||||||
|
@ -38,6 +43,8 @@ blargg_err_t Data_Reader::read( void* p, long s )
|
||||||
|
|
||||||
blargg_err_t Data_Reader::skip( long count )
|
blargg_err_t Data_Reader::skip( long count )
|
||||||
{
|
{
|
||||||
|
RETURN_VALIDITY_CHECK( count >= 0 );
|
||||||
|
|
||||||
char buf [512];
|
char buf [512];
|
||||||
while ( count )
|
while ( count )
|
||||||
{
|
{
|
||||||
|
@ -54,7 +61,8 @@ long File_Reader::remain() const { return size() - tell(); }
|
||||||
|
|
||||||
blargg_err_t File_Reader::skip( long n )
|
blargg_err_t File_Reader::skip( long n )
|
||||||
{
|
{
|
||||||
assert( n >= 0 );
|
RETURN_VALIDITY_CHECK( n >= 0 );
|
||||||
|
|
||||||
if ( !n )
|
if ( !n )
|
||||||
return 0;
|
return 0;
|
||||||
return seek( tell() + n );
|
return seek( tell() + n );
|
||||||
|
@ -67,13 +75,14 @@ Subset_Reader::Subset_Reader( Data_Reader* dr, long size )
|
||||||
in = dr;
|
in = dr;
|
||||||
remain_ = dr->remain();
|
remain_ = dr->remain();
|
||||||
if ( remain_ > size )
|
if ( remain_ > size )
|
||||||
remain_ = size;
|
remain_ = max( 0l, size );
|
||||||
}
|
}
|
||||||
|
|
||||||
long Subset_Reader::remain() const { return remain_; }
|
long Subset_Reader::remain() const { return remain_; }
|
||||||
|
|
||||||
long Subset_Reader::read_avail( void* p, long s )
|
long Subset_Reader::read_avail( void* p, long s )
|
||||||
{
|
{
|
||||||
|
s = max( 0l, s );
|
||||||
if ( s > remain_ )
|
if ( s > remain_ )
|
||||||
s = remain_;
|
s = remain_;
|
||||||
remain_ -= s;
|
remain_ -= s;
|
||||||
|
@ -85,7 +94,7 @@ long Subset_Reader::read_avail( void* p, long s )
|
||||||
Remaining_Reader::Remaining_Reader( void const* h, long size, Data_Reader* r )
|
Remaining_Reader::Remaining_Reader( void const* h, long size, Data_Reader* r )
|
||||||
{
|
{
|
||||||
header = (char const*) h;
|
header = (char const*) h;
|
||||||
header_end = header + size;
|
header_end = header + max( 0l, size );
|
||||||
in = r;
|
in = r;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -93,6 +102,7 @@ long Remaining_Reader::remain() const { return header_end - header + in->remain(
|
||||||
|
|
||||||
long Remaining_Reader::read_first( void* out, long count )
|
long Remaining_Reader::read_first( void* out, long count )
|
||||||
{
|
{
|
||||||
|
count = max( 0l, count );
|
||||||
long first = header_end - header;
|
long first = header_end - header;
|
||||||
if ( first )
|
if ( first )
|
||||||
{
|
{
|
||||||
|
@ -107,8 +117,9 @@ long Remaining_Reader::read_first( void* out, long count )
|
||||||
|
|
||||||
long Remaining_Reader::read_avail( void* out, long count )
|
long Remaining_Reader::read_avail( void* out, long count )
|
||||||
{
|
{
|
||||||
|
count = max( 0l, count );
|
||||||
long first = read_first( out, count );
|
long first = read_first( out, count );
|
||||||
long second = count - first;
|
long second = max( 0l, count - first );
|
||||||
if ( second )
|
if ( second )
|
||||||
{
|
{
|
||||||
second = in->read_avail( (char*) out + first, second );
|
second = in->read_avail( (char*) out + first, second );
|
||||||
|
@ -120,8 +131,9 @@ long Remaining_Reader::read_avail( void* out, long count )
|
||||||
|
|
||||||
blargg_err_t Remaining_Reader::read( void* out, long count )
|
blargg_err_t Remaining_Reader::read( void* out, long count )
|
||||||
{
|
{
|
||||||
|
count = max( 0l, count );
|
||||||
long first = read_first( out, count );
|
long first = read_first( out, count );
|
||||||
long second = count - first;
|
long second = max( 0l, count - first );
|
||||||
if ( !second )
|
if ( !second )
|
||||||
return 0;
|
return 0;
|
||||||
return in->read( (char*) out + first, second );
|
return in->read( (char*) out + first, second );
|
||||||
|
@ -131,7 +143,7 @@ blargg_err_t Remaining_Reader::read( void* out, long count )
|
||||||
|
|
||||||
Mem_File_Reader::Mem_File_Reader( const void* p, long s ) :
|
Mem_File_Reader::Mem_File_Reader( const void* p, long s ) :
|
||||||
begin( (const char*) p ),
|
begin( (const char*) p ),
|
||||||
size_( s )
|
size_( max( 0l, s ) )
|
||||||
{
|
{
|
||||||
pos = 0;
|
pos = 0;
|
||||||
}
|
}
|
||||||
|
@ -141,6 +153,7 @@ long Mem_File_Reader::size() const { return size_; }
|
||||||
long Mem_File_Reader::read_avail( void* p, long s )
|
long Mem_File_Reader::read_avail( void* p, long s )
|
||||||
{
|
{
|
||||||
long r = remain();
|
long r = remain();
|
||||||
|
s = max( 0l, s );
|
||||||
if ( s > r )
|
if ( s > r )
|
||||||
s = r;
|
s = r;
|
||||||
memcpy( p, begin + pos, s );
|
memcpy( p, begin + pos, s );
|
||||||
|
@ -152,6 +165,7 @@ long Mem_File_Reader::tell() const { return pos; }
|
||||||
|
|
||||||
blargg_err_t Mem_File_Reader::seek( long n )
|
blargg_err_t Mem_File_Reader::seek( long n )
|
||||||
{
|
{
|
||||||
|
RETURN_VALIDITY_CHECK( n >= 0 );
|
||||||
if ( n > size_ )
|
if ( n > size_ )
|
||||||
return eof_error;
|
return eof_error;
|
||||||
pos = n;
|
pos = n;
|
||||||
|
@ -164,7 +178,7 @@ Callback_Reader::Callback_Reader( callback_t c, long size, void* d ) :
|
||||||
callback( c ),
|
callback( c ),
|
||||||
data( d )
|
data( d )
|
||||||
{
|
{
|
||||||
remain_ = size;
|
remain_ = max( 0l, size );
|
||||||
}
|
}
|
||||||
|
|
||||||
long Callback_Reader::remain() const { return remain_; }
|
long Callback_Reader::remain() const { return remain_; }
|
||||||
|
@ -173,13 +187,14 @@ long Callback_Reader::read_avail( void* out, long count )
|
||||||
{
|
{
|
||||||
if ( count > remain_ )
|
if ( count > remain_ )
|
||||||
count = remain_;
|
count = remain_;
|
||||||
if ( Callback_Reader::read( out, count ) )
|
if ( count < 0 || Callback_Reader::read( out, count ) )
|
||||||
count = -1;
|
count = -1;
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
blargg_err_t Callback_Reader::read( void* out, long count )
|
blargg_err_t Callback_Reader::read( void* out, long count )
|
||||||
{
|
{
|
||||||
|
RETURN_VALIDITY_CHECK( count >= 0 );
|
||||||
if ( count > remain_ )
|
if ( count > remain_ )
|
||||||
return eof_error;
|
return eof_error;
|
||||||
return callback( data, out, count );
|
return callback( data, out, count );
|
||||||
|
@ -210,11 +225,12 @@ long Std_File_Reader::size() const
|
||||||
|
|
||||||
long Std_File_Reader::read_avail( void* p, long s )
|
long Std_File_Reader::read_avail( void* p, long s )
|
||||||
{
|
{
|
||||||
return fread( p, 1, s, (FILE*) file_ );
|
return fread( p, 1, max( 0l, s ), (FILE*) file_ );
|
||||||
}
|
}
|
||||||
|
|
||||||
blargg_err_t Std_File_Reader::read( void* p, long s )
|
blargg_err_t Std_File_Reader::read( void* p, long s )
|
||||||
{
|
{
|
||||||
|
RETURN_VALIDITY_CHECK( s > 0 );
|
||||||
if ( s == (long) fread( p, 1, s, (FILE*) file_ ) )
|
if ( s == (long) fread( p, 1, s, (FILE*) file_ ) )
|
||||||
return 0;
|
return 0;
|
||||||
if ( feof( (FILE*) file_ ) )
|
if ( feof( (FILE*) file_ ) )
|
||||||
|
|
|
@ -129,6 +129,8 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifdef HAVE_ZLIB_H
|
#ifdef HAVE_ZLIB_H
|
||||||
|
#include <zlib.h>
|
||||||
|
|
||||||
// Gzip compressed file reader
|
// Gzip compressed file reader
|
||||||
class Gzip_File_Reader : public File_Reader {
|
class Gzip_File_Reader : public File_Reader {
|
||||||
public:
|
public:
|
||||||
|
@ -143,7 +145,7 @@ public:
|
||||||
long tell() const;
|
long tell() const;
|
||||||
blargg_err_t seek( long );
|
blargg_err_t seek( long );
|
||||||
private:
|
private:
|
||||||
void* file_;
|
gzFile file_;
|
||||||
long size_;
|
long size_;
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -178,6 +178,11 @@ blargg_long Music_Emu::msec_to_samples( blargg_long msec ) const
|
||||||
return (sec * sample_rate() + msec * sample_rate() / 1000) * stereo;
|
return (sec * sample_rate() + msec * sample_rate() / 1000) * stereo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long Music_Emu::tell_samples() const
|
||||||
|
{
|
||||||
|
return out_time;
|
||||||
|
}
|
||||||
|
|
||||||
long Music_Emu::tell() const
|
long Music_Emu::tell() const
|
||||||
{
|
{
|
||||||
blargg_long rate = sample_rate() * stereo;
|
blargg_long rate = sample_rate() * stereo;
|
||||||
|
@ -185,14 +190,18 @@ long Music_Emu::tell() const
|
||||||
return sec * 1000 + (out_time - sec * rate) * 1000 / rate;
|
return sec * 1000 + (out_time - sec * rate) * 1000 / rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
blargg_err_t Music_Emu::seek( long msec )
|
blargg_err_t Music_Emu::seek_samples( long time )
|
||||||
{
|
{
|
||||||
blargg_long time = msec_to_samples( msec );
|
|
||||||
if ( time < out_time )
|
if ( time < out_time )
|
||||||
RETURN_ERR( start_track( current_track_ ) );
|
RETURN_ERR( start_track( current_track_ ) );
|
||||||
return skip( time - out_time );
|
return skip( time - out_time );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
blargg_err_t Music_Emu::seek( long msec )
|
||||||
|
{
|
||||||
|
return seek_samples( msec_to_samples( msec ) );
|
||||||
|
}
|
||||||
|
|
||||||
blargg_err_t Music_Emu::skip( long count )
|
blargg_err_t Music_Emu::skip( long count )
|
||||||
{
|
{
|
||||||
require( current_track() >= 0 ); // start_track() must have been called already
|
require( current_track() >= 0 ); // start_track() must have been called already
|
||||||
|
|
|
@ -41,9 +41,15 @@ public:
|
||||||
// Number of milliseconds (1000 msec = 1 second) played since beginning of track
|
// Number of milliseconds (1000 msec = 1 second) played since beginning of track
|
||||||
long tell() const;
|
long tell() const;
|
||||||
|
|
||||||
|
// Number of samples generated since beginning of track
|
||||||
|
long tell_samples() const;
|
||||||
|
|
||||||
// Seek to new time in track. Seeking backwards or far forward can take a while.
|
// Seek to new time in track. Seeking backwards or far forward can take a while.
|
||||||
blargg_err_t seek( long msec );
|
blargg_err_t seek( long msec );
|
||||||
|
|
||||||
|
// Equivalent to restarting track then skipping n samples
|
||||||
|
blargg_err_t seek_samples( long n );
|
||||||
|
|
||||||
// Skip n samples
|
// Skip n samples
|
||||||
blargg_err_t skip( long n );
|
blargg_err_t skip( long n );
|
||||||
|
|
||||||
|
|
|
@ -134,6 +134,9 @@ blargg_err_t Nsfe_Info::load( Data_Reader& in, Nsf_Emu* nsf_emu )
|
||||||
RETURN_ERR( in.read( block_header, sizeof block_header ) );
|
RETURN_ERR( in.read( block_header, sizeof block_header ) );
|
||||||
blargg_long size = get_le32( block_header [0] );
|
blargg_long size = get_le32( block_header [0] );
|
||||||
blargg_long tag = get_le32( block_header [1] );
|
blargg_long tag = get_le32( block_header [1] );
|
||||||
|
|
||||||
|
if ( size <= 0 )
|
||||||
|
return "Corrupt file";
|
||||||
|
|
||||||
//debug_printf( "tag: %c%c%c%c\n", char(tag), char(tag>>8), char(tag>>16), char(tag>>24) );
|
//debug_printf( "tag: %c%c%c%c\n", char(tag), char(tag>>8), char(tag>>16), char(tag>>24) );
|
||||||
|
|
||||||
|
|
|
@ -433,9 +433,7 @@ void Snes_Spc::cpu_write( int data, int addr, rel_time_t time )
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Registers other than $F2 and $F4-$F7
|
// Registers other than $F2 and $F4-$F7
|
||||||
//if ( reg != 2 && reg != 4 && reg != 5 && reg != 6 && reg != 7 )
|
if ( reg != 2 && (reg < 4 || reg > 7) ) // 36%
|
||||||
// TODO: this is a bit on the fragile side
|
|
||||||
if ( ((~0x2F00 << (bits_in_int - 16)) << reg) < 0 ) // 36%
|
|
||||||
cpu_write_smp_reg( data, time, reg );
|
cpu_write_smp_reg( data, time, reg );
|
||||||
}
|
}
|
||||||
// High mem/address wrap-around
|
// High mem/address wrap-around
|
||||||
|
|
|
@ -76,8 +76,8 @@ Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */
|
||||||
// TODO: remove non-wrapping versions?
|
// TODO: remove non-wrapping versions?
|
||||||
#define SPC_NO_SP_WRAPAROUND 0
|
#define SPC_NO_SP_WRAPAROUND 0
|
||||||
|
|
||||||
#define SET_SP( v ) (sp = ram + 0x101 + (v))
|
#define SET_SP( v ) (sp = ram + 0x101 + ((uint8_t) v))
|
||||||
#define GET_SP() (sp - 0x101 - ram)
|
#define GET_SP() (uint8_t (sp - 0x101 - ram))
|
||||||
|
|
||||||
#if SPC_NO_SP_WRAPAROUND
|
#if SPC_NO_SP_WRAPAROUND
|
||||||
#define PUSH16( v ) (sp -= 2, SET_LE16( sp, v ))
|
#define PUSH16( v ) (sp -= 2, SET_LE16( sp, v ))
|
||||||
|
@ -485,7 +485,7 @@ loop:
|
||||||
|
|
||||||
case 0xAF: // MOV (X)+,A
|
case 0xAF: // MOV (X)+,A
|
||||||
WRITE_DP( 0, x, a + no_read_before_write );
|
WRITE_DP( 0, x, a + no_read_before_write );
|
||||||
x++;
|
x = (uint8_t) (x + 1);
|
||||||
goto loop;
|
goto loop;
|
||||||
|
|
||||||
// 5. 8-BIT LOGIC OPERATION COMMANDS
|
// 5. 8-BIT LOGIC OPERATION COMMANDS
|
||||||
|
@ -808,7 +808,7 @@ loop:
|
||||||
unsigned temp = y * a;
|
unsigned temp = y * a;
|
||||||
a = (uint8_t) temp;
|
a = (uint8_t) temp;
|
||||||
nz = ((temp >> 1) | temp) & 0x7F;
|
nz = ((temp >> 1) | temp) & 0x7F;
|
||||||
y = temp >> 8;
|
y = (uint8_t) (temp >> 8);
|
||||||
nz |= y;
|
nz |= y;
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
@ -838,6 +838,7 @@ loop:
|
||||||
|
|
||||||
nz = (uint8_t) a;
|
nz = (uint8_t) a;
|
||||||
a = (uint8_t) a;
|
a = (uint8_t) a;
|
||||||
|
y = (uint8_t) y;
|
||||||
|
|
||||||
goto loop;
|
goto loop;
|
||||||
}
|
}
|
||||||
|
@ -1004,7 +1005,7 @@ loop:
|
||||||
case 0x7F: // RET1
|
case 0x7F: // RET1
|
||||||
temp = *sp;
|
temp = *sp;
|
||||||
SET_PC( GET_LE16( sp + 1 ) );
|
SET_PC( GET_LE16( sp + 1 ) );
|
||||||
sp += 3;
|
SET_SP( GET_SP() + 3 );
|
||||||
goto set_psw;
|
goto set_psw;
|
||||||
case 0x8E: // POP PSW
|
case 0x8E: // POP PSW
|
||||||
POP( temp );
|
POP( temp );
|
||||||
|
|
|
@ -18,6 +18,19 @@ all other #include lines. */
|
||||||
#undef require
|
#undef require
|
||||||
#define require( expr ) assert( expr )
|
#define require( expr ) assert( expr )
|
||||||
|
|
||||||
|
// Use to provide hints to compiler for optimized code layout in situations where we
|
||||||
|
// can almost always expect a conditional to go one way or the other. Should only be
|
||||||
|
// used in situations where an unexpected branch is truly exceptional though!
|
||||||
|
#undef likely
|
||||||
|
#undef unlikely
|
||||||
|
#ifdef __GNUC__
|
||||||
|
#define likely( x ) __builtin_expect(x, 1)
|
||||||
|
#define unlikely( x ) __builtin_expect(x, 0)
|
||||||
|
#else
|
||||||
|
#define likely( x ) (x)
|
||||||
|
#define unlikely( x ) (x)
|
||||||
|
#endif
|
||||||
|
|
||||||
// Like printf() except output goes to debug log file. Might be defined to do
|
// Like printf() except output goes to debug log file. Might be defined to do
|
||||||
// nothing (not even evaluate its arguments).
|
// nothing (not even evaluate its arguments).
|
||||||
// void debug_printf( const char* format, ... );
|
// void debug_printf( const char* format, ... );
|
||||||
|
|
|
@ -337,7 +337,9 @@ BLARGG_EXPORT gme_err_t gme_play ( Music_Emu* me, int n, short* p )
|
||||||
BLARGG_EXPORT void gme_set_fade ( Music_Emu* me, int start_msec ) { me->set_fade( start_msec ); }
|
BLARGG_EXPORT void gme_set_fade ( Music_Emu* me, int start_msec ) { me->set_fade( start_msec ); }
|
||||||
BLARGG_EXPORT int gme_track_ended ( Music_Emu const* me ) { return me->track_ended(); }
|
BLARGG_EXPORT int gme_track_ended ( Music_Emu const* me ) { return me->track_ended(); }
|
||||||
BLARGG_EXPORT int gme_tell ( Music_Emu const* me ) { return me->tell(); }
|
BLARGG_EXPORT int gme_tell ( Music_Emu const* me ) { return me->tell(); }
|
||||||
|
BLARGG_EXPORT int gme_tell_samples ( Music_Emu const* me ) { return me->tell_samples(); }
|
||||||
BLARGG_EXPORT gme_err_t gme_seek ( Music_Emu* me, int msec ) { return me->seek( msec ); }
|
BLARGG_EXPORT gme_err_t gme_seek ( Music_Emu* me, int msec ) { return me->seek( msec ); }
|
||||||
|
BLARGG_EXPORT gme_err_t gme_seek_samples ( Music_Emu* me, int n ) { return me->seek_samples( n ); }
|
||||||
BLARGG_EXPORT int gme_voice_count ( Music_Emu const* me ) { return me->voice_count(); }
|
BLARGG_EXPORT int gme_voice_count ( Music_Emu const* me ) { return me->voice_count(); }
|
||||||
BLARGG_EXPORT void gme_ignore_silence ( Music_Emu* me, int disable ) { me->ignore_silence( disable != 0 ); }
|
BLARGG_EXPORT void gme_ignore_silence ( Music_Emu* me, int disable ) { me->ignore_silence( disable != 0 ); }
|
||||||
BLARGG_EXPORT void gme_set_tempo ( Music_Emu* me, double t ) { me->set_tempo( t ); }
|
BLARGG_EXPORT void gme_set_tempo ( Music_Emu* me, double t ) { me->set_tempo( t ); }
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Game music emulator library C interface (also usable from C++) */
|
/* Game music emulator library C interface (also usable from C++) */
|
||||||
|
|
||||||
/* Game_Music_Emu 0.6.0 */
|
/* Game_Music_Emu 0.6.1 */
|
||||||
#ifndef GME_H
|
#ifndef GME_H
|
||||||
#define GME_H
|
#define GME_H
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define GME_VERSION 0x000600 /* 1 byte major, 1 byte minor, 1 byte patch-level */
|
#define GME_VERSION 0x000601 /* 1 byte major, 1 byte minor, 1 byte patch-level */
|
||||||
|
|
||||||
/* Error string returned by library functions, or NULL if no error (success) */
|
/* Error string returned by library functions, or NULL if no error (success) */
|
||||||
typedef const char* gme_err_t;
|
typedef const char* gme_err_t;
|
||||||
|
@ -47,9 +47,15 @@ int gme_track_ended( Music_Emu const* );
|
||||||
/* Number of milliseconds (1000 = one second) played since beginning of track */
|
/* Number of milliseconds (1000 = one second) played since beginning of track */
|
||||||
int gme_tell( Music_Emu const* );
|
int gme_tell( Music_Emu const* );
|
||||||
|
|
||||||
|
/* Number of samples generated since beginning of track */
|
||||||
|
int gme_tell_samples( Music_Emu const* );
|
||||||
|
|
||||||
/* Seek to new time in track. Seeking backwards or far forward can take a while. */
|
/* Seek to new time in track. Seeking backwards or far forward can take a while. */
|
||||||
gme_err_t gme_seek( Music_Emu*, int msec );
|
gme_err_t gme_seek( Music_Emu*, int msec );
|
||||||
|
|
||||||
|
/* Equivalent to restarting track then skipping n samples */
|
||||||
|
gme_err_t gme_seek_samples( Music_Emu*, int n );
|
||||||
|
|
||||||
|
|
||||||
/******** Informational ********/
|
/******** Informational ********/
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
# later are used by pkg-config.
|
# later are used by pkg-config.
|
||||||
prefix=@CMAKE_INSTALL_PREFIX@
|
prefix=@CMAKE_INSTALL_PREFIX@
|
||||||
exec_prefix=${prefix}
|
exec_prefix=${prefix}
|
||||||
lib_suffix=
|
lib_suffix=@LIB_SUFFIX@
|
||||||
libdir=${exec_prefix}/lib${lib_suffix}
|
libdir=${exec_prefix}/lib${lib_suffix}
|
||||||
includedir=${prefix}/include
|
includedir=${prefix}/include
|
||||||
|
|
||||||
|
@ -13,3 +13,4 @@ URL: http://code.google.com/p/game-music-emu/
|
||||||
Version: @GME_VERSION@
|
Version: @GME_VERSION@
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
Libs: -L${libdir} -lgme
|
Libs: -L${libdir} -lgme
|
||||||
|
Libs.private: -lstdc++
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
/* Game music emulator library C interface (also usable from C++) */
|
/* Game music emulator library C interface (also usable from C++) */
|
||||||
|
|
||||||
/* Game_Music_Emu 0.6.0 */
|
/* Game_Music_Emu 0.6.1 */
|
||||||
#ifndef GME_H
|
#ifndef GME_H
|
||||||
#define GME_H
|
#define GME_H
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define GME_VERSION 0x000600 /* 1 byte major, 1 byte minor, 1 byte patch-level */
|
#define GME_VERSION 0x000601 /* 1 byte major, 1 byte minor, 1 byte patch-level */
|
||||||
|
|
||||||
/* Error string returned by library functions, or NULL if no error (success) */
|
/* Error string returned by library functions, or NULL if no error (success) */
|
||||||
typedef const char* gme_err_t;
|
typedef const char* gme_err_t;
|
||||||
|
@ -47,9 +47,15 @@ int gme_track_ended( Music_Emu const* );
|
||||||
/* Number of milliseconds (1000 = one second) played since beginning of track */
|
/* Number of milliseconds (1000 = one second) played since beginning of track */
|
||||||
int gme_tell( Music_Emu const* );
|
int gme_tell( Music_Emu const* );
|
||||||
|
|
||||||
|
/* Number of samples generated since beginning of track */
|
||||||
|
int gme_tell_samples( Music_Emu const* );
|
||||||
|
|
||||||
/* Seek to new time in track. Seeking backwards or far forward can take a while. */
|
/* Seek to new time in track. Seeking backwards or far forward can take a while. */
|
||||||
gme_err_t gme_seek( Music_Emu*, int msec );
|
gme_err_t gme_seek( Music_Emu*, int msec );
|
||||||
|
|
||||||
|
/* Equivalent to restarting track then skipping n samples */
|
||||||
|
gme_err_t gme_seek_samples( Music_Emu*, int n );
|
||||||
|
|
||||||
|
|
||||||
/******** Informational ********/
|
/******** Informational ********/
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Game_Music_Emu 0.6.0: Game Music Emulators
|
Game_Music_Emu 0.6.2: Game Music Emulators
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
Game_Music_Emu is a collection of video game music file emulators that
|
Game_Music_Emu is a collection of video game music file emulators that
|
||||||
support the following formats and systems:
|
support the following formats and systems:
|
||||||
|
@ -34,30 +34,45 @@ several architectures, Mac OS, MorphOS, Xbox, PlayStation Portable,
|
||||||
GP2X, and Nintendo DS.
|
GP2X, and Nintendo DS.
|
||||||
|
|
||||||
Author : Shay Green <gblargg@gmail.com>
|
Author : Shay Green <gblargg@gmail.com>
|
||||||
Website: http://www.slack.net/~ant/
|
Website: https://bitbucket.org/mpyne/game-music-emu/wiki/Home
|
||||||
Forum : http://groups.google.com/group/blargg-sound-libs
|
|
||||||
License: GNU Lesser General Public License (LGPL)
|
License: GNU Lesser General Public License (LGPL)
|
||||||
|
|
||||||
|
Current Maintainer: Michael Pyne <mpyne@purinchu.net>
|
||||||
|
|
||||||
Getting Started
|
Getting Started
|
||||||
---------------
|
---------------
|
||||||
Build a program consisting of demo/basics.c, demo/Wave_Writer.cpp, and
|
Build a program consisting of demo/basics.c, demo/Wave_Writer.cpp, and
|
||||||
all source files in gme/. If you have CMake 2.6 or later, execute
|
all source files in gme/.
|
||||||
|
|
||||||
run cmake
|
Or, if you have CMake 2.6 or later, execute at a command prompt (from the
|
||||||
cd demo
|
extracted source directory):
|
||||||
run make
|
|
||||||
|
|
||||||
Be sure "test.nsf" is in the same directory as the program. Running it
|
mkdir build
|
||||||
|
cd build
|
||||||
|
cmake ../ # <-- Pass any needed CMake flags here
|
||||||
|
make # To build the library
|
||||||
|
cd demo
|
||||||
|
make # To build the demo itself
|
||||||
|
|
||||||
|
Be sure "test.nsf" is in the same directory as the demo program. Running it
|
||||||
should generate the recording "out.wav".
|
should generate the recording "out.wav".
|
||||||
|
|
||||||
|
You can use "make install" to install the library. To choose where to install
|
||||||
|
the library to, use the CMake argument "-DCMAKE_INSTALL_PREFIX=/usr/local"
|
||||||
|
(and replace /usr/local with the base path you wish to use). Alternately, you
|
||||||
|
can specify the base path to install to when you run "make install" by passing
|
||||||
|
'DESTDIR=/usr/local' on the make install command line (again, replace
|
||||||
|
/usr/local as appropriate).
|
||||||
|
|
||||||
|
To build a static library instead of shared (the default), pass
|
||||||
|
-DBUILD_SHARED_LIBS=OFF to the cmake command when running cmake.
|
||||||
|
|
||||||
A slightly more extensive demo application is available in the player/
|
A slightly more extensive demo application is available in the player/
|
||||||
directory. It requires SDL to build.
|
directory. It requires SDL to build.
|
||||||
|
|
||||||
Read gme.txt for more information. Post to the discussion forum for
|
Read gme.txt for more information. Post to the discussion forum for
|
||||||
assistance.
|
assistance.
|
||||||
|
|
||||||
|
|
||||||
Files
|
Files
|
||||||
-----
|
-----
|
||||||
gme.txt General notes about the library
|
gme.txt General notes about the library
|
||||||
|
|
Binary file not shown.
Binary file not shown.
|
@ -116,6 +116,7 @@ WFLAGS+=-Wfloat-equal
|
||||||
#WFLAGS+=-Wtraditional
|
#WFLAGS+=-Wtraditional
|
||||||
ifdef VCHELP
|
ifdef VCHELP
|
||||||
WFLAGS+=-Wdeclaration-after-statement
|
WFLAGS+=-Wdeclaration-after-statement
|
||||||
|
WFLAGS+=-Wno-error=declaration-after-statement
|
||||||
endif
|
endif
|
||||||
WFLAGS+=-Wundef
|
WFLAGS+=-Wundef
|
||||||
ifndef GCC295
|
ifndef GCC295
|
||||||
|
@ -189,12 +190,6 @@ ifdef GCC46
|
||||||
WFLAGS+=-Wno-suggest-attribute=noreturn
|
WFLAGS+=-Wno-suggest-attribute=noreturn
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef MINGW
|
|
||||||
ifdef GCC45
|
|
||||||
WFLAGS+=-Wunsuffixed-float-constants
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifdef NOLDWARNING
|
ifdef NOLDWARNING
|
||||||
LDFLAGS+=-Wl,--as-needed
|
LDFLAGS+=-Wl,--as-needed
|
||||||
endif
|
endif
|
||||||
|
@ -208,6 +203,9 @@ WFLAGS+=$(OLDWFLAGS)
|
||||||
ifdef GCC43
|
ifdef GCC43
|
||||||
#WFLAGS+=-Wno-error=clobbered
|
#WFLAGS+=-Wno-error=clobbered
|
||||||
endif
|
endif
|
||||||
|
ifdef GCC44
|
||||||
|
WFLAGS+=-Wno-error=array-bounds
|
||||||
|
endif
|
||||||
ifdef GCC46
|
ifdef GCC46
|
||||||
WFLAGS+=-Wno-error=suggest-attribute=noreturn
|
WFLAGS+=-Wno-error=suggest-attribute=noreturn
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -2547,6 +2547,8 @@ static void CL_RemovePlayer(INT32 playernum, INT32 reason)
|
||||||
|
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
LUAh_PlayerQuit(&players[playernum], reason); // Lua hook for player quitting
|
LUAh_PlayerQuit(&players[playernum], reason); // Lua hook for player quitting
|
||||||
|
#else
|
||||||
|
(void)reason;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Reset player data
|
// Reset player data
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
#define __D_NET__
|
#define __D_NET__
|
||||||
|
|
||||||
// Max computers in a game
|
// Max computers in a game
|
||||||
#define MAXNETNODES 16
|
#define MAXNETNODES (MAXPLAYERS+4)
|
||||||
#define BROADCASTADDR MAXNETNODES
|
#define BROADCASTADDR MAXNETNODES
|
||||||
#define MAXSPLITSCREENPLAYERS 4 // Max number of players on a single computer
|
#define MAXSPLITSCREENPLAYERS 4 // Max number of players on a single computer
|
||||||
#define NETSPLITSCREEN // Kart's splitscreen netgame feature
|
#define NETSPLITSCREEN // Kart's splitscreen netgame feature
|
||||||
|
|
|
@ -378,6 +378,7 @@ consvar_t cv_kartdebughuddrop = {"kartdebughuddrop", "Off", CV_NETVAR|CV_CHEAT|C
|
||||||
|
|
||||||
consvar_t cv_kartdebugcheckpoint = {"kartdebugcheckpoint", "Off", CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartdebugcheckpoint = {"kartdebugcheckpoint", "Off", CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
consvar_t cv_kartdebugnodes = {"kartdebugnodes", "Off", CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_kartdebugnodes = {"kartdebugnodes", "Off", CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
consvar_t cv_kartdebugcolorize = {"kartdebugcolorize", "Off", CV_NOSHOWHELP, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
||||||
static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}};
|
static CV_PossibleValue_t votetime_cons_t[] = {{10, "MIN"}, {3600, "MAX"}, {0, NULL}};
|
||||||
consvar_t cv_votetime = {"votetime", "20", CV_NETVAR, votetime_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
consvar_t cv_votetime = {"votetime", "20", CV_NETVAR, votetime_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||||
|
|
|
@ -126,7 +126,7 @@ extern consvar_t cv_karteliminatelast;
|
||||||
extern consvar_t cv_votetime;
|
extern consvar_t cv_votetime;
|
||||||
|
|
||||||
extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartdebugshrink, cv_kartdebugdistribution, cv_kartdebughuddrop;
|
extern consvar_t cv_kartdebugitem, cv_kartdebugamount, cv_kartdebugshrink, cv_kartdebugdistribution, cv_kartdebughuddrop;
|
||||||
extern consvar_t cv_kartdebugcheckpoint, cv_kartdebugnodes;
|
extern consvar_t cv_kartdebugcheckpoint, cv_kartdebugnodes, cv_kartdebugcolorize;
|
||||||
|
|
||||||
extern consvar_t cv_itemfinder;
|
extern consvar_t cv_itemfinder;
|
||||||
|
|
||||||
|
|
227
src/dehacked.c
227
src/dehacked.c
|
@ -8134,89 +8134,136 @@ static const char *const ML_LIST[16] = {
|
||||||
// This DOES differ from r_draw's Color_Names, unfortunately.
|
// This DOES differ from r_draw's Color_Names, unfortunately.
|
||||||
// Also includes Super colors
|
// Also includes Super colors
|
||||||
static const char *COLOR_ENUMS[] = { // Rejigged for Kart.
|
static const char *COLOR_ENUMS[] = { // Rejigged for Kart.
|
||||||
"NONE", // 00 // SKINCOLOR_NONE
|
"NONE", // SKINCOLOR_NONE
|
||||||
"WHITE", // 01 // SKINCOLOR_WHITE
|
"WHITE", // SKINCOLOR_WHITE
|
||||||
"SILVER", // 02 // SKINCOLOR_SILVER
|
"SILVER", // SKINCOLOR_SILVER
|
||||||
"GREY", // 03 // SKINCOLOR_GREY
|
"GREY", // SKINCOLOR_GREY
|
||||||
"NICKEL", // 04 // SKINCOLOR_NICKEL
|
"NICKEL", // SKINCOLOR_NICKEL
|
||||||
"BLACK", // 05 // SKINCOLOR_BLACK
|
"BLACK", // SKINCOLOR_BLACK
|
||||||
"SEPIA", // 06 // SKINCOLOR_SEPIA
|
"SEPIA", // SKINCOLOR_SEPIA
|
||||||
"BEIGE", // 07 // SKINCOLOR_BEIGE
|
"BEIGE", // SKINCOLOR_BEIGE
|
||||||
"BROWN", // 08 // SKINCOLOR_BROWN
|
"BROWN", // SKINCOLOR_BROWN
|
||||||
"LEATHER", // 09 // SKINCOLOR_LEATHER
|
"LEATHER", // SKINCOLOR_LEATHER
|
||||||
"SALMON", // 10 // SKINCOLOR_SALMON
|
"SALMON", // SKINCOLOR_SALMON
|
||||||
"PINK", // 11 // SKINCOLOR_PINK
|
"PINK", // SKINCOLOR_PINK
|
||||||
"ROSE", // 12 // SKINCOLOR_ROSE
|
"ROSE", // SKINCOLOR_ROSE
|
||||||
"RUBY", // 13 // SKINCOLOR_RUBY
|
"RUBY", // SKINCOLOR_RUBY
|
||||||
"RASPBERRY", // 14 // SKINCOLOR_RASPBERRY
|
"RASPBERRY", // SKINCOLOR_RASPBERRY
|
||||||
"RED", // 15 // SKINCOLOR_RED
|
"CHERRY", // SKINCOLOR_CHERRY
|
||||||
"CRIMSON", // 16 // SKINCOLOR_CRIMSON
|
"RED", // SKINCOLOR_RED
|
||||||
"KETCHUP", // 17 // SKINCOLOR_KETCHUP
|
"SCARLET", // SKINCOLOR_SCARLET
|
||||||
"DAWN", // 18 // SKINCOLOR_DAWN
|
"CRIMSON", // SKINCOLOR_CRIMSON
|
||||||
"CREAMSICLE", // 19 // SKINCOLOR_CREAMSICLE
|
"NOVA", // SKINCOLOR_NOVA
|
||||||
"ORANGE", // 20 // SKINCOLOR_ORANGE
|
"KETCHUP", // SKINCOLOR_KETCHUP
|
||||||
"PUMPKIN", // 21 // SKINCOLOR_PUMPKIN
|
"DAWN", // SKINCOLOR_DAWN
|
||||||
"ROSEWOOD", // 22 // SKINCOLOR_ROSEWOOD
|
"CREAMSICLE", // SKINCOLOR_CREAMSICLE
|
||||||
"BURGUNDY", // 23 // SKINCOLOR_BURGUNDY
|
"ORANGE", // SKINCOLOR_ORANGE
|
||||||
"TANGERINE", // 24 // SKINCOLOR_TANGERINE
|
"PUMPKIN", // SKINCOLOR_PUMPKIN
|
||||||
"PEACH", // 25 // SKINCOLOR_PEACH
|
"ROSEWOOD", // SKINCOLOR_ROSEWOOD
|
||||||
"CARAMEL", // 26 // SKINCOLOR_CARAMEL
|
"BURGUNDY", // SKINCOLOR_BURGUNDY
|
||||||
"GOLD", // 27 // SKINCOLOR_GOLD
|
"TANGERINE", // SKINCOLOR_TANGERINE
|
||||||
"BRONZE", // 28 // SKINCOLOR_BRONZE
|
"PEACH", // SKINCOLOR_PEACH
|
||||||
"YELLOW", // 29 // SKINCOLOR_YELLOW
|
"CARAMEL", // SKINCOLOR_CARAMEL
|
||||||
"MUSTARD", // 30 // SKINCOLOR_MUSTARD
|
"CREAM", // SKINCOLOR_CREAM
|
||||||
"OLIVE", // 31 // SKINCOLOR_OLIVE
|
"GOLD", // SKINCOLOR_GOLD
|
||||||
"VOMIT", // 32 // SKINCOLOR_VOMIT
|
"BRONZE", // SKINCOLOR_BRONZE
|
||||||
"GARDEN", // 33 // SKINCOLOR_GARDEN
|
"COPPER", // SKINCOLOR_COPPER
|
||||||
"LIME", // 34 // SKINCOLOR_LIME
|
"YELLOW", // SKINCOLOR_YELLOW
|
||||||
"TEA", // 35 // SKINCOLOR_TEA
|
"MUSTARD", // SKINCOLOR_MUSTARD
|
||||||
"PISTACHIO", // 36 // SKINCOLOR_PISTACHIO
|
"OLIVE", // SKINCOLOR_OLIVE
|
||||||
"ROBOHOOD", // 37 // SKINCOLOR_ROBOHOOD
|
"VOMIT", // SKINCOLOR_VOMIT
|
||||||
"MOSS", // 38 // SKINCOLOR_MOSS
|
"GARDEN", // SKINCOLOR_GARDEN
|
||||||
"MINT", // 39 // SKINCOLOR_MINT
|
"LIME", // SKINCOLOR_LIME
|
||||||
"GREEN", // 40 // SKINCOLOR_GREEN
|
"HANDHELD", // SKINCOLOR_HANDHELD
|
||||||
"PINETREE", // 41 // SKINCOLOR_PINETREE
|
"TEA", // SKINCOLOR_TEA
|
||||||
"EMERALD", // 42 // SKINCOLOR_EMERALD
|
"PISTACHIO", // SKINCOLOR_PISTACHIO
|
||||||
"SWAMP", // 43 // SKINCOLOR_SWAMP
|
"ROBOHOOD", // SKINCOLOR_ROBOHOOD
|
||||||
"DREAM", // 44 // SKINCOLOR_DREAM
|
"MOSS", // SKINCOLOR_MOSS
|
||||||
"AQUA", // 45 // SKINCOLOR_AQUA
|
"MINT", // SKINCOLOR_MINT
|
||||||
"TEAL", // 46 // SKINCOLOR_TEAL
|
"GREEN", // SKINCOLOR_GREEN
|
||||||
"CYAN", // 47 // SKINCOLOR_CYAN
|
"PINETREE", // SKINCOLOR_PINETREE
|
||||||
"JAWZ", // 48 // SKINCOLOR_JAWZ
|
"EMERALD", // SKINCOLOR_EMERALD
|
||||||
"CERULEAN", // 49 // SKINCOLOR_CERULEAN
|
"SWAMP", // SKINCOLOR_SWAMP
|
||||||
"NAVY", // 50 // SKINCOLOR_NAVY
|
"DREAM", // SKINCOLOR_DREAM
|
||||||
"SLATE", // 51 // SKINCOLOR_SLATE
|
"ALGAE", // SKINCOLOR_ALGAE
|
||||||
"STEEL", // 52 // SKINCOLOR_STEEL
|
"AQUA", // SKINCOLOR_AQUA
|
||||||
"JET", // 53 // SKINCOLOR_JET
|
"TEAL", // SKINCOLOR_TEAL
|
||||||
"SAPPHIRE", // 54 // SKINCOLOR_SAPPHIRE
|
"CYAN", // SKINCOLOR_CYAN
|
||||||
"PERIWINKLE", // 55 // SKINCOLOR_PERIWINKLE
|
"JAWZ", // SKINCOLOR_JAWZ
|
||||||
"BLUE", // 56 // SKINCOLOR_BLUE
|
"CERULEAN", // SKINCOLOR_CERULEAN
|
||||||
"BLUEBERRY", // 57 // SKINCOLOR_BLUEBERRY
|
"NAVY", // SKINCOLOR_NAVY
|
||||||
"DUSK", // 58 // SKINCOLOR_DUSK
|
"SLATE", // SKINCOLOR_SLATE
|
||||||
"PURPLE", // 59 // SKINCOLOR_PURPLE
|
"STEEL", // SKINCOLOR_STEEL
|
||||||
"LAVENDER", // 60 // SKINCOLOR_LAVENDER
|
"JET", // SKINCOLOR_JET
|
||||||
"BYZANTIUM", // 61 // SKINCOLOR_BYZANTIUM
|
"SAPPHIRE", // SKINCOLOR_SAPPHIRE
|
||||||
"POMEGRANATE", // 62 // SKINCOLOR_POMEGRANATE
|
"PERIWINKLE", // SKINCOLOR_PERIWINKLE
|
||||||
"LILAC", // 63 // SKINCOLOR_LILAC
|
"BLUE", // SKINCOLOR_BLUE
|
||||||
|
"BLUEBERRY", // SKINCOLOR_BLUEBERRY
|
||||||
|
"PASTEL", // SKINCOLOR_PASTEL
|
||||||
|
"DUSK", // SKINCOLOR_DUSK
|
||||||
|
"PURPLE", // SKINCOLOR_PURPLE
|
||||||
|
"FUCHSIA", // SKINCOLOR_FUCHSIA
|
||||||
|
"TOXIC", // SKINCOLOR_TOXIC
|
||||||
|
"LAVENDER", // SKINCOLOR_LAVENDER
|
||||||
|
"BYZANTIUM", // SKINCOLOR_BYZANTIUM
|
||||||
|
"POMEGRANATE", // SKINCOLOR_POMEGRANATE
|
||||||
|
"LILAC", // SKINCOLOR_LILAC
|
||||||
|
|
||||||
// Super special awesome Super flashing colors!
|
// Special super colors
|
||||||
"SUPER1", // SKINCOLOR_SUPER1
|
// Super Sonic Yellow
|
||||||
"SUPER2", // SKINCOLOR_SUPER2,
|
"SUPER1", // SKINCOLOR_SUPER1
|
||||||
"SUPER3", // SKINCOLOR_SUPER3,
|
"SUPER2", // SKINCOLOR_SUPER2,
|
||||||
"SUPER4", // SKINCOLOR_SUPER4,
|
"SUPER3", // SKINCOLOR_SUPER3,
|
||||||
"SUPER5", // SKINCOLOR_SUPER5,
|
"SUPER4", // SKINCOLOR_SUPER4,
|
||||||
// Super Tails
|
"SUPER5", // SKINCOLOR_SUPER5,
|
||||||
"TSUPER1", // SKINCOLOR_TSUPER1,
|
// Super Tails Orange
|
||||||
"TSUPER2", // SKINCOLOR_TSUPER2,
|
"TSUPER1", // SKINCOLOR_TSUPER1,
|
||||||
"TSUPER3", // SKINCOLOR_TSUPER3,
|
"TSUPER2", // SKINCOLOR_TSUPER2,
|
||||||
"TSUPER4", // SKINCOLOR_TSUPER4,
|
"TSUPER3", // SKINCOLOR_TSUPER3,
|
||||||
"TSUPER5", // SKINCOLOR_TSUPER5,
|
"TSUPER4", // SKINCOLOR_TSUPER4,
|
||||||
// Super Knuckles
|
"TSUPER5", // SKINCOLOR_TSUPER5,
|
||||||
"KSUPER1", // SKINCOLOR_KSUPER1,
|
// Super Knuckles Red
|
||||||
"KSUPER2", // SKINCOLOR_KSUPER2,
|
"KSUPER1", // SKINCOLOR_KSUPER1,
|
||||||
"KSUPER3", // SKINCOLOR_KSUPER3,
|
"KSUPER2", // SKINCOLOR_KSUPER2,
|
||||||
"KSUPER4", // SKINCOLOR_KSUPER4,
|
"KSUPER3", // SKINCOLOR_KSUPER3,
|
||||||
"KSUPER5" // SKINCOLOR_KSUPER5,
|
"KSUPER4", // SKINCOLOR_KSUPER4,
|
||||||
|
"KSUPER5", // SKINCOLOR_KSUPER5,
|
||||||
|
// Hyper Sonic Pink
|
||||||
|
"PSUPER1", // SKINCOLOR_PSUPER1,
|
||||||
|
"PSUPER2", // SKINCOLOR_PSUPER2,
|
||||||
|
"PSUPER3", // SKINCOLOR_PSUPER3,
|
||||||
|
"PSUPER4", // SKINCOLOR_PSUPER4,
|
||||||
|
"PSUPER5", // SKINCOLOR_PSUPER5,
|
||||||
|
// Hyper Sonic Blue
|
||||||
|
"BSUPER1", // SKINCOLOR_BSUPER1,
|
||||||
|
"BSUPER2", // SKINCOLOR_BSUPER2,
|
||||||
|
"BSUPER3", // SKINCOLOR_BSUPER3,
|
||||||
|
"BSUPER4", // SKINCOLOR_BSUPER4,
|
||||||
|
"BSUPER5" // SKINCOLOR_BSUPER5,
|
||||||
|
// Hyper Sonic Green
|
||||||
|
"GSUPER1", // SKINCOLOR_GSUPER1,
|
||||||
|
"GSUPER2", // SKINCOLOR_GSUPER2,
|
||||||
|
"GSUPER3", // SKINCOLOR_GSUPER3,
|
||||||
|
"GSUPER4", // SKINCOLOR_GSUPER4,
|
||||||
|
"GSUPER5", // SKINCOLOR_GSUPER5,
|
||||||
|
// Hyper Sonic White
|
||||||
|
"WSUPER1", // SKINCOLOR_WSUPER1,
|
||||||
|
"WSUPER2", // SKINCOLOR_WSUPER2,
|
||||||
|
"WSUPER3", // SKINCOLOR_WSUPER3,
|
||||||
|
"WSUPER4", // SKINCOLOR_WSUPER4,
|
||||||
|
"WSUPER5", // SKINCOLOR_WSUPER5,
|
||||||
|
// Creamy Super (Shadow?)
|
||||||
|
"CSUPER1", // SKINCOLOR_CSUPER1,
|
||||||
|
"CSUPER2", // SKINCOLOR_CSUPER2,
|
||||||
|
"CSUPER3", // SKINCOLOR_CSUPER3,
|
||||||
|
"CSUPER4", // SKINCOLOR_CSUPER4,
|
||||||
|
"CSUPER5", // SKINCOLOR_CSUPER5,
|
||||||
|
// Aqua Super
|
||||||
|
"ASUPER1", // SKINCOLOR_ASUPER1,
|
||||||
|
"ASUPER2", // SKINCOLOR_ASUPER2,
|
||||||
|
"ASUPER3", // SKINCOLOR_ASUPER3,
|
||||||
|
"ASUPER4", // SKINCOLOR_ASUPER4,
|
||||||
|
"ASUPER5" // SKINCOLOR_ASUPER5,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *const POWERS_LIST[] = {
|
static const char *const POWERS_LIST[] = {
|
||||||
|
@ -8254,6 +8301,7 @@ static const char *const POWERS_LIST[] = {
|
||||||
"INGOOP" // In goop
|
"INGOOP" // In goop
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
static const char *const KARTSTUFF_LIST[] = {
|
static const char *const KARTSTUFF_LIST[] = {
|
||||||
"POSITION",
|
"POSITION",
|
||||||
"OLDPOSITION",
|
"OLDPOSITION",
|
||||||
|
@ -8338,6 +8386,7 @@ static const char *const KARTSTUFF_LIST[] = {
|
||||||
"SPECTATEWAIT",
|
"SPECTATEWAIT",
|
||||||
"GROWCANCEL"
|
"GROWCANCEL"
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
static const char *const HUDITEMS_LIST[] = {
|
static const char *const HUDITEMS_LIST[] = {
|
||||||
"LIVESNAME",
|
"LIVESNAME",
|
||||||
|
@ -9043,20 +9092,6 @@ static powertype_t get_power(const char *word)
|
||||||
return pw_invulnerability;
|
return pw_invulnerability;
|
||||||
}
|
}
|
||||||
|
|
||||||
static kartstufftype_t get_kartstuff(const char *word)
|
|
||||||
{ // Returns the vlaue of k_ enumerations
|
|
||||||
kartstufftype_t i;
|
|
||||||
if (*word >= '0' && *word <= '9')
|
|
||||||
return atoi(word);
|
|
||||||
if (fastncmp("K_",word,2))
|
|
||||||
word += 2; // take off the k_
|
|
||||||
for (i = 0; i < NUMKARTSTUFF; i++)
|
|
||||||
if (fastcmp(word, KARTSTUFF_LIST[i]))
|
|
||||||
return i;
|
|
||||||
deh_warning("Couldn't find power named 'k_%s'",word);
|
|
||||||
return k_position;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// \todo Make ANY of this completely over-the-top math craziness obey the order of operations.
|
/// \todo Make ANY of this completely over-the-top math craziness obey the order of operations.
|
||||||
static fixed_t op_mul(fixed_t a, fixed_t b) { return a*b; }
|
static fixed_t op_mul(fixed_t a, fixed_t b) { return a*b; }
|
||||||
static fixed_t op_div(fixed_t a, fixed_t b) { return a/b; }
|
static fixed_t op_div(fixed_t a, fixed_t b) { return a/b; }
|
||||||
|
|
|
@ -265,8 +265,11 @@ typedef enum
|
||||||
SKINCOLOR_ROSE,
|
SKINCOLOR_ROSE,
|
||||||
SKINCOLOR_RUBY,
|
SKINCOLOR_RUBY,
|
||||||
SKINCOLOR_RASPBERRY,
|
SKINCOLOR_RASPBERRY,
|
||||||
|
SKINCOLOR_CHERRY,
|
||||||
SKINCOLOR_RED,
|
SKINCOLOR_RED,
|
||||||
|
SKINCOLOR_SCARLET,
|
||||||
SKINCOLOR_CRIMSON,
|
SKINCOLOR_CRIMSON,
|
||||||
|
SKINCOLOR_NOVA,
|
||||||
SKINCOLOR_KETCHUP,
|
SKINCOLOR_KETCHUP,
|
||||||
SKINCOLOR_DAWN,
|
SKINCOLOR_DAWN,
|
||||||
SKINCOLOR_CREAMSICLE,
|
SKINCOLOR_CREAMSICLE,
|
||||||
|
@ -277,14 +280,17 @@ typedef enum
|
||||||
SKINCOLOR_TANGERINE,
|
SKINCOLOR_TANGERINE,
|
||||||
SKINCOLOR_PEACH,
|
SKINCOLOR_PEACH,
|
||||||
SKINCOLOR_CARAMEL,
|
SKINCOLOR_CARAMEL,
|
||||||
|
SKINCOLOR_CREAM,
|
||||||
SKINCOLOR_GOLD,
|
SKINCOLOR_GOLD,
|
||||||
SKINCOLOR_BRONZE,
|
SKINCOLOR_BRONZE,
|
||||||
|
SKINCOLOR_COPPER,
|
||||||
SKINCOLOR_YELLOW,
|
SKINCOLOR_YELLOW,
|
||||||
SKINCOLOR_MUSTARD,
|
SKINCOLOR_MUSTARD,
|
||||||
SKINCOLOR_OLIVE,
|
SKINCOLOR_OLIVE,
|
||||||
SKINCOLOR_VOMIT,
|
SKINCOLOR_VOMIT,
|
||||||
SKINCOLOR_GARDEN,
|
SKINCOLOR_GARDEN,
|
||||||
SKINCOLOR_LIME,
|
SKINCOLOR_LIME,
|
||||||
|
SKINCOLOR_HANDHELD,
|
||||||
SKINCOLOR_TEA,
|
SKINCOLOR_TEA,
|
||||||
SKINCOLOR_PISTACHIO,
|
SKINCOLOR_PISTACHIO,
|
||||||
SKINCOLOR_ROBOHOOD,
|
SKINCOLOR_ROBOHOOD,
|
||||||
|
@ -295,6 +301,7 @@ typedef enum
|
||||||
SKINCOLOR_EMERALD,
|
SKINCOLOR_EMERALD,
|
||||||
SKINCOLOR_SWAMP,
|
SKINCOLOR_SWAMP,
|
||||||
SKINCOLOR_DREAM,
|
SKINCOLOR_DREAM,
|
||||||
|
SKINCOLOR_ALGAE,
|
||||||
SKINCOLOR_AQUA,
|
SKINCOLOR_AQUA,
|
||||||
SKINCOLOR_TEAL,
|
SKINCOLOR_TEAL,
|
||||||
SKINCOLOR_CYAN,
|
SKINCOLOR_CYAN,
|
||||||
|
@ -308,8 +315,11 @@ typedef enum
|
||||||
SKINCOLOR_PERIWINKLE,
|
SKINCOLOR_PERIWINKLE,
|
||||||
SKINCOLOR_BLUE,
|
SKINCOLOR_BLUE,
|
||||||
SKINCOLOR_BLUEBERRY,
|
SKINCOLOR_BLUEBERRY,
|
||||||
|
SKINCOLOR_PASTEL,
|
||||||
SKINCOLOR_DUSK,
|
SKINCOLOR_DUSK,
|
||||||
SKINCOLOR_PURPLE,
|
SKINCOLOR_PURPLE,
|
||||||
|
SKINCOLOR_FUCHSIA,
|
||||||
|
SKINCOLOR_TOXIC,
|
||||||
SKINCOLOR_LAVENDER,
|
SKINCOLOR_LAVENDER,
|
||||||
SKINCOLOR_BYZANTIUM,
|
SKINCOLOR_BYZANTIUM,
|
||||||
SKINCOLOR_POMEGRANATE,
|
SKINCOLOR_POMEGRANATE,
|
||||||
|
@ -319,26 +329,69 @@ typedef enum
|
||||||
MAXSKINCOLORS,
|
MAXSKINCOLORS,
|
||||||
|
|
||||||
// Super special awesome Super flashing colors!
|
// Super special awesome Super flashing colors!
|
||||||
|
// Super Sonic Yellow
|
||||||
SKINCOLOR_SUPER1 = MAXSKINCOLORS,
|
SKINCOLOR_SUPER1 = MAXSKINCOLORS,
|
||||||
SKINCOLOR_SUPER2,
|
SKINCOLOR_SUPER2,
|
||||||
SKINCOLOR_SUPER3,
|
SKINCOLOR_SUPER3,
|
||||||
SKINCOLOR_SUPER4,
|
SKINCOLOR_SUPER4,
|
||||||
SKINCOLOR_SUPER5,
|
SKINCOLOR_SUPER5,
|
||||||
|
|
||||||
// Super Tails
|
// Super Tails Orange
|
||||||
SKINCOLOR_TSUPER1,
|
SKINCOLOR_TSUPER1,
|
||||||
SKINCOLOR_TSUPER2,
|
SKINCOLOR_TSUPER2,
|
||||||
SKINCOLOR_TSUPER3,
|
SKINCOLOR_TSUPER3,
|
||||||
SKINCOLOR_TSUPER4,
|
SKINCOLOR_TSUPER4,
|
||||||
SKINCOLOR_TSUPER5,
|
SKINCOLOR_TSUPER5,
|
||||||
|
|
||||||
// Super Knuckles
|
// Super Knuckles Red
|
||||||
SKINCOLOR_KSUPER1,
|
SKINCOLOR_KSUPER1,
|
||||||
SKINCOLOR_KSUPER2,
|
SKINCOLOR_KSUPER2,
|
||||||
SKINCOLOR_KSUPER3,
|
SKINCOLOR_KSUPER3,
|
||||||
SKINCOLOR_KSUPER4,
|
SKINCOLOR_KSUPER4,
|
||||||
SKINCOLOR_KSUPER5,
|
SKINCOLOR_KSUPER5,
|
||||||
|
|
||||||
|
// Hyper Sonic Pink
|
||||||
|
SKINCOLOR_PSUPER1,
|
||||||
|
SKINCOLOR_PSUPER2,
|
||||||
|
SKINCOLOR_PSUPER3,
|
||||||
|
SKINCOLOR_PSUPER4,
|
||||||
|
SKINCOLOR_PSUPER5,
|
||||||
|
|
||||||
|
// Hyper Sonic Blue
|
||||||
|
SKINCOLOR_BSUPER1,
|
||||||
|
SKINCOLOR_BSUPER2,
|
||||||
|
SKINCOLOR_BSUPER3,
|
||||||
|
SKINCOLOR_BSUPER4,
|
||||||
|
SKINCOLOR_BSUPER5,
|
||||||
|
|
||||||
|
// Hyper Sonic Green
|
||||||
|
SKINCOLOR_GSUPER1,
|
||||||
|
SKINCOLOR_GSUPER2,
|
||||||
|
SKINCOLOR_GSUPER3,
|
||||||
|
SKINCOLOR_GSUPER4,
|
||||||
|
SKINCOLOR_GSUPER5,
|
||||||
|
|
||||||
|
// Hyper Sonic White
|
||||||
|
SKINCOLOR_WSUPER1,
|
||||||
|
SKINCOLOR_WSUPER2,
|
||||||
|
SKINCOLOR_WSUPER3,
|
||||||
|
SKINCOLOR_WSUPER4,
|
||||||
|
SKINCOLOR_WSUPER5,
|
||||||
|
|
||||||
|
// Creamy Super (Shadow?)
|
||||||
|
SKINCOLOR_CSUPER1,
|
||||||
|
SKINCOLOR_CSUPER2,
|
||||||
|
SKINCOLOR_CSUPER3,
|
||||||
|
SKINCOLOR_CSUPER4,
|
||||||
|
SKINCOLOR_CSUPER5,
|
||||||
|
|
||||||
|
// Aqua Super
|
||||||
|
SKINCOLOR_ASUPER1,
|
||||||
|
SKINCOLOR_ASUPER2,
|
||||||
|
SKINCOLOR_ASUPER3,
|
||||||
|
SKINCOLOR_ASUPER4,
|
||||||
|
SKINCOLOR_ASUPER5,
|
||||||
|
|
||||||
MAXTRANSLATIONS
|
MAXTRANSLATIONS
|
||||||
} skincolors_t;
|
} skincolors_t;
|
||||||
|
|
||||||
|
|
|
@ -2056,7 +2056,7 @@ EXPORT void HWRAPI(DrawMD2) (INT32 *gl_cmd_buffer, md2_frame_t *frame, FTransfor
|
||||||
EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
|
EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
|
||||||
{
|
{
|
||||||
static boolean special_splitscreen;
|
static boolean special_splitscreen;
|
||||||
float used_fov;
|
double used_fov;
|
||||||
pglLoadIdentity();
|
pglLoadIdentity();
|
||||||
if (stransform)
|
if (stransform)
|
||||||
{
|
{
|
||||||
|
@ -2088,7 +2088,7 @@ EXPORT void HWRAPI(SetTransform) (FTransform *stransform)
|
||||||
pglLoadIdentity();
|
pglLoadIdentity();
|
||||||
if (special_splitscreen)
|
if (special_splitscreen)
|
||||||
{
|
{
|
||||||
used_fov = atan(tan(used_fov*M_PI/360)*0.8)*360/M_PI;
|
used_fov = atan(tan(used_fov*M_PIl/360)*0.8)*360/M_PIl;
|
||||||
GLPerspective(used_fov, 2*ASPECT_RATIO);
|
GLPerspective(used_fov, 2*ASPECT_RATIO);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -795,15 +795,15 @@ static void Got_Saycmd(UINT8 **p, INT32 playernum)
|
||||||
cstart = "\x85"; // V_REDMAP
|
cstart = "\x85"; // V_REDMAP
|
||||||
else if (color <= SKINCOLOR_TANGERINE)
|
else if (color <= SKINCOLOR_TANGERINE)
|
||||||
cstart = "\x87"; // V_ORANGEMAP
|
cstart = "\x87"; // V_ORANGEMAP
|
||||||
else if (color <= SKINCOLOR_CARAMEL)
|
else if (color <= SKINCOLOR_CREAM)
|
||||||
cstart = "\x8f"; // V_PEACHMAP
|
cstart = "\x8f"; // V_PEACHMAP
|
||||||
else if (color <= SKINCOLOR_BRONZE)
|
else if (color <= SKINCOLOR_COPPER)
|
||||||
cstart = "\x8A"; // V_GOLDMAP
|
cstart = "\x8A"; // V_GOLDMAP
|
||||||
else if (color <= SKINCOLOR_OLIVE)
|
else if (color <= SKINCOLOR_OLIVE)
|
||||||
cstart = "\x82"; // V_YELLOWMAP
|
cstart = "\x82"; // V_YELLOWMAP
|
||||||
else if (color <= SKINCOLOR_PISTACHIO)
|
else if (color <= SKINCOLOR_PISTACHIO)
|
||||||
cstart = "\x8b"; // V_TEAMAP
|
cstart = "\x8b"; // V_TEAMAP
|
||||||
else if (color <= SKINCOLOR_DREAM || color == SKINCOLOR_LIME)
|
else if (color <= SKINCOLOR_ALGAE || color == SKINCOLOR_LIME || color == SKINCOLOR_HANDHELD)
|
||||||
cstart = "\x83"; // V_GREENMAP
|
cstart = "\x83"; // V_GREENMAP
|
||||||
else if (color <= SKINCOLOR_NAVY || color == SKINCOLOR_SAPPHIRE)
|
else if (color <= SKINCOLOR_NAVY || color == SKINCOLOR_SAPPHIRE)
|
||||||
cstart = "\x88"; // V_SKYMAP
|
cstart = "\x88"; // V_SKYMAP
|
||||||
|
|
424
src/k_kart.c
424
src/k_kart.c
|
@ -43,187 +43,214 @@
|
||||||
// These should be within 14 characters to fit on the character select screen
|
// These should be within 14 characters to fit on the character select screen
|
||||||
const char *KartColor_Names[MAXSKINCOLORS] =
|
const char *KartColor_Names[MAXSKINCOLORS] =
|
||||||
{
|
{
|
||||||
"None", // 00 // SKINCOLOR_NONE
|
"None", // SKINCOLOR_NONE
|
||||||
"White", // 01 // SKINCOLOR_WHITE
|
"White", // SKINCOLOR_WHITE
|
||||||
"Silver", // 02 // SKINCOLOR_SILVER
|
"Silver", // SKINCOLOR_SILVER
|
||||||
"Grey", // 03 // SKINCOLOR_GREY
|
"Grey", // SKINCOLOR_GREY
|
||||||
"Nickel", // 04 // SKINCOLOR_NICKEL
|
"Nickel", // SKINCOLOR_NICKEL
|
||||||
"Black", // 05 // SKINCOLOR_BLACK
|
"Black", // SKINCOLOR_BLACK
|
||||||
"Sepia", // 06 // SKINCOLOR_SEPIA
|
"Sepia", // SKINCOLOR_SEPIA
|
||||||
"Beige", // 07 // SKINCOLOR_BEIGE
|
"Beige", // SKINCOLOR_BEIGE
|
||||||
"Brown", // 08 // SKINCOLOR_BROWN
|
"Brown", // SKINCOLOR_BROWN
|
||||||
"Leather", // 09 // SKINCOLOR_LEATHER
|
"Leather", // SKINCOLOR_LEATHER
|
||||||
"Salmon", // 10 // SKINCOLOR_SALMON
|
"Salmon", // SKINCOLOR_SALMON
|
||||||
"Pink", // 11 // SKINCOLOR_PINK
|
"Pink", // SKINCOLOR_PINK
|
||||||
"Rose", // 12 // SKINCOLOR_ROSE
|
"Rose", // SKINCOLOR_ROSE
|
||||||
"Ruby", // 13 // SKINCOLOR_RUBY
|
"Ruby", // SKINCOLOR_RUBY
|
||||||
"Raspberry", // 14 // SKINCOLOR_RASPBERRY
|
"Raspberry", // SKINCOLOR_RASPBERRY
|
||||||
"Red", // 15 // SKINCOLOR_RED
|
"Cherry", // SKINCOLOR_CHERRY
|
||||||
"Crimson", // 16 // SKINCOLOR_CRIMSON
|
"Red", // SKINCOLOR_RED
|
||||||
"Ketchup", // 17 // SKINCOLOR_KETCHUP
|
"Scarlet", // SKINCOLOR_SCARLET
|
||||||
"Dawn", // 18 // SKINCOLOR_DAWN
|
"Crimson", // SKINCOLOR_CRIMSON
|
||||||
"Creamsicle", // 19 // SKINCOLOR_CREAMSICLE
|
"Nova", // SKINCOLOR_NOVA
|
||||||
"Orange", // 20 // SKINCOLOR_ORANGE
|
"Ketchup", // SKINCOLOR_KETCHUP
|
||||||
"Pumpkin", // 21 // SKINCOLOR_PUMPKIN
|
"Dawn", // SKINCOLOR_DAWN
|
||||||
"Rosewood", // 22 // SKINCOLOR_ROSEWOOD
|
"Creamsicle", // SKINCOLOR_CREAMSICLE
|
||||||
"Burgundy", // 23 // SKINCOLOR_BURGUNDY
|
"Orange", // SKINCOLOR_ORANGE
|
||||||
"Tangerine", // 24 // SKINCOLOR_TANGERINE
|
"Pumpkin", // SKINCOLOR_PUMPKIN
|
||||||
"Peach", // 25 // SKINCOLOR_PEACH
|
"Rosewood", // SKINCOLOR_ROSEWOOD
|
||||||
"Caramel", // 26 // SKINCOLOR_CARAMEL
|
"Burgundy", // SKINCOLOR_BURGUNDY
|
||||||
"Gold", // 27 // SKINCOLOR_GOLD
|
"Tangerine", // SKINCOLOR_TANGERINE
|
||||||
"Bronze", // 28 // SKINCOLOR_BRONZE
|
"Peach", // SKINCOLOR_PEACH
|
||||||
"Yellow", // 29 // SKINCOLOR_YELLOW
|
"Caramel", // SKINCOLOR_CARAMEL
|
||||||
"Mustard", // 30 // SKINCOLOR_MUSTARD
|
"Cream", // SKINCOLOR_CREAM
|
||||||
"Olive", // 31 // SKINCOLOR_OLIVE
|
"Gold", // SKINCOLOR_GOLD
|
||||||
"Vomit", // 32 // SKINCOLOR_VOMIT
|
"Bronze", // SKINCOLOR_BRONZE
|
||||||
"Garden", // 33 // SKINCOLOR_GARDEN
|
"Copper", // SKINCOLOR_COPPER
|
||||||
"Lime", // 34 // SKINCOLOR_LIME
|
"Yellow", // SKINCOLOR_YELLOW
|
||||||
"Tea", // 35 // SKINCOLOR_TEA
|
"Mustard", // SKINCOLOR_MUSTARD
|
||||||
"Pistachio", // 36 // SKINCOLOR_PISTACHIO
|
"Olive", // SKINCOLOR_OLIVE
|
||||||
"Robo-Hood", // 37 // SKINCOLOR_ROBOHOOD
|
"Vomit", // SKINCOLOR_VOMIT
|
||||||
"Moss", // 38 // SKINCOLOR_MOSS
|
"Garden", // SKINCOLOR_GARDEN
|
||||||
"Mint", // 39 // SKINCOLOR_MINT
|
"Lime", // SKINCOLOR_LIME
|
||||||
"Green", // 40 // SKINCOLOR_GREEN
|
"Handheld", // SKINCOLOR_HANDHELD
|
||||||
"Pinetree", // 41 // SKINCOLOR_PINETREE
|
"Tea", // SKINCOLOR_TEA
|
||||||
"Emerald", // 42 // SKINCOLOR_EMERALD
|
"Pistachio", // SKINCOLOR_PISTACHIO
|
||||||
"Swamp", // 43 // SKINCOLOR_SWAMP
|
"Robo-Hood", // SKINCOLOR_ROBOHOOD
|
||||||
"Dream", // 44 // SKINCOLOR_DREAM
|
"Moss", // SKINCOLOR_MOSS
|
||||||
"Aqua", // 45 // SKINCOLOR_AQUA
|
"Mint", // SKINCOLOR_MINT
|
||||||
"Teal", // 46 // SKINCOLOR_TEAL
|
"Green", // SKINCOLOR_GREEN
|
||||||
"Cyan", // 47 // SKINCOLOR_CYAN
|
"Pinetree", // SKINCOLOR_PINETREE
|
||||||
"Jawz", // 48 // SKINCOLOR_JAWZ
|
"Emerald", // SKINCOLOR_EMERALD
|
||||||
"Cerulean", // 49 // SKINCOLOR_CERULEAN
|
"Swamp", // SKINCOLOR_SWAMP
|
||||||
"Navy", // 50 // SKINCOLOR_NAVY
|
"Dream", // SKINCOLOR_DREAM
|
||||||
"Slate", // 51 // SKINCOLOR_SLATE
|
"Algae", // SKINCOLOR_ALGAE
|
||||||
"Steel", // 52 // SKINCOLOR_STEEL
|
"Aqua", // SKINCOLOR_AQUA
|
||||||
"Jet", // 53 // SKINCOLOR_JET
|
"Teal", // SKINCOLOR_TEAL
|
||||||
"Sapphire", // 54 // SKINCOLOR_SAPPHIRE
|
"Cyan", // SKINCOLOR_CYAN
|
||||||
"Periwinkle", // 55 // SKINCOLOR_PERIWINKLE
|
"Jawz", // SKINCOLOR_JAWZ
|
||||||
"Blue", // 56 // SKINCOLOR_BLUE
|
"Cerulean", // SKINCOLOR_CERULEAN
|
||||||
"Blueberry", // 57 // SKINCOLOR_BLUEBERRY
|
"Navy", // SKINCOLOR_NAVY
|
||||||
"Dusk", // 58 // SKINCOLOR_DUSK
|
"Slate", // SKINCOLOR_SLATE
|
||||||
"Purple", // 59 // SKINCOLOR_PURPLE
|
"Steel", // SKINCOLOR_STEEL
|
||||||
"Lavender", // 60 // SKINCOLOR_LAVENDER
|
"Jet", // SKINCOLOR_JET
|
||||||
"Byzantium", // 61 // SKINCOLOR_BYZANTIUM
|
"Sapphire", // SKINCOLOR_SAPPHIRE
|
||||||
"Pomegranate", // 62 // SKINCOLOR_POMEGRANATE
|
"Periwinkle", // SKINCOLOR_PERIWINKLE
|
||||||
"Lilac" // 63 // SKINCOLOR_LILAC
|
"Blue", // SKINCOLOR_BLUE
|
||||||
|
"Blueberry", // SKINCOLOR_BLUEBERRY
|
||||||
|
"Pastel", // SKINCOLOR_PASTEL
|
||||||
|
"Dusk", // SKINCOLOR_DUSK
|
||||||
|
"Purple", // SKINCOLOR_PURPLE
|
||||||
|
"Fuchsia", // SKINCOLOR_FUCHSIA
|
||||||
|
"Toxic", // SKINCOLOR_TOXIC
|
||||||
|
"Lavender", // SKINCOLOR_LAVENDER
|
||||||
|
"Byzantium", // SKINCOLOR_BYZANTIUM
|
||||||
|
"Pomegranate", // SKINCOLOR_POMEGRANATE
|
||||||
|
"Lilac" // SKINCOLOR_LILAC
|
||||||
};
|
};
|
||||||
|
|
||||||
// Color_Opposite replacement; frame setting has not been changed from 8 for most, should be done later
|
// Color_Opposite replacement; frame setting has not been changed from 8 for most, should be done later
|
||||||
const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
|
const UINT8 KartColor_Opposite[MAXSKINCOLORS*2] =
|
||||||
{
|
{
|
||||||
SKINCOLOR_NONE,8, // 00 // SKINCOLOR_NONE
|
SKINCOLOR_NONE,8, // SKINCOLOR_NONE
|
||||||
SKINCOLOR_BLACK,8, // 01 // SKINCOLOR_WHITE
|
SKINCOLOR_BLACK,8, // SKINCOLOR_WHITE
|
||||||
SKINCOLOR_NICKEL,8, // 02 // SKINCOLOR_SILVER
|
SKINCOLOR_NICKEL,8, // SKINCOLOR_SILVER
|
||||||
SKINCOLOR_GREY,8, // 03 // SKINCOLOR_GREY
|
SKINCOLOR_GREY,8, // SKINCOLOR_GREY
|
||||||
SKINCOLOR_SILVER,8, // 04 // SKINCOLOR_NICKEL
|
SKINCOLOR_SILVER,8, // SKINCOLOR_NICKEL
|
||||||
SKINCOLOR_WHITE,8, // 05 // SKINCOLOR_BLACK
|
SKINCOLOR_WHITE,8, // SKINCOLOR_BLACK
|
||||||
SKINCOLOR_LEATHER,6, // 06 // SKINCOLOR_SEPIA
|
SKINCOLOR_LEATHER,6, // SKINCOLOR_SEPIA
|
||||||
SKINCOLOR_BROWN,2, // 07 // SKINCOLOR_BEIGE
|
SKINCOLOR_BROWN,2, // SKINCOLOR_BEIGE
|
||||||
SKINCOLOR_BEIGE,8, // 08 // SKINCOLOR_BROWN
|
SKINCOLOR_BEIGE,8, // SKINCOLOR_BROWN
|
||||||
SKINCOLOR_SEPIA,8, // 09 // SKINCOLOR_LEATHER
|
SKINCOLOR_SEPIA,8, // SKINCOLOR_LEATHER
|
||||||
SKINCOLOR_TEA,8, // 10 // SKINCOLOR_SALMON
|
SKINCOLOR_TEA,8, // SKINCOLOR_SALMON
|
||||||
SKINCOLOR_PISTACHIO,8, // 11 // SKINCOLOR_PINK
|
SKINCOLOR_PISTACHIO,8, // SKINCOLOR_PINK
|
||||||
SKINCOLOR_MOSS,8, // 12 // SKINCOLOR_ROSE
|
SKINCOLOR_MOSS,8, // SKINCOLOR_ROSE
|
||||||
SKINCOLOR_SAPPHIRE,8, // 13 // SKINCOLOR_RUBY
|
SKINCOLOR_SAPPHIRE,8, // SKINCOLOR_RUBY
|
||||||
SKINCOLOR_MINT,8, // 14 // SKINCOLOR_RASPBERRY
|
SKINCOLOR_MINT,8, // SKINCOLOR_RASPBERRY
|
||||||
SKINCOLOR_GREEN,6, // 15 // SKINCOLOR_RED
|
SKINCOLOR_HANDHELD,10, // SKINCOLOR_CHERRY
|
||||||
SKINCOLOR_PINETREE,6, // 16 // SKINCOLOR_CRIMSON
|
SKINCOLOR_GREEN,6, // SKINCOLOR_RED
|
||||||
SKINCOLOR_MUSTARD,10, // 17 // SKINCOLOR_KETCHUP
|
SKINCOLOR_PINETREE,6, // SKINCOLOR_SCARLET
|
||||||
SKINCOLOR_DUSK,8, // 18 // SKINCOLOR_DAWN
|
SKINCOLOR_TOXIC,8, // SKINCOLOR_CRIMSON
|
||||||
SKINCOLOR_PERIWINKLE,8, // 19 // SKINCOLOR_CREAMSICLE
|
SKINCOLOR_ALGAE,10, // SKINCOLOR_NOVA
|
||||||
SKINCOLOR_BLUE,8, // 20 // SKINCOLOR_ORANGE
|
SKINCOLOR_MUSTARD,10, // SKINCOLOR_KETCHUP
|
||||||
SKINCOLOR_BLUEBERRY,8, // 21 // SKINCOLOR_PUMPKIN
|
SKINCOLOR_DUSK,8, // SKINCOLOR_DAWN
|
||||||
SKINCOLOR_NAVY,6, // 22 // SKINCOLOR_ROSEWOOD
|
SKINCOLOR_PERIWINKLE,8, // SKINCOLOR_CREAMSICLE
|
||||||
SKINCOLOR_JET,8, // 23 // SKINCOLOR_BURGUNDY
|
SKINCOLOR_BLUE,8, // SKINCOLOR_ORANGE
|
||||||
SKINCOLOR_LIME,8, // 24 // SKINCOLOR_TANGERINE
|
SKINCOLOR_BLUEBERRY,8, // SKINCOLOR_PUMPKIN
|
||||||
SKINCOLOR_CYAN,8, // 25 // SKINCOLOR_PEACH
|
SKINCOLOR_NAVY,6, // SKINCOLOR_ROSEWOOD
|
||||||
SKINCOLOR_CERULEAN,8, // 26 // SKINCOLOR_CARAMEL
|
SKINCOLOR_JET,8, // SKINCOLOR_BURGUNDY
|
||||||
SKINCOLOR_SLATE,8, // 27 // SKINCOLOR_GOLD
|
SKINCOLOR_LIME,8, // SKINCOLOR_TANGERINE
|
||||||
SKINCOLOR_STEEL,8, // 28 // SKINCOLOR_BRONZE
|
SKINCOLOR_CYAN,8, // SKINCOLOR_PEACH
|
||||||
SKINCOLOR_AQUA,8, // 29 // SKINCOLOR_YELLOW
|
SKINCOLOR_CERULEAN,8, // SKINCOLOR_CARAMEL
|
||||||
SKINCOLOR_KETCHUP,8, // 30 // SKINCOLOR_MUSTARD
|
SKINCOLOR_COPPER,10, // SKINCOLOR_CREAM
|
||||||
SKINCOLOR_TEAL,8, // 31 // SKINCOLOR_OLIVE
|
SKINCOLOR_SLATE,8, // SKINCOLOR_GOLD
|
||||||
SKINCOLOR_ROBOHOOD,8, // 32 // SKINCOLOR_VOMIT
|
SKINCOLOR_STEEL,8, // SKINCOLOR_BRONZE
|
||||||
SKINCOLOR_LAVENDER,6, // 33 // SKINCOLOR_GARDEN
|
SKINCOLOR_CREAM,6, // SKINCOLOR_COPPER
|
||||||
SKINCOLOR_TANGERINE,8, // 34 // SKINCOLOR_LIME
|
SKINCOLOR_AQUA,8, // SKINCOLOR_YELLOW
|
||||||
SKINCOLOR_SALMON,8, // 35 // SKINCOLOR_TEA
|
SKINCOLOR_KETCHUP,8, // SKINCOLOR_MUSTARD
|
||||||
SKINCOLOR_PINK,6, // 36 // SKINCOLOR_PISTACHIO
|
SKINCOLOR_TEAL,8, // SKINCOLOR_OLIVE
|
||||||
SKINCOLOR_VOMIT,8, // 37 // SKINCOLOR_ROBOHOOD
|
SKINCOLOR_ROBOHOOD,8, // SKINCOLOR_VOMIT
|
||||||
SKINCOLOR_ROSE,8, // 38 // SKINCOLOR_MOSS
|
SKINCOLOR_LAVENDER,6, // SKINCOLOR_GARDEN
|
||||||
SKINCOLOR_RASPBERRY,8, // 39 // SKINCOLOR_MINT
|
SKINCOLOR_TANGERINE,8, // SKINCOLOR_LIME
|
||||||
SKINCOLOR_RED,8, // 40 // SKINCOLOR_GREEN
|
SKINCOLOR_CHERRY,8, // SKINCOLOR_HANDHELD
|
||||||
SKINCOLOR_CRIMSON,8, // 41 // SKINCOLOR_PINETREE
|
SKINCOLOR_SALMON,8, // SKINCOLOR_TEA
|
||||||
SKINCOLOR_PURPLE,8, // 42 // SKINCOLOR_EMERALD
|
SKINCOLOR_PINK,6, // SKINCOLOR_PISTACHIO
|
||||||
SKINCOLOR_BYZANTIUM,8, // 43 // SKINCOLOR_SWAMP
|
SKINCOLOR_VOMIT,8, // SKINCOLOR_ROBOHOOD
|
||||||
SKINCOLOR_POMEGRANATE,8, // 44 // SKINCOLOR_DREAM
|
SKINCOLOR_ROSE,8, // SKINCOLOR_MOSS
|
||||||
SKINCOLOR_YELLOW,8, // 45 // SKINCOLOR_AQUA
|
SKINCOLOR_RASPBERRY,8, // SKINCOLOR_MINT
|
||||||
SKINCOLOR_OLIVE,8, // 46 // SKINCOLOR_TEAL
|
SKINCOLOR_RED,8, // SKINCOLOR_GREEN
|
||||||
SKINCOLOR_PEACH,8, // 47 // SKINCOLOR_CYAN
|
SKINCOLOR_SCARLET,8, // SKINCOLOR_PINETREE
|
||||||
SKINCOLOR_LILAC,10, // 48 // SKINCOLOR_JAWZ
|
SKINCOLOR_PURPLE,8, // SKINCOLOR_EMERALD
|
||||||
SKINCOLOR_CARAMEL,8, // 49 // SKINCOLOR_CERULEAN
|
SKINCOLOR_BYZANTIUM,8, // SKINCOLOR_SWAMP
|
||||||
SKINCOLOR_ROSEWOOD,8, // 50 // SKINCOLOR_NAVY
|
SKINCOLOR_POMEGRANATE,8, // SKINCOLOR_DREAM
|
||||||
SKINCOLOR_GOLD,10, // 51 // SKINCOLOR_SLATE
|
SKINCOLOR_NOVA,10, // SKINCOLOR_ALGAE
|
||||||
SKINCOLOR_BRONZE,10, // 52 // SKINCOLOR_STEEL
|
SKINCOLOR_YELLOW,8, // SKINCOLOR_AQUA
|
||||||
SKINCOLOR_BURGUNDY,8, // 53 // SKINCOLOR_JET
|
SKINCOLOR_OLIVE,8, // SKINCOLOR_TEAL
|
||||||
SKINCOLOR_RUBY,6, // 54 // SKINCOLOR_SAPPHIRE
|
SKINCOLOR_PEACH,8, // SKINCOLOR_CYAN
|
||||||
SKINCOLOR_CREAMSICLE,8, // 55 // SKINCOLOR_PERIWINKLE
|
SKINCOLOR_LILAC,10, // SKINCOLOR_JAWZ
|
||||||
SKINCOLOR_ORANGE,8, // 56 // SKINCOLOR_BLUE
|
SKINCOLOR_CARAMEL,8, // SKINCOLOR_CERULEAN
|
||||||
SKINCOLOR_PUMPKIN,8, // 57 // SKINCOLOR_BLUEBERRY
|
SKINCOLOR_ROSEWOOD,8, // SKINCOLOR_NAVY
|
||||||
SKINCOLOR_DAWN,6, // 58 // SKINCOLOR_DUSK
|
SKINCOLOR_GOLD,10, // SKINCOLOR_SLATE
|
||||||
SKINCOLOR_EMERALD,8, // 59 // SKINCOLOR_PURPLE
|
SKINCOLOR_BRONZE,10, // SKINCOLOR_STEEL
|
||||||
SKINCOLOR_GARDEN,6, // 60 // SKINCOLOR_LAVENDER
|
SKINCOLOR_BURGUNDY,8, // SKINCOLOR_JET
|
||||||
SKINCOLOR_SWAMP,8, // 61 // SKINCOLOR_BYZANTIUM
|
SKINCOLOR_RUBY,6, // SKINCOLOR_SAPPHIRE
|
||||||
SKINCOLOR_DREAM,8, // 62 // SKINCOLOR_POMEGRANATE
|
SKINCOLOR_CREAMSICLE,8, // SKINCOLOR_PERIWINKLE
|
||||||
SKINCOLOR_JAWZ,6 // 63 // SKINCOLOR_LILAC
|
SKINCOLOR_ORANGE,8, // SKINCOLOR_BLUE
|
||||||
|
SKINCOLOR_PUMPKIN,8, // SKINCOLOR_BLUEBERRY
|
||||||
|
SKINCOLOR_FUCHSIA,11, // SKINCOLOR_PASTEL
|
||||||
|
SKINCOLOR_DAWN,6, // SKINCOLOR_DUSK
|
||||||
|
SKINCOLOR_EMERALD,8, // SKINCOLOR_PURPLE
|
||||||
|
SKINCOLOR_PASTEL,11, // SKINCOLOR_FUCHSIA
|
||||||
|
SKINCOLOR_CRIMSON,8, // SKINCOLOR_TOXIC
|
||||||
|
SKINCOLOR_GARDEN,6, // SKINCOLOR_LAVENDER
|
||||||
|
SKINCOLOR_SWAMP,8, // SKINCOLOR_BYZANTIUM
|
||||||
|
SKINCOLOR_DREAM,8, // SKINCOLOR_POMEGRANATE
|
||||||
|
SKINCOLOR_JAWZ,6 // SKINCOLOR_LILAC
|
||||||
};
|
};
|
||||||
|
|
||||||
UINT8 colortranslations[MAXSKINCOLORS][16] = {
|
UINT8 colortranslations[MAXTRANSLATIONS][16] = {
|
||||||
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // SKINCOLOR_NONE
|
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, // SKINCOLOR_NONE
|
||||||
{120, 120, 120, 120, 0, 1, 3, 4, 6, 7, 10, 14, 18, 22, 25, 28}, // SKINCOLOR_WHITE
|
{120, 120, 120, 120, 0, 2, 5, 8, 9, 11, 14, 17, 20, 22, 25, 28}, // SKINCOLOR_WHITE
|
||||||
{ 0, 1, 2, 4, 5, 7, 8, 10, 13, 15, 18, 20, 23, 25, 28, 30}, // SKINCOLOR_SILVER
|
{ 0, 1, 2, 3, 5, 7, 9, 12, 13, 15, 18, 20, 23, 25, 27, 30}, // SKINCOLOR_SILVER
|
||||||
{ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31}, // SKINCOLOR_GREY
|
{ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31}, // SKINCOLOR_GREY
|
||||||
{ 12, 14, 16, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31}, // SKINCOLOR_NICKEL
|
{ 3, 5, 8, 11, 15, 17, 19, 21, 23, 24, 25, 26, 27, 29, 30, 31}, // SKINCOLOR_NICKEL
|
||||||
{ 16, 17, 19, 21, 22, 24, 26, 27, 27, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_BLACK
|
{ 4, 7, 11, 15, 20, 22, 24, 27, 28, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_BLACK
|
||||||
{ 0, 1, 3, 5, 7, 9, 34, 36, 38, 40, 42, 44, 60, 61, 62, 63}, // SKINCOLOR_SEPIA
|
{ 0, 1, 3, 5, 7, 9, 34, 36, 38, 40, 42, 44, 60, 61, 62, 63}, // SKINCOLOR_SEPIA
|
||||||
{ 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47}, // SKINCOLOR_BEIGE
|
{120, 65, 67, 69, 32, 34, 36, 38, 40, 42, 44, 45, 46, 47, 62, 63}, // SKINCOLOR_BEIGE
|
||||||
{ 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63}, // SKINCOLOR_BROWN
|
{ 67, 70, 73, 76, 48, 49, 51, 53, 54, 56, 58, 59, 61, 63, 29, 30}, // SKINCOLOR_BROWN
|
||||||
{ 51, 52, 53, 55, 56, 57, 58, 60, 61, 63, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_LEATHER
|
{ 72, 76, 48, 51, 53, 55, 57, 59, 61, 63, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_LEATHER
|
||||||
{120, 120, 120, 121, 121, 122, 122, 123, 124, 125, 126, 128, 129, 131, 133, 135}, // SKINCOLOR_SALMON
|
{120, 120, 120, 121, 121, 122, 123, 124, 126, 127, 129, 131, 133, 135, 137, 139}, // SKINCOLOR_SALMON
|
||||||
{120, 121, 121, 122, 144, 145, 146, 147, 148, 149, 150, 151, 134, 136, 138, 140}, // SKINCOLOR_PINK
|
{120, 121, 121, 122, 144, 145, 146, 147, 148, 149, 150, 151, 134, 136, 138, 140}, // SKINCOLOR_PINK
|
||||||
{144, 145, 146, 147, 148, 149, 150, 151, 134, 135, 136, 137, 138, 139, 140, 141}, // SKINCOLOR_ROSE
|
{144, 145, 146, 147, 148, 149, 150, 151, 134, 135, 136, 137, 138, 139, 140, 141}, // SKINCOLOR_ROSE
|
||||||
{121, 122, 145, 146, 147, 149, 131, 132, 133, 134, 135, 197, 197, 198, 199, 255}, // SKINCOLOR_RUBY
|
{120, 121, 144, 145, 147, 149, 132, 133, 134, 136, 198, 198, 199, 255, 30, 31}, // SKINCOLOR_RUBY
|
||||||
{120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 133, 134, 136, 137, 139}, // SKINCOLOR_RASPBERRY
|
{120, 121, 122, 123, 124, 125, 126, 127, 128, 130, 131, 134, 136, 137, 139, 140}, // SKINCOLOR_RASPBERRY
|
||||||
{125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140}, // SKINCOLOR_RED
|
{120, 65, 67, 69, 71, 124, 125, 127, 132, 133, 135, 136, 138, 139, 140, 141}, // SKINCOLOR_CHERRY
|
||||||
{130, 131, 132, 133, 134, 136, 137, 138, 139, 139, 140, 140, 141, 141, 142, 143}, // SKINCOLOR_CRIMSON
|
{122, 123, 124, 126, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142}, // SKINCOLOR_RED
|
||||||
|
{123, 125, 128, 131, 133, 135, 136, 138, 140, 140, 141, 141, 142, 142, 143, 31}, // SKINCOLOR_SCARLET
|
||||||
|
{123, 124, 126, 128, 132, 135, 137, 63, 28, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_CRIMSON
|
||||||
|
{ 99, 113, 113, 84, 85, 87, 126, 128, 130, 196, 197, 198, 199, 240, 243, 246}, // SKINCOLOR_NOVA
|
||||||
{104, 113, 113, 85, 86, 88, 128, 129, 131, 133, 134, 136, 138, 139, 141, 143}, // SKINCOLOR_KETCHUP
|
{104, 113, 113, 85, 86, 88, 128, 129, 131, 133, 134, 136, 138, 139, 141, 143}, // SKINCOLOR_KETCHUP
|
||||||
{120, 121, 122, 123, 124, 147, 147, 148, 90, 91, 92, 93, 94, 95, 152, 154}, // SKINCOLOR_DAWN
|
{120, 121, 122, 123, 124, 147, 147, 148, 90, 91, 92, 93, 94, 95, 152, 154}, // SKINCOLOR_DAWN
|
||||||
{120, 120, 80, 80, 81, 82, 83, 83, 84, 85, 86, 88, 89, 91, 93, 95}, // SKINCOLOR_CREAMSICLE
|
{120, 120, 80, 80, 81, 82, 83, 83, 84, 85, 86, 88, 89, 91, 93, 95}, // SKINCOLOR_CREAMSICLE
|
||||||
{ 80, 81, 82, 83, 84, 85, 86, 88, 89, 91, 94, 95, 154, 156, 158, 159}, // SKINCOLOR_ORANGE
|
{ 80, 81, 82, 83, 84, 85, 86, 88, 89, 91, 94, 95, 154, 156, 158, 159}, // SKINCOLOR_ORANGE
|
||||||
{ 84, 85, 86, 87, 88, 90, 92, 93, 94, 95, 152, 153, 154, 156, 157, 159}, // SKINCOLOR_PUMPKIN
|
{ 82, 83, 84, 85, 87, 89, 90, 92, 94, 152, 153, 155, 157, 159, 141, 142}, // SKINCOLOR_PUMPKIN
|
||||||
{ 90, 91, 92, 93, 94, 152, 153, 154, 155, 156, 157, 158, 159, 139, 141, 143}, // SKINCOLOR_ROSEWOOD
|
{ 83, 85, 88, 90, 92, 94, 152, 153, 154, 156, 157, 159, 140, 141, 142, 143}, // SKINCOLOR_ROSEWOOD
|
||||||
{ 94, 95, 152, 153, 154, 156, 157, 159, 141, 141, 141, 142, 142, 143, 143, 31}, // SKINCOLOR_BURGUNDY
|
{ 84, 86, 89, 91, 152, 154, 155, 157, 158, 159, 140, 141, 142, 143, 31, 31}, // SKINCOLOR_BURGUNDY
|
||||||
{ 98, 98, 112, 112, 113, 113, 84, 85, 87, 89, 91, 93, 95, 153, 156, 159}, // SKINCOLOR_TANGERINE
|
{ 98, 98, 112, 112, 113, 113, 84, 85, 87, 89, 91, 93, 95, 153, 156, 159}, // SKINCOLOR_TANGERINE
|
||||||
{ 64, 65, 67, 68, 70, 71, 73, 74, 76, 77, 79, 48, 50, 53, 56, 59}, // SKINCOLOR_PEACH
|
{120, 80, 66, 70, 72, 76, 148, 149, 150, 151, 153, 154, 156, 61, 62, 63}, // SKINCOLOR_PEACH
|
||||||
{ 64, 66, 68, 70, 72, 74, 76, 78, 48, 50, 52, 54, 56, 58, 60, 62}, // SKINCOLOR_CARAMEL
|
{ 64, 66, 68, 70, 72, 74, 76, 78, 48, 50, 52, 54, 56, 58, 60, 62}, // SKINCOLOR_CARAMEL
|
||||||
|
{120, 120, 96, 96, 97, 82, 84, 77, 50, 54, 57, 59, 61, 63, 29, 31}, // SKINCOLOR_CREAM
|
||||||
{112, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119}, // SKINCOLOR_GOLD
|
{112, 112, 112, 113, 113, 114, 114, 115, 115, 116, 116, 117, 117, 118, 118, 119}, // SKINCOLOR_GOLD
|
||||||
{112, 113, 114, 115, 116, 117, 118, 119, 156, 157, 158, 159, 141, 141, 142, 143}, // SKINCOLOR_BRONZE
|
{112, 113, 114, 115, 116, 117, 118, 119, 156, 157, 158, 159, 141, 141, 142, 143}, // SKINCOLOR_BRONZE
|
||||||
|
{120, 99, 113, 114, 116, 117, 119, 61, 63, 28, 28, 29, 29, 30, 30, 31}, // SKINCOLOR_COPPER
|
||||||
{ 96, 97, 98, 100, 101, 102, 104, 113, 114, 115, 116, 117, 118, 119, 156, 159}, // SKINCOLOR_YELLOW
|
{ 96, 97, 98, 100, 101, 102, 104, 113, 114, 115, 116, 117, 118, 119, 156, 159}, // SKINCOLOR_YELLOW
|
||||||
{ 96, 98, 99, 112, 113, 114, 114, 106, 106, 107, 107, 108, 108, 109, 110, 111}, // SKINCOLOR_MUSTARD
|
{ 96, 98, 99, 112, 113, 114, 114, 106, 106, 107, 107, 108, 108, 109, 110, 111}, // SKINCOLOR_MUSTARD
|
||||||
{105, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 31}, // SKINCOLOR_OLIVE
|
{105, 105, 105, 106, 106, 107, 107, 108, 108, 109, 109, 110, 110, 111, 111, 31}, // SKINCOLOR_OLIVE
|
||||||
{121, 144, 145, 72, 73, 84, 114, 115, 107, 108, 109, 183, 223, 207, 30, 246}, // SKINCOLOR_VOMIT
|
{121, 144, 145, 72, 73, 84, 114, 115, 107, 108, 109, 183, 223, 207, 30, 246}, // SKINCOLOR_VOMIT
|
||||||
{ 98, 99, 112, 101, 113, 114, 106, 179, 180, 180, 181, 182, 183, 173, 174, 175}, // SKINCOLOR_GARDEN
|
{ 98, 99, 112, 101, 113, 114, 106, 179, 180, 180, 181, 182, 183, 173, 174, 175}, // SKINCOLOR_GARDEN
|
||||||
{ 96, 97, 99, 100, 102, 104, 160, 162, 164, 166, 168, 171, 223, 223, 207, 31}, // SKINCOLOR_LIME
|
{ 96, 97, 99, 100, 102, 104, 160, 162, 164, 166, 168, 171, 223, 223, 207, 31}, // SKINCOLOR_LIME
|
||||||
|
{ 98, 104, 105, 105, 106, 167, 168, 169, 170, 171, 172, 173, 174, 175, 30, 31}, // SKINCOLOR_HANDHELD
|
||||||
{120, 120, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 183}, // SKINCOLOR_TEA
|
{120, 120, 176, 176, 176, 177, 177, 178, 178, 179, 179, 180, 180, 181, 182, 183}, // SKINCOLOR_TEA
|
||||||
{120, 120, 176, 176, 177, 177, 178, 179, 165, 166, 167, 168, 169, 170, 171, 172}, // SKINCOLOR_PISTACHIO
|
{120, 120, 176, 176, 177, 177, 178, 179, 165, 166, 167, 168, 169, 170, 171, 172}, // SKINCOLOR_PISTACHIO
|
||||||
{176, 176, 177, 178, 165, 166, 167, 167, 168, 169, 182, 182, 182, 183, 183, 183}, // SKINCOLOR_ROBOHOOD
|
{120, 176, 178, 165, 167, 168, 169, 182, 182, 171, 171, 172, 173, 174, 175, 30}, // SKINCOLOR_ROBOHOOD
|
||||||
{178, 178, 178, 179, 179, 180, 181, 182, 183, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_MOSS
|
{178, 178, 178, 179, 179, 180, 181, 182, 183, 172, 172, 173, 173, 174, 174, 175}, // SKINCOLOR_MOSS
|
||||||
{120, 176, 176, 176, 177, 163, 164, 165, 167, 221, 221, 222, 223, 207, 207, 31}, // SKINCOLOR_MINT
|
{120, 176, 176, 176, 177, 163, 164, 165, 167, 221, 221, 222, 223, 207, 207, 31}, // SKINCOLOR_MINT
|
||||||
{160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175}, // SKINCOLOR_GREEN
|
{160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175}, // SKINCOLOR_GREEN
|
||||||
{160, 161, 162, 164, 165, 167, 169, 170, 171, 171, 172, 173, 174, 175, 30, 31}, // SKINCOLOR_PINETREE
|
{161, 163, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 30, 30, 31}, // SKINCOLOR_PINETREE
|
||||||
{160, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, 191, 175}, // SKINCOLOR_EMERALD
|
{160, 184, 184, 185, 185, 186, 186, 187, 187, 188, 188, 189, 189, 190, 191, 175}, // SKINCOLOR_EMERALD
|
||||||
{186, 187, 188, 188, 188, 189, 189, 190, 190, 191, 175, 175, 30, 30, 31, 31}, // SKINCOLOR_SWAMP
|
{160, 184, 185, 186, 187, 188, 189, 190, 191, 191, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_SWAMP
|
||||||
{120, 120, 80, 80, 81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM
|
{120, 120, 80, 80, 81, 177, 162, 164, 228, 228, 204, 204, 205, 205, 206, 207}, // SKINCOLOR_DREAM
|
||||||
|
{208, 209, 210, 211, 213, 220, 216, 167, 168, 188, 188, 189, 190, 191, 30, 31}, // SKINCOLOR_ALGAE
|
||||||
{120, 208, 208, 210, 212, 214, 220, 220, 220, 221, 221, 222, 222, 223, 223, 191}, // SKINCOLOR_AQUA
|
{120, 208, 208, 210, 212, 214, 220, 220, 220, 221, 221, 222, 222, 223, 223, 191}, // SKINCOLOR_AQUA
|
||||||
{210, 213, 220, 220, 220, 216, 216, 221, 221, 221, 222, 222, 223, 223, 191, 31}, // SKINCOLOR_TEAL
|
{210, 213, 220, 220, 220, 216, 216, 221, 221, 221, 222, 222, 223, 223, 191, 31}, // SKINCOLOR_TEAL
|
||||||
{120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN
|
{120, 120, 208, 208, 209, 210, 211, 212, 213, 215, 216, 217, 218, 219, 222, 223}, // SKINCOLOR_CYAN
|
||||||
|
@ -234,27 +261,65 @@ UINT8 colortranslations[MAXSKINCOLORS][16] = {
|
||||||
{120, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 207, 31}, // SKINCOLOR_STEEL
|
{120, 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, 205, 205, 206, 207, 31}, // SKINCOLOR_STEEL
|
||||||
{225, 226, 227, 228, 229, 205, 205, 206, 207, 207, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_JET
|
{225, 226, 227, 228, 229, 205, 205, 206, 207, 207, 28, 28, 29, 29, 30, 31}, // SKINCOLOR_JET
|
||||||
{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE
|
{208, 209, 211, 213, 215, 217, 229, 230, 232, 234, 236, 238, 240, 242, 244, 246}, // SKINCOLOR_SAPPHIRE
|
||||||
{120, 224, 225, 226, 226, 227, 228, 228, 229, 230, 231, 234, 235, 237, 239, 241}, // SKINCOLOR_PERIWINKLE
|
{120, 120, 224, 225, 226, 202, 227, 228, 229, 230, 231, 233, 235, 237, 239, 241}, // SKINCOLOR_PERIWINKLE
|
||||||
{224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239}, // SKINCOLOR_BLUE
|
{224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 235, 236, 238, 242, 244, 246}, // SKINCOLOR_BLUE
|
||||||
{228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 242, 243, 244, 245}, // SKINCOLOR_BLUEBERRY
|
{226, 228, 229, 230, 232, 233, 235, 237, 239, 240, 242, 244, 246, 31, 31, 31}, // SKINCOLOR_BLUEBERRY
|
||||||
{192, 192, 248, 249, 250, 251, 204, 204, 205, 205, 206, 206, 207, 29, 30, 31}, // SKINCOLOR_DUSK
|
{120, 208, 209, 210, 211, 226, 202, 249, 194, 195, 196, 197, 198, 199, 255, 30}, // SKINCOLOR_PASTEL
|
||||||
{192, 192, 192, 193, 193, 194, 194, 195, 195, 196, 196, 197, 197, 198, 198, 199}, // SKINCOLOR_PURPLE
|
{121, 145, 192, 249, 250, 251, 204, 204, 205, 205, 206, 206, 207, 29, 30, 31}, // SKINCOLOR_DUSK
|
||||||
{248, 248, 248, 249, 249, 250, 250, 251, 251, 252, 252, 253, 253, 254, 254, 255}, // SKINCOLOR_LAVENDER
|
{121, 145, 192, 192, 193, 194, 195, 196, 196, 197, 197, 198, 198, 199, 30, 31}, // SKINCOLOR_PURPLE
|
||||||
{192, 248, 249, 250, 251, 252, 253, 254, 255, 255, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_BYZANTIUM
|
{120, 122, 124, 125, 126, 150, 196, 197, 198, 198, 199, 199, 240, 242, 244, 246}, // SKINCOLOR_FUCHSIA
|
||||||
|
{120, 120, 176, 176, 177, 6, 8, 10, 249, 250, 196, 197, 198, 199, 143, 31}, // SKINCOLOR_TOXIC
|
||||||
|
{121, 145, 192, 248, 249, 250, 251, 252, 252, 253, 253, 254, 254, 255, 30, 31}, // SKINCOLOR_LAVENDER
|
||||||
|
{144, 248, 249, 250, 251, 252, 253, 254, 255, 255, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_BYZANTIUM
|
||||||
{144, 145, 146, 147, 148, 149, 150, 251, 251, 252, 252, 253, 254, 255, 29, 30}, // SKINCOLOR_POMEGRANATE
|
{144, 145, 146, 147, 148, 149, 150, 251, 251, 252, 252, 253, 254, 255, 29, 30}, // SKINCOLOR_POMEGRANATE
|
||||||
{120, 120, 120, 121, 121, 122, 122, 123, 192, 248, 249, 250, 251, 252, 253, 254}, // SKINCOLOR_LILAC
|
{120, 120, 120, 121, 121, 122, 122, 123, 192, 248, 249, 250, 251, 252, 253, 254}, // SKINCOLOR_LILAC
|
||||||
/* Removed Colours
|
// MAXSKINCOLORS
|
||||||
{120, 121, 123, 124, 126, 127, 129, 130, 132, 133, 135, 136, 138, 139, 141, 143}, // old SKINCOLOR_RUBY, removed for other colors
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 96, 100, 104, 113, 116, 119}, // SKINCOLOR_SUPER1
|
||||||
{224, 225, 226, 228, 229, 231, 232, 234, 235, 237, 238, 240, 241, 243, 244, 246}, // old SKINCOLOR_SAPPHIRE, removed for other colors
|
{120, 120, 120, 120, 120, 120, 120, 120, 96, 98, 101, 104, 113, 115, 117, 119}, // SKINCOLOR_SUPER2
|
||||||
{ 72, 73, 74, 75, 76, 77, 78, 79, 48, 49, 50, 51, 52, 53, 54, 55}, // old SKINCOLOR_CARAMEL, new Caramel was previously Shiny Caramel
|
{120, 120, 120, 120, 120, 120, 96, 98, 100, 102, 104, 113, 114, 116, 117, 119}, // SKINCOLOR_SUPER3
|
||||||
{215, 216, 217, 218, 204, 205, 206, 237, 238, 239, 240, 241, 242, 243, 244, 245}, // old SKINCOLOR_NAVY, too similar to Jet
|
{120, 120, 120, 120, 96, 97, 99, 100, 102, 104, 113, 114, 115, 116, 117, 119}, // SKINCOLOR_SUPER4
|
||||||
{ 80, 81, 83, 85, 86, 88, 90, 91, 93, 95, 152, 153, 154, 156, 157, 159}, // SKINCOLOR_AMBER, removed for other colors
|
{120, 120, 96, 120, 120, 120, 120, 120, 104, 113, 114, 115, 116, 117, 118, 119}, // SKINCOLOR_SUPER5
|
||||||
{160, 160, 160, 184, 184, 184, 185, 185, 185, 186, 187, 187, 188, 188, 189, 190}, // SKINCOLOR_JADE, removed for other colors
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 80, 82, 85, 115, 117, 119}, // SKINCOLOR_TSUPER1
|
||||||
{224, 225, 226, 212, 213, 213, 214, 215, 220, 221, 172, 222, 173, 223, 174, 175}, // SKINCOLOR_FROST, merged into Aqua
|
{120, 120, 120, 120, 120, 120, 120, 120, 80, 81, 83, 85, 115, 116, 117, 119}, // SKINCOLOR_TSUPER2
|
||||||
{ 96, 97, 99, 100, 102, 104, 105, 105, 106, 107, 107, 108, 109, 109, 110, 111}, // SKINCOLOR_CANARY, replaced with Mustard
|
{120, 120, 120, 120, 120, 120, 80, 81, 82, 83, 85, 115, 116, 117, 118, 119}, // SKINCOLOR_TSUPER3
|
||||||
{192, 193, 194, 195, 196, 197, 198, 199, 255, 255, 29, 29, 30, 30, 31, 31}, // SKINCOLOR_INDIGO, too similar to Byzantium
|
{120, 120, 120, 120, 80, 81, 82, 83, 84, 85, 115, 115, 116, 117, 118, 119}, // SKINCOLOR_TSUPER4
|
||||||
{ 1, 145, 125, 73, 83, 114, 106, 180, 187, 168, 219, 205, 236, 206, 199, 255}, // SKINCOLOR_RAINBOW, is Vomit 2.0
|
{120, 120, 80, 80, 81, 82, 83, 84, 85, 115, 115, 116, 117, 117, 118, 119}, // SKINCOLOR_TSUPER5
|
||||||
*/
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 121, 123, 125, 127, 129, 132}, // SKINCOLOR_KSUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 121, 122, 124, 125, 127, 128, 130, 132}, // SKINCOLOR_KSUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 121, 122, 123, 124, 125, 127, 128, 129, 130, 132}, // SKINCOLOR_KSUPER3
|
||||||
|
{120, 120, 120, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132}, // SKINCOLOR_KSUPER4
|
||||||
|
{120, 120, 121, 121, 122, 123, 124, 125, 126, 126, 127, 128, 129, 130, 131, 132}, // SKINCOLOR_KSUPER5
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 122, 124, 248, 251, 255}, // SKINCOLOR_PSUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 0, 121, 122, 124, 248, 250, 252, 255}, // SKINCOLOR_PSUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 0, 121, 122, 123, 124, 248, 249, 251, 253, 255}, // SKINCOLOR_PSUPER3
|
||||||
|
{120, 120, 120, 120, 0, 121, 122, 123, 124, 248, 249, 250, 251, 252, 253, 255}, // SKINCOLOR_PSUPER4
|
||||||
|
{120, 120, 0, 121, 122, 123, 124, 248, 248, 249, 250, 251, 252, 253, 254, 255}, // SKINCOLOR_PSUPER5
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 224, 225, 227, 228, 230, 232}, // SKINCOLOR_BSUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 224, 225, 226, 227, 228, 229, 230, 232}, // SKINCOLOR_BSUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 224, 224, 225, 226, 227, 228, 229, 230, 231, 232}, // SKINCOLOR_BSUPER3
|
||||||
|
{120, 120, 120, 120, 224, 224, 225, 226, 226, 227, 228, 229, 229, 230, 231, 232}, // SKINCOLOR_BSUPER4
|
||||||
|
{120, 120, 224, 224, 225, 225, 226, 227, 227, 228, 228, 229, 230, 230, 231, 232}, // SKINCOLOR_BSUPER5
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 176, 160, 163, 167, 171, 175}, // SKINCOLOR_GSUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 176, 176, 160, 163, 166, 169, 172, 175}, // SKINCOLOR_GSUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 176, 176, 160, 162, 164, 166, 168, 170, 172, 175}, // SKINCOLOR_GSUPER3
|
||||||
|
{120, 120, 120, 120, 176, 176, 176, 160, 161, 163, 165, 167, 169, 171, 173, 175}, // SKINCOLOR_GSUPER4
|
||||||
|
{120, 120, 176, 176, 176, 160, 161, 163, 164, 166, 167, 169, 170, 172, 173, 175}, // SKINCOLOR_GSUPER5
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120}, // SKINCOLOR_WSUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 4, 9}, // SKINCOLOR_WSUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 0, 2, 4, 6, 8, 11}, // SKINCOLOR_WSUPER3
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 0, 1, 3, 4, 6, 8, 9, 11, 13}, // SKINCOLOR_WSUPER4
|
||||||
|
{120, 120, 120, 120, 0, 1, 2, 4, 5, 6, 8, 9, 10, 12, 13, 15}, // SKINCOLOR_WSUPER5
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 96, 98, 99, 81, 73, 79}, // SKINCOLOR_CSUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 96, 97, 98, 81, 81, 71, 75, 79}, // SKINCOLOR_CSUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 96, 97, 98, 99, 81, 81, 70, 73, 76, 79}, // SKINCOLOR_CSUPER3
|
||||||
|
{120, 120, 120, 120, 96, 96, 97, 98, 99, 81, 81, 70, 72, 74, 76, 79}, // SKINCOLOR_CSUPER4
|
||||||
|
{120, 120, 96, 96, 97, 98, 98, 99, 81, 81, 69, 71, 73, 75, 77, 79}, // SKINCOLOR_CSUPER5
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 208, 210, 212, 215, 220, 222}, // SKINCOLOR_ASUPER1
|
||||||
|
{120, 120, 120, 120, 120, 120, 120, 120, 208, 209, 211, 213, 215, 220, 221, 223}, // SKINCOLOR_ASUPER2
|
||||||
|
{120, 120, 120, 120, 120, 120, 208, 209, 210, 211, 212, 213, 215, 220, 221, 223}, // SKINCOLOR_ASUPER3
|
||||||
|
{120, 120, 120, 120, 208, 209, 210, 211, 212, 213, 214, 215, 220, 221, 222, 223}, // SKINCOLOR_ASUPER4
|
||||||
|
{120, 120, 208, 208, 209, 210, 211, 211, 212, 213, 214, 215, 220, 221, 222, 223}, // SKINCOLOR_ASUPER5
|
||||||
|
// MAXTRANSLATIONS
|
||||||
};
|
};
|
||||||
|
|
||||||
// Define for getting accurate color brightness readings according to how the human eye sees them.
|
// Define for getting accurate color brightness readings according to how the human eye sees them.
|
||||||
|
@ -443,6 +508,7 @@ void K_RegisterKartStuff(void)
|
||||||
|
|
||||||
CV_RegisterVar(&cv_kartdebugcheckpoint);
|
CV_RegisterVar(&cv_kartdebugcheckpoint);
|
||||||
CV_RegisterVar(&cv_kartdebugnodes);
|
CV_RegisterVar(&cv_kartdebugnodes);
|
||||||
|
CV_RegisterVar(&cv_kartdebugcolorize);
|
||||||
}
|
}
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
@ -1138,10 +1204,11 @@ void K_KartBouncing(mobj_t *mobj1, mobj_t *mobj2, boolean bounce, boolean solid)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
{ // Normalize distance to the sum of the two objects' radii, since in a perfect world that would be the distance at the point of collision...
|
{ // Normalize distance to the sum of the two objects' radii, since in a perfect world that would be the distance at the point of collision...
|
||||||
fixed_t dist = P_AproxDistance(distx, disty) ?: 1;
|
fixed_t dist = P_AproxDistance(distx, disty);
|
||||||
fixed_t nx = FixedDiv(distx, dist);
|
fixed_t nx = FixedDiv(distx, dist);
|
||||||
fixed_t ny = FixedDiv(disty, dist);
|
fixed_t ny = FixedDiv(disty, dist);
|
||||||
|
|
||||||
|
dist = dist ? dist : 1;
|
||||||
distx = FixedMul(mobj1->radius+mobj2->radius, nx);
|
distx = FixedMul(mobj1->radius+mobj2->radius, nx);
|
||||||
disty = FixedMul(mobj1->radius+mobj2->radius, ny);
|
disty = FixedMul(mobj1->radius+mobj2->radius, ny);
|
||||||
|
|
||||||
|
@ -4324,7 +4391,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
player->mo->colorized = true;
|
player->mo->colorized = true;
|
||||||
player->mo->color = SKINCOLOR_CRIMSON;
|
player->mo->color = SKINCOLOR_SCARLET;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (player->kartstuff[k_invincibilitytimer]) // setting players to use the star colormap and spawning afterimages
|
else if (player->kartstuff[k_invincibilitytimer]) // setting players to use the star colormap and spawning afterimages
|
||||||
|
@ -8719,6 +8786,25 @@ void K_drawKartHUD(void)
|
||||||
for (p = 0; p < MAXPLAYERS; p++)
|
for (p = 0; p < MAXPLAYERS; p++)
|
||||||
V_DrawString(8, 64+(8*p), V_YELLOWMAP, va("%d - %d (%dl)", p, playernode[p], players[p].cmd.latency));
|
V_DrawString(8, 64+(8*p), V_YELLOWMAP, va("%d - %d (%dl)", p, playernode[p], players[p].cmd.latency));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (cv_kartdebugcolorize.value && stplyr->mo && stplyr->mo->skin)
|
||||||
|
{
|
||||||
|
INT32 x = 0, y = 0;
|
||||||
|
UINT8 c;
|
||||||
|
|
||||||
|
for (c = 1; c < MAXSKINCOLORS; c++)
|
||||||
|
{
|
||||||
|
UINT8 *cm = R_GetTranslationColormap(TC_RAINBOW, c, 0);
|
||||||
|
V_DrawFixedPatch(x<<FRACBITS, y<<FRACBITS, FRACUNIT, 0, facewantprefix[stplyr->skin], cm);
|
||||||
|
|
||||||
|
x += 30;
|
||||||
|
if (x > BASEVIDWIDTH-30)
|
||||||
|
{
|
||||||
|
x = 0;
|
||||||
|
y += 30;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
#define KART_FULLTURN 800
|
#define KART_FULLTURN 800
|
||||||
|
|
||||||
UINT8 colortranslations[MAXSKINCOLORS][16];
|
UINT8 colortranslations[MAXTRANSLATIONS][16];
|
||||||
extern const char *KartColor_Names[MAXSKINCOLORS];
|
extern const char *KartColor_Names[MAXSKINCOLORS];
|
||||||
extern const UINT8 KartColor_Opposite[MAXSKINCOLORS*2];
|
extern const UINT8 KartColor_Opposite[MAXSKINCOLORS*2];
|
||||||
void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor);
|
void K_RainbowColormap(UINT8 *dest_colormap, UINT8 skincolor);
|
||||||
|
|
|
@ -6662,7 +6662,7 @@ static void P_MovePlayer(player_t *player)
|
||||||
//CONS_Printf("leftover turn (%s): %5d or %4d%%\n",
|
//CONS_Printf("leftover turn (%s): %5d or %4d%%\n",
|
||||||
// player_names[player-players],
|
// player_names[player-players],
|
||||||
// (INT16) (cmd->angleturn - (player->mo->angle>>16)),
|
// (INT16) (cmd->angleturn - (player->mo->angle>>16)),
|
||||||
// (INT16) (cmd->angleturn - (player->mo->angle>>16)) * 100 / (angle_diff ?: 1));
|
// (INT16) (cmd->angleturn - (player->mo->angle>>16)) * 100 / (angle_diff ? angle_diff : 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1314,7 +1314,8 @@ static void R_ProjectSprite(mobj_t *thing)
|
||||||
if (max(tz, tz2) < FixedMul(MINZ, this_scale)) // non-papersprite clipping is handled earlier
|
if (max(tz, tz2) < FixedMul(MINZ, this_scale)) // non-papersprite clipping is handled earlier
|
||||||
return;
|
return;
|
||||||
|
|
||||||
scalestep = (yscale2 - yscale)/(x2 - x1) ?: 1;
|
scalestep = (yscale2 - yscale)/(x2 - x1);
|
||||||
|
scalestep = scalestep ? scalestep : 1;
|
||||||
|
|
||||||
// The following two are alternate sorting methods which might be more applicable in some circumstances. TODO - maybe enable via MF2?
|
// The following two are alternate sorting methods which might be more applicable in some circumstances. TODO - maybe enable via MF2?
|
||||||
// sortscale = max(yscale, yscale2);
|
// sortscale = max(yscale, yscale2);
|
||||||
|
|
|
@ -2974,8 +2974,8 @@ static void I_ShutdownTimer(void)
|
||||||
//
|
//
|
||||||
tic_t I_GetTime (void)
|
tic_t I_GetTime (void)
|
||||||
{
|
{
|
||||||
static Uint32 basetime = 0;
|
static Uint64 basetime = 0;
|
||||||
Uint32 ticks = SDL_GetTicks();
|
Uint64 ticks = SDL_GetTicks();
|
||||||
|
|
||||||
if (!basetime)
|
if (!basetime)
|
||||||
basetime = ticks;
|
basetime = ticks;
|
||||||
|
|
BIN
src/sdl/srb2icon.png
Normal file
BIN
src/sdl/srb2icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 3 KiB |
|
@ -186,16 +186,16 @@ FILE *W_OpenWadFile(const char **filename, boolean useerrors)
|
||||||
static inline void W_LoadDehackedLumpsPK3(UINT16 wadnum)
|
static inline void W_LoadDehackedLumpsPK3(UINT16 wadnum)
|
||||||
{
|
{
|
||||||
UINT16 posStart, posEnd;
|
UINT16 posStart, posEnd;
|
||||||
|
#ifdef HAVE_BLUA
|
||||||
posStart = W_CheckNumForFolderStartPK3("Lua/", wadnum, 0);
|
posStart = W_CheckNumForFolderStartPK3("Lua/", wadnum, 0);
|
||||||
if (posStart != INT16_MAX)
|
if (posStart != INT16_MAX)
|
||||||
{
|
{
|
||||||
posEnd = W_CheckNumForFolderEndPK3("Lua/", wadnum, posStart);
|
posEnd = W_CheckNumForFolderEndPK3("Lua/", wadnum, posStart);
|
||||||
posStart++;
|
posStart++;
|
||||||
#ifdef HAVE_BLUA
|
|
||||||
for (; posStart < posEnd; posStart++)
|
for (; posStart < posEnd; posStart++)
|
||||||
LUA_LoadLump(wadnum, posStart);
|
LUA_LoadLump(wadnum, posStart);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
posStart = W_CheckNumForFolderStartPK3("SOC/", wadnum, 0);
|
posStart = W_CheckNumForFolderStartPK3("SOC/", wadnum, 0);
|
||||||
if (posStart != INT16_MAX)
|
if (posStart != INT16_MAX)
|
||||||
{
|
{
|
||||||
|
@ -795,11 +795,11 @@ UINT16 W_InitFile(const char *filename)
|
||||||
CONS_Printf(M_GetText("Loading SOC from %s\n"), wadfile->filename);
|
CONS_Printf(M_GetText("Loading SOC from %s\n"), wadfile->filename);
|
||||||
DEH_LoadDehackedLumpPwad(numwadfiles - 1, 0);
|
DEH_LoadDehackedLumpPwad(numwadfiles - 1, 0);
|
||||||
break;
|
break;
|
||||||
case RET_LUA:
|
|
||||||
#ifdef HAVE_BLUA
|
#ifdef HAVE_BLUA
|
||||||
|
case RET_LUA:
|
||||||
LUA_LoadLump(numwadfiles - 1, 0);
|
LUA_LoadLump(numwadfiles - 1, 0);
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue