1
0
Fork 0
mirror of https://github.com/AquariaOSE/Aquaria.git synced 2025-02-13 16:16:08 +00:00

Forms decoupling #3.

Added Lua functions:
+ setSeeMapMode()
This commit is contained in:
fgenesis 2013-04-27 01:12:50 +02:00
parent ec7dd94a1c
commit a52b26c782
4 changed files with 33 additions and 7 deletions

View file

@ -4125,6 +4125,8 @@ Avatar::Avatar() : Entity(), ActionMapper()
_collisionAvoidMod = COLLIDE_MOD_NORMAL; _collisionAvoidMod = COLLIDE_MOD_NORMAL;
_collisionAvoidRange = COLLIDE_RANGE_NORMAL; _collisionAvoidRange = COLLIDE_RANGE_NORMAL;
_seeMapMode = SEE_MAP_DEFAULT;
} }
void Avatar::revert() void Avatar::revert()
@ -4884,10 +4886,6 @@ void Avatar::clampVelocity()
} }
} }
if (!inCurrent || (inCurrent && withCurrent)) if (!inCurrent || (inCurrent && withCurrent))
{ {
if (dsq->continuity.form == FORM_FISH) if (dsq->continuity.form == FORM_FISH)

View file

@ -66,6 +66,13 @@ enum AvatarAnimLayers
ANIMLAYER_MAX ANIMLAYER_MAX
}; };
enum SeeMapMode
{
SEE_MAP_NEVER = 0,
SEE_MAP_DEFAULT = 1,
SEE_MAP_ALWAYS = 2,
}
class SongIconParticle : public Quad class SongIconParticle : public Quad
{ {
public: public:
@ -334,6 +341,9 @@ public:
void setCollisionAvoidanceData(int range, float mod); void setCollisionAvoidanceData(int range, float mod);
void setSeeMapMode(SeeMapMode mode) { _seeMapMode = mode; }
SeeMapMode getSeeMapMode() const { return _seeMapMode; }
int leaches; int leaches;
protected: protected:
@ -471,6 +481,7 @@ protected:
bool _canLockToWall; bool _canLockToWall;
bool _canSwimAgainstCurrents; bool _canSwimAgainstCurrents;
bool _canCollideWithShots; bool _canCollideWithShots;
SeeMapMode _seeMapMode;
int _collisionAvoidRange; int _collisionAvoidRange;
float _collisionAvoidMod; float _collisionAvoidMod;

View file

@ -258,11 +258,18 @@ void MiniMapRender::onUpdate(float dt)
if (dsq->darkLayer.isUsed() && dsq->game->avatar) if (dsq->darkLayer.isUsed() && dsq->game->avatar)
{ {
if (dsq->continuity.form != FORM_SUN && dsq->game->avatar->isInDarkness()) const SeeMapMode mapmode = dsq->game->avatar->getSeeMapMode();
if(mapmode == SEE_MAP_ALWAYS)
radarHide = false;
else if(mapmode == SEE_MAP_NEVER)
radarHide = true;
else if (dsq->continuity.form != FORM_SUN && dsq->game->avatar->isInDarkness())
{ {
radarHide = true; radarHide = true;
} }
else
if(!radarHide)
{ {
for (Path *p = dsq->game->getFirstPathOfType(PATH_RADARHIDE); p; p = p->nextOfType) for (Path *p = dsq->game->getFirstPathOfType(PATH_RADARHIDE); p; p = p->nextOfType)
{ {
@ -273,6 +280,7 @@ void MiniMapRender::onUpdate(float dt)
} }
} }
} }
float t = dt*2; float t = dt*2;
if (radarHide) if (radarHide)
{ {

View file

@ -2725,6 +2725,12 @@ luaFunc(setCanActivate)
luaReturnNil(); luaReturnNil();
} }
luaFunc(setSeeMapMode)
{
dsq->game->avatar->setSeeMapMode((SeeMapMode)lua_tointeger(L, 1));
luaReturnNil();
}
luaFunc(avatar_setCanBurst) luaFunc(avatar_setCanBurst)
{ {
dsq->game->avatar->setCanBurst(getBool(L, 1)); dsq->game->avatar->setCanBurst(getBool(L, 1));
@ -2775,7 +2781,6 @@ luaFunc(avatar_setCollisionAvoidanceData)
luaReturnNil(); luaReturnNil();
} }
luaFunc(avatar_toggleCape) luaFunc(avatar_toggleCape)
{ {
dsq->game->avatar->toggleCape(getBool(L,1)); dsq->game->avatar->toggleCape(getBool(L,1));
@ -9241,6 +9246,10 @@ static const struct {
luaConstant(OT_INVISIBLEIN), luaConstant(OT_INVISIBLEIN),
luaConstant(OT_HURT), luaConstant(OT_HURT),
luaConstant(OT_INVISIBLEENT), luaConstant(OT_INVISIBLEENT),
luaConstant(SEE_MAP_NEVER),
luaConstant(SEE_MAP_DEFAULT),
luaConstant(SEE_MAP_ALWAYS),
}; };
//============================================================================================ //============================================================================================