Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

merge main 2024-05-11 #2

Merged
merged 7 commits into from
May 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 48 additions & 6 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,48 @@ It should be kept in mind that some versions have a less complete changelog than

For similar reasons, and because some features are vastly more complex than others, attributions of main changes should not be taken as a shortcut for overall contribution.

## SuperTuxKart 1.5 (TBD, still unfinished)

### Networking
* Improve track-voting logic when no majority is achieved, by kimden

### General
* Make the game's window resizable in all the screens, by CodingJellyfish (previously, most UI screens did not support resizing)
* New benchmark mode, by Alayan:
- Can be run with a few clicks, allowing to easily test the performance of various settings or to compare different systems
- Robust performance metrics that better reflect the impact of varying frametimes than Average FPS and 1% Lows.
* Fix incorrect unlock information in Story Mode after a Grand Prix, by CodingJellyfish
* Make the progression of audio levels geometrical and increase default steps, allowing to set lower audio levels and better accuracy for low audio levels (especially useful for headphone users), by Alayan
* Fix drive-on sound from materials being played when the game is paused, by Alayan
* Fix a crash trying to read replays when the random starting position setting is enabled, by Alayan
* Handle track names with spaces in the replay reader, by Alayan
* Various tweaks, bugfixes and code-quality improvements

### Graphics
* Improve the accuracy of the framerate limiter, by Benau
* Add more maximum framerate options to the built-in framerate limiter, by Benau (this does not affect physics, which run at 120FPs independetly of graphical FPS)
* Add some graphical effects for legacy video drivers, by Benau
* Ensure fragment shaders use high precision, to avoid rendering issues with some drivers, by zmike
* Fix a related precision issue causing black artifacts with GL_ES, by CodingJellyfish
* Fix other shader issues that could produce black artifacts in specific situations, by CodingJellyfish
* Various improvements to the automatic computations of Level of Detail (LoD) distances, by Alayan
* Improve draw call performance in some situations, by CodingJellyfish
* Enable new higher LoD and shadows settings, by Alayan
* Integrate LoD (Geometry Detail) settings in the graphics presets, by Alayan
* Prefer displaying a lower quality LoD model over switching to a higher quality one when too close, by Alayan

### User Interface
* Add a new Display tab in the Settings, by Alayan
* Allow to rate addons with a keyboard or a controller, and notify when trying to rate an addon while not logged in, by CodingJellyfish
* Fix an issue that prevented to go up with a scrollbar using a trackpad, by CodingJellyfish
* Improve the typing bars, especially for the coal theme, by Alayan
* Greatly improve UI layout for 'tall' resolutions (greater height than width), by CodingJellyfish
* Improve font scaling, by CodingJellyfish
* Various enhancements, by Qwertychouskie and others

### Mobile
* Don't keep the rescue button active after it stops being touched, when the finger keeps touching the screen (e. g. to handle the steering wheel), by S0nter

## SuperTuxKart 1.4 (31. October 2022)
### General
* Lap trial mode, by mrkubax10
Expand Down Expand Up @@ -209,24 +251,24 @@ For similar reasons, and because some features are vastly more complex than othe
* Several changes or fixes to ensure proper behavior (input, screen-scaling, and more)

### User Interface
* Show tips for players when loading and after race ends, by dumaosen
* Better scaling of many many UI elements to large resolutions, by dumaosen and others
* Show tips for players when loading and after race ends, by CodingJellyfish
* Better scaling of many many UI elements to large resolutions, by CodingJellyfish and others
* Show country flags for servers and players in online multiplayer, by Benau
* Add a new option to change font size on the fly, by Benau and deveee
* Add icons for the available options in the race result screens, by dumaosen
* Add icons for the available options in the race result screens, by CodingJellyfish
* Make the highscore list scrollable, by deveee
* Display all the relevant info in the challenge dialog in Story Mode, by Alayan
* New challenge selection interface, by dumaosen
* New challenge selection interface, by CodingJellyfish
* Show the number of ranking points won or lost after a ranked race, by Benau
* Separate blurring visual effects from the main graphics presets, by Alayan
* Fix incorrect text resizing in the help menu, by Benau
* Make the custom random GP option more prominent in the track selection screen, by dumaosen
* Make the custom random GP option more prominent in the track selection screen, by CodingJellyfish
* Improvements to the scrollbars, by QwertyChouskie
* Allow sorting lists with the keyboard, by Benau
* Allow tooltip drawing outside of menus, by deveee
* Prevent some font scaling blur caused by non-integer offsets, by Benau
* Add a (configurable) limit to chat message frequency, by GuillaumeBft and Benau
* Allow to explicitly set the flip direction of tabs, by dumaosen
* Allow to explicitly set the flip direction of tabs, by CodingJellyfish
* Allow to download addons from the server lobby interface, by Benau
* Allow to filter installed and non-installed addons in the addons screen, by Alayan
* Many minor tweaks and bugfixes
Expand Down
42 changes: 26 additions & 16 deletions data/CREDITS
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,6 @@ Former project leader
- A lot of bugfixes and enhancements
- Windows packaging

= Marianne Gagnon (Auria) =

Developer
- Former lead programmer
- Mac OS X Packager
- Among too many things to list:
- GUI engine and user interface
- A lot of bugfixes and enhancements

= Benau =

Lead developer, modeller & animator
Expand All @@ -31,11 +22,14 @@ Lead developer, modeller & animator
- A lot of networking code
- Other graphical improvements to karts and tracks

= Dawid Gan (deveee) =
= Marianne Gagnon (Auria) =

Developer
- Android port
- General improvements and many many bugfixes
- Former lead programmer
- Mac OS X Packager
- Among too many things to list:
- GUI engine and user interface
- A lot of bugfixes and enhancements

= Jean-Manuel Clémençon (Samuncle) =

Expand All @@ -54,24 +48,37 @@ Lead developer
- AI improvements
- General improvements and bugfixes

= Dawid Gan (deveee) =

Developer
- Android port
- General improvements and many many bugfixes

= Online =
Add-ons website
- Daniel Butum (leyyin)
- Stephen Just


= Additional Programming =

Significant bug fixes & misc. contributions for 1.0 and 1.1
- Ben Krajancic
- QwertyChouskie
- Dumaosen
- Luffah
- CodingJellyfish
- Mrxx99
- Pelya
- Riso


Significant bug fixes & misc. contributions for 1.2 to 1.5
- QwertyChouskie
- CodingJellyfish
- Mary
- Luffah
- CodedOre
- Riso
- mrkubax10

= Visual art =

Tracks
Expand Down Expand Up @@ -105,6 +112,9 @@ Karts
Objects
- GeekPenguinBR, TuxKartDriver : Models from Las Dunas Stadium

Miscellaneous
- Semphris : Item respawn animations

Jymis
- Karts and icons

Expand Down Expand Up @@ -200,7 +210,7 @@ Packaging
- hiker: Windows
- Dawid Gan: Linux and Android packages

Testing for 1.0 and 1.1
Testing for 1.0 to 1.5
- Alayan
- deveee
- Wuzzy
Expand Down
43 changes: 29 additions & 14 deletions lib/bullet/src/BulletCollision/Gimpact/gim_math.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ email: projectileman@yahoo.com
-----------------------------------------------------------------------------
*/

#include <string.h>
#include "LinearMath/btScalar.h"


Expand All @@ -56,39 +57,53 @@ email: projectileman@yahoo.com
#define G_ROOT2 1.41421f
#define G_UINT_INFINITY 0xffffffff //!< A very very high value
#define G_REAL_INFINITY FLT_MAX
#define G_SIGN_BITMASK 0x80000000
#define G_SIGN_BITMASK 0x80000000
#define G_EPSILON SIMD_EPSILON



enum GIM_SCALAR_TYPES
{
G_STYPE_REAL =0,
G_STYPE_REAL2,
G_STYPE_SHORT,
G_STYPE_USHORT,
G_STYPE_INT,
G_STYPE_UINT,
G_STYPE_INT64,
G_STYPE_UINT64
G_STYPE_REAL =0,
G_STYPE_REAL2,
G_STYPE_SHORT,
G_STYPE_USHORT,
G_STYPE_INT,
G_STYPE_UINT,
G_STYPE_INT64,
G_STYPE_UINT64
};



#define G_DEGTORAD(X) ((X)*3.1415926f/180.0f)
#define G_RADTODEG(X) ((X)*180.0f/3.1415926f)

static GUINT gim_ir__(float r)
{
GUINT i;
memcpy(&i, &r, sizeof(i));
return i;
}

static GREAL gim_fr__(GUINT i)
{
float r;
memcpy(&r, &i, sizeof(r));
return r;
}

//! Integer representation of a floating-point value.
#define GIM_IR(x) ((GUINT&)(x))
#define GIM_IR(x) (gim_ir__(x))

//! Signed integer representation of a floating-point value.
#define GIM_SIR(x) ((GINT&)(x))
#define GIM_SIR(x) ((GINT)gim_ir__(x))

//! Absolute integer representation of a floating-point value
#define GIM_AIR(x) (GIM_IR(x)&0x7fffffff)
#define GIM_AIR(x) (gim_ir__(x) & 0x7fffffff)

//! Floating-point representation of an integer value.
#define GIM_FR(x) ((GREAL&)(x))
#define GIM_FR(x) (gim_fr__(x))

#define GIM_MAX(a,b) (a<b?b:a)
#define GIM_MIN(a,b) (a>b?b:a)
Expand All @@ -107,7 +122,7 @@ enum GIM_SCALAR_TYPES
///returns a clamped number
#define GIM_CLAMP(number,minval,maxval) (number<minval?minval:(number>maxval?maxval:number))

#define GIM_GREATER(x, y) btFabs(x) > (y)
#define GIM_GREATER(x, y) btFabs(x) > (y)

///Swap numbers
#define GIM_SWAP_NUMBERS(a,b){ \
Expand Down
2 changes: 2 additions & 0 deletions src/challenges/story_mode_status.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,8 @@ void StoryModeStatus::grandPrixFinished()
unlockFeature(const_cast<ChallengeStatus*>(m_current_challenge), difficulty);
} // if isActive && challenge solved

// Calculate m_points again to count the current GP.
computeActive();
RaceManager::get()->setCoinTarget(0);
} // grandPrixFinished

Expand Down
22 changes: 15 additions & 7 deletions src/modes/world.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -949,19 +949,27 @@ void World::moveKartTo(AbstractKart* kart, const btTransform &transform)
// ----------------------------------------------------------------------------
void World::updateTimeTargetSound()
{
if (RaceManager::get()->hasTimeTarget() && !RewindManager::get()->isRewinding())
if (RewindManager::get()->isRewinding())
return;

float time_left = getTime();;
if (RaceManager::get()->hasTimeTarget())
{
float time_left = getTime();
float time_target = RaceManager::get()->getTimeTarget();
// In linear mode, the internal time still counts up even when displayed down.
if (RaceManager::get()->isLinearRaceMode())
time_left = time_target - time_left;
}
else if (!RaceManager::get()->isFollowMode())
{
return; // No Time Target and no FTL
}

if (time_left <= 5 && getTimeTicks() % stk_config->time2Ticks(1.0f) == 0 &&
!World::getWorld()->isRaceOver() && time_left > 0)
{
SFXManager::get()->quickSound("pre_start_race");
}
if (time_left <= (RaceManager::get()->isFollowMode() ? 3 : 5) &&
getTimeTicks() % stk_config->time2Ticks(1.0f) == 0 &&
!World::getWorld()->isRaceOver() && time_left > 0)
{
SFXManager::get()->quickSound("pre_start_race");
}
} // updateTimeTargetSound

Expand Down
11 changes: 8 additions & 3 deletions src/states_screens/options/options_screen_display.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
// Manages includes common to all or most options screens
#include "states_screens/options/options_common.hpp"

#include "graphics/camera.hpp"
#include "graphics/irr_driver.hpp"
#include "modes/world.hpp"

#ifndef SERVER_ONLY
#include <ge_main.hpp>
Expand Down Expand Up @@ -126,9 +128,7 @@ void OptionsScreenDisplay::init()
// ---- splitscreen mode
GUIEngine::SpinnerWidget* splitscreen_method = getWidget<GUIEngine::SpinnerWidget>("splitscreen_method");
assert( splitscreen_method != NULL );
if (UserConfigParams::split_screen_horizontally) splitscreen_method->setValue(1);
else splitscreen_method->setValue(0);
splitscreen_method->setActive(!in_game);
splitscreen_method->setValue(UserConfigParams::split_screen_horizontally ? 1 : 0);
} // init

// --------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -407,6 +407,11 @@ void OptionsScreenDisplay::eventCallback(Widget* widget, const std::string& name
GUIEngine::SpinnerWidget* splitscreen_method = getWidget<GUIEngine::SpinnerWidget>("splitscreen_method");
assert( splitscreen_method != NULL );
UserConfigParams::split_screen_horizontally = (splitscreen_method->getValue() == 1);
if (World::getWorld())
{
for (unsigned i = 0; i < Camera::getNumCameras(); i++)
Camera::getCamera(i)->setupCamera();
}
}
} // eventCallback

Expand Down
9 changes: 8 additions & 1 deletion src/states_screens/race_gui.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,7 @@ void RaceGUI::drawGlobalTimer()

sw = core::stringw (StringUtils::timeToString(elapsed_time).c_str() );

// Use colors to draw player attention to countdowns in challenges and FTL
if (RaceManager::get()->hasTimeTarget())
{
// This assumes only challenges have a time target
Expand All @@ -455,6 +456,13 @@ void RaceGUI::drawGlobalTimer()
else if (elapsed_time <= 15)
time_color = video::SColor(255,255,255,0);
}
else if(RaceManager::get()->isFollowMode())
{
if (elapsed_time <= 3)
time_color = video::SColor(255,255,160,0);
else if (elapsed_time <= 8)
time_color = video::SColor(255,255,255,0);
}

core::rect<s32> pos(irr_driver->getActualScreenSize().Width - dist_from_right,
irr_driver->getActualScreenSize().Height*2/100,
Expand Down Expand Up @@ -1385,4 +1393,3 @@ void RaceGUI::drawLap(const AbstractKart* kart,
font->setScale(1.0f);
#endif
} // drawLap

Loading
Loading