Endless Hook Tile for ingameplay by Floff aka LemonFace

This commit is contained in:
GreYFoXGTi 2011-01-17 00:13:21 +02:00
parent 8860202172
commit 9c66a2d54c
9 changed files with 20 additions and 3 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 223 KiB

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 217 KiB

After

Width:  |  Height:  |  Size: 230 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 248 KiB

After

Width:  |  Height:  |  Size: 267 KiB

View file

@ -119,7 +119,7 @@ void CCollision::Init(class CLayers *pLayers)
}
// DDRace tiles
if(Index == TILE_THROUGH || (Index >= TILE_FREEZE && Index <= TILE_UNFREEZE) || (Index >= TILE_SWITCHOPEN && Index<=TILE_BOOST) || (Index >= TILE_BEGIN && Index <= TILE_STOPA) || Index == TILE_CP || Index == TILE_CP_F || (Index >= TILE_OLDLASER && Index <= TILE_NPH))
if(Index == TILE_THROUGH || (Index >= TILE_FREEZE && Index <= TILE_UNFREEZE) || (Index >= TILE_SWITCHOPEN && Index<=TILE_BOOST) || (Index >= TILE_BEGIN && Index <= TILE_STOPA) || Index == TILE_CP || Index == TILE_CP_F || (Index >= TILE_OLDLASER && Index <= TILE_NPH) || (Index >= TILE_EHOOK_START && Index <= TILE_EHOOK_END))
m_pFront[i].m_Index = Index;
}
}
@ -145,7 +145,7 @@ void CCollision::Init(class CLayers *pLayers)
}
// DDRace tiles
if(Index == TILE_THROUGH || (Index >= TILE_FREEZE && Index <= TILE_UNFREEZE) || (Index >= TILE_SWITCHOPEN && Index<=TILE_BOOST) || (Index >= TILE_BEGIN && Index <= TILE_STOPA) || Index == TILE_CP || Index == TILE_CP_F || (Index >= TILE_OLDLASER && Index <= TILE_NPH))
if(Index == TILE_THROUGH || (Index >= TILE_FREEZE && Index <= TILE_UNFREEZE) || (Index >= TILE_SWITCHOPEN && Index<=TILE_BOOST) || (Index >= TILE_BEGIN && Index <= TILE_STOPA) || Index == TILE_CP || Index == TILE_CP_F || (Index >= TILE_OLDLASER && Index <= TILE_NPH) || (Index >= TILE_EHOOK_START && Index <= TILE_EHOOK_END))
m_pTiles[i].m_Index = Index;
}
}

View file

@ -90,6 +90,8 @@ enum
TILE_FREEZE = 9,
TILE_TELEINEVIL,
TILE_UNFREEZE,
TILE_EHOOK_START = 17,
TILE_EHOOK_END,
//Switches
TILE_SWITCHTIMEDOPEN = 22,
TILE_SWITCHTIMEDCLOSE,

View file

@ -776,7 +776,7 @@ void CCharacter::Tick()
}
m_DoSplash = false;
if (g_Config.m_SvEndlessDrag)
if (g_Config.m_SvEndlessDrag || m_EndlessHook)
m_Core.m_HookTick = 0;
if (m_Super && m_Core.m_Jumped > 1)
m_Core.m_Jumped = 1;
@ -1005,6 +1005,16 @@ void CCharacter::HandleTiles(int Index)
{
UnFreeze();
}
else if(((m_TileIndex == TILE_EHOOK_START) || (m_TileFIndex == TILE_EHOOK_START)) && !m_EndlessHook)
{
GameServer()->SendChatTarget(GetPlayer()->GetCID(),"Endless hook has been activated");
m_EndlessHook = true;
}
else if(((m_TileIndex == TILE_EHOOK_END) || (m_TileFIndex == TILE_EHOOK_END)) && m_EndlessHook)
{
GameServer()->SendChatTarget(GetPlayer()->GetCID(),"Endless hook has been deactivated");
m_EndlessHook = false;
}
if(((m_TileIndex == TILE_STOP && m_TileFlags == ROTATION_270) || (m_TileIndexL == TILE_STOP && m_TileFlagsL == ROTATION_270) || (m_TileIndexL == TILE_STOPS && (m_TileFlagsL == ROTATION_90 || m_TileFlagsL ==ROTATION_270)) || (m_TileIndexL == TILE_STOPA) || (m_TileFIndex == TILE_STOP && m_TileFFlags == ROTATION_270) || (m_TileFIndexL == TILE_STOP && m_TileFFlagsL == ROTATION_270) || (m_TileFIndexL == TILE_STOPS && (m_TileFFlagsL == ROTATION_90 || m_TileFFlagsL == ROTATION_270)) || (m_TileFIndexL == TILE_STOPA) || (m_TileSIndex == TILE_STOP && m_TileSFlags == ROTATION_270) || (m_TileSIndexL == TILE_STOP && m_TileSFlagsL == ROTATION_270) || (m_TileSIndexL == TILE_STOPS && (m_TileSFlagsL == ROTATION_90 || m_TileSFlagsL == ROTATION_270)) || (m_TileSIndexL == TILE_STOPA)) && m_Core.m_Vel.x > 0)
{
if((int)GameServer()->Collision()->GetPos(MapIndexL).x)

View file

@ -122,6 +122,8 @@ public:
//DDRace
int m_FreezeTime;
int m_FreezeTick;
bool m_EndlessHook;
int m_Doored;

View file

@ -285,6 +285,7 @@ void CPlayer::LoadCharacter()
Character->m_LastWeapon = m_PauseInfo.m_LastWeapon;
Character->m_HammerType = m_PauseInfo.m_HammerType;
Character->m_Super = m_PauseInfo.m_Super;
Character->m_EndlessHook = m_PauseInfo.m_EndlessHook;
CGameControllerDDRace* Controller = (CGameControllerDDRace*)GameServer()->m_pController;
Controller->m_Teams.m_Core.Team(GetCID(), m_PauseInfo.m_Team);
m_PauseInfo.m_Respawn = false;
@ -315,6 +316,7 @@ void CPlayer::SaveCharacter()
m_PauseInfo.m_LastWeapon = Character->m_LastWeapon;
m_PauseInfo.m_HammerType = Character->m_HammerType;
m_PauseInfo.m_Super = Character->m_Super;
m_PauseInfo.m_EndlessHook = Character->m_EndlessHook;
CGameControllerDDRace* Controller = (CGameControllerDDRace*)GameServer()->m_pController;
m_PauseInfo.m_Team = Controller->m_Teams.m_Core.Team(GetCID());
m_PauseInfo.m_PauseTime = Server()->Tick();

View file

@ -57,6 +57,7 @@ public:
bool m_aHasWeapon[NUM_WEAPONS];
int m_HammerType;
bool m_Super;
bool m_EndlessHook;
int m_PauseTime;
int m_Team;
} m_PauseInfo;