osu-ds/source/HitObjects/HitObject.h
KonPet 183228e28e Change stuff to make it build
Removed the arm7 section
Changed the makefile to only use the arm9 stuff
Epicpkmn: Fix source/Graphics/GraphicsManager.cpp

Co-Authored-By: Pk11 <epicpkmn11@outlook.com>
Co-Authored-By: Kaisaan <34224128+Kaisaan@users.noreply.github.com>
2021-10-21 00:03:39 +02:00

83 lines
1.8 KiB
C++

#include <nds.h>
#include <stdio.h>
#include "Beatmaps/BeatmapElements.h"
#include "Beatmaps/DifficultyManager.h"
#include "GameplayElements/ScoreManager.h"
#include "Graphics/pSprite.h"
#include "Graphics/pAnimation.h"
#include "Graphics/GfxInfo.h"
#include "Graphics/SpriteContainer.h"
#include "Helpers/AudioManager.h"
#include "System/ICallback.h"
#ifndef __HITOBJECT_H__
#define __HITOBJECT_H__
typedef struct {
s32 x, y;
s32 angle;
} HitObjectPoint;
typedef enum {
HIT_NORMAL = 1,
HIT_SLIDER = 2,
HIT_COMBO = 4,
HIT_SPINNER = 8
} HitObjectType;
typedef void (*HitHandler)(ScoreType score, bool forceNoCombo, bool forceNoAnimation, HitObjectPoint point);
class HitObject : public SpriteContainer
{
public:
virtual ~HitObject();
virtual bool InBounds(s32 x, s32 y) { return true; }
bool GetHit() { return mHit; }
s32 GetEndTime() { return mEndTime; }
virtual void Update() {}
virtual void OnTouchDown(const touchPosition& touch) {}
virtual void OnTouch(const touchPosition& touch) {}
virtual void OnTouchUp(const touchPosition& touch) {}
virtual void Hit();
void SetPostCreateOptions(bool comboend, s32 nextx, s32 nexty);
static void SetScoreCallback(ICallback* scoreCallback);
protected:
HitObject(s32 x, s32 y, s32 time, HitObjectType type, HitObjectSound sound);
s32 mX, mY;
s32 mTime, mEndTime;
HitObjectType mType;
HitObjectSound mSound;
static rgb mColour;
bool mHit;
bool mComboEnd;
u32 mScoreSpriteId;
void IncreaseScore(ScoreType score, bool forceNoCombo = false, bool forceNoAnimation = false);
void IncreaseScore(ScoreType score, bool forceNoCombo, bool forceNoAnimation, u32 spriteId);
private:
float mScoreDeltaZ;
static float sScoreDeltaZ;
static float sSliderDeltaZ;
static s32 sLastSliderTime;
static ICallback* mScoreCallback;
};
#endif