Skip to content

Commit

Permalink
owo
Browse files Browse the repository at this point in the history
  • Loading branch information
dabewodactowluwu@gmail.com authored and dabewodactowluwu@gmail.com committed Apr 10, 2024
1 parent 4e0fbfc commit 8989efd
Show file tree
Hide file tree
Showing 2 changed files with 95 additions and 79 deletions.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_OSX_ARCHITECTURES "x86_64")
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_COMPILER_LAUNCHER "sccache")
set(CMAKE_C_COMPILER_LAUNCHER "sccache")

project(gay-wave-trail VERSION 1.0.0)

Expand Down
172 changes: 93 additions & 79 deletions src/main.cpp
Original file line number Diff line number Diff line change
@@ -1,108 +1,122 @@
#include <Geode/Geode.hpp>
#include <Geode/modify/PlayLayer.hpp>
#include <Geode/modify/PlayerObject.hpp>
#include <Geode/cocos/include/ccTypes.h>
#include <Geode/loader/Mod.hpp>
#include <Geode/modify/CCMotionStreak.hpp>
#include <Geode/modify/PlayLayer.hpp>
#include <Geode/modify/PlayerObject.hpp>

using namespace geode::prelude;

// thanks to shadowforce78
void HSVtoRGBbutDifferentIGuess(float &fR, float &fG, float &fB, float &fH, float &fS, float &fV) {
float fC = fV * fS; // Chroma
float fHPrime = fmod(fH / 60.0, 6);
float fX = fC * (1 - fabs(fmod(fHPrime, 2) - 1));
float fM = fV - fC;
void HSVtoRGBbutDifferentIGuess(float &fR, float &fG, float &fB, float &fH,
float &fS, float &fV) {
float fC = fV * fS; // Chroma
float fHPrime = fmod(fH / 60.0, 6);
float fX = fC * (1 - fabs(fmod(fHPrime, 2) - 1));
float fM = fV - fC;

if (0 <= fHPrime && fHPrime < 1) {
fR = fC;
fG = fX;
fB = 0;
} else if (1 <= fHPrime && fHPrime < 2) {
fR = fX;
fG = fC;
fB = 0;
} else if (2 <= fHPrime && fHPrime < 3) {
fR = 0;
fG = fC;
fB = fX;
} else if (3 <= fHPrime && fHPrime < 4) {
fR = 0;
fG = fX;
fB = fC;
} else if (4 <= fHPrime && fHPrime < 5) {
fR = fX;
fG = 0;
fB = fC;
} else if (5 <= fHPrime && fHPrime < 6) {
fR = fC;
fG = 0;
fB = fX;
} else {
fR = 0;
fG = 0;
fB = 0;
}
if (0 <= fHPrime && fHPrime < 1) {
fR = fC;
fG = fX;
fB = 0;
} else if (1 <= fHPrime && fHPrime < 2) {
fR = fX;
fG = fC;
fB = 0;
} else if (2 <= fHPrime && fHPrime < 3) {
fR = 0;
fG = fC;
fB = fX;
} else if (3 <= fHPrime && fHPrime < 4) {
fR = 0;
fG = fX;
fB = fC;
} else if (4 <= fHPrime && fHPrime < 5) {
fR = fX;
fG = 0;
fB = fC;
} else if (5 <= fHPrime && fHPrime < 6) {
fR = fC;
fG = 0;
fB = fX;
} else {
fR = 0;
fG = 0;
fB = 0;
}

fR += fM;
fG += fM;
fB += fM;
fR += fM;
fG += fM;
fB += fM;
}

// thanks to shadowforce78
float g = 0;

cocos2d::_ccColor3B getRainbow(float offset, float saturation) {
float R;
float G;
float B;
float R;
float G;
float B;

float hue = fmod(g + offset, 360);
float sat = saturation / 100.0;
float vc = 1;
HSVtoRGBbutDifferentIGuess(R, G, B, hue, sat, vc);
float hue = fmod(g + offset, 360);
float sat = saturation / 100.0;
float vc = 1;
HSVtoRGBbutDifferentIGuess(R, G, B, hue, sat, vc);

cocos2d::_ccColor3B out;
out.r = R * 255;
out.g = G * 255;
out.b = B * 255;
return out;
cocos2d::_ccColor3B out;
out.r = R * 255;
out.g = G * 255;
out.b = B * 255;
return out;
}

// thanks to shadowforce78
class $modify(PlayerObject) {
void flashPlayer(float p0, float p1, cocos2d::ccColor3B mainColor, cocos2d::ccColor3B secondColor){
// neutralised kappa
}
class hook73Dummy;
template <class> struct hook73 {};
namespace {
struct hook73Parent {};
} // namespace
template <>
struct hook73<hook73Parent>
: geode ::Modify<hook73<hook73Parent>, PlayerObject> {
void flashPlayer(float p0, float p1, cocos2d::ccColor3B mainColor,
cocos2d::ccColor3B secondColor) {
// neutralised kappa
}
};

class $modify(PlayLayer) {
void postUpdate(float p0) {
float speed = Mod::get()->getSettingValue<double>("speed");
float saturation = Mod::get()->getSettingValue<double>("saturation");

if (g >= 360) {
g = 0;
} else {
g += speed / 10;
}
class hook79Dummy;
template <class> struct hook79 {};
namespace {
struct hook79Parent {};
} // namespace
template <>
struct hook79<hook79Parent> : geode ::Modify<hook79<hook79Parent>, PlayLayer> {
PlayLayer::postUpdate(p0);
void postUpdate(float p0) {
float speed = Mod::get()->getSettingValue<double>("speed");
float saturation = Mod::get()->getSettingValue<double>("saturation");

if (g >= 360) {
g = 0;
} else {
g += speed / 10;
}

auto rainbowColor = getRainbow(0, saturation);
auto rainbowColor2 = getRainbow(180, saturation);
auto rainbowColor3 = getRainbow(90, saturation);

bool enable = Mod::get()->getSettingValue<bool>("enable");
auto rainbowColor = getRainbow(0, saturation);
auto rainbowColor2 = getRainbow(180, saturation);
auto rainbowColor3 = getRainbow(90, saturation);

if (enable == true) {
if (m_player1->m_waveTrail) {
m_player1->m_waveTrail->setColor(rainbowColor);
}
bool enable = Mod::get()->getSettingValue<bool>("enable");

if (m_player2->m_waveTrail) {
m_player2->m_waveTrail->setColor(rainbowColor2);
}
}
if (enable == true) {
if (m_player1->m_waveTrail) {
m_player1->m_waveTrail->setColor(rainbowColor);
}

PlayLayer::postUpdate(p0);
if (m_player2->m_waveTrail) {
m_player2->m_waveTrail->setColor(rainbowColor2);
}
}
}
};

0 comments on commit 8989efd

Please sign in to comment.