TombEngine/TR5Main/Objects/TR5/Object/tr5_pushableblock.h
Raildex b422cafc79 Merge branch 'master' into item_data
# Conflicts:
#	TR5Main/Game/Lara/lara.cpp
#	TR5Main/Game/Lara/lara_collide.cpp
#	TR5Main/Game/Lara/lara_monkey.cpp
#	TR5Main/Game/Lara/lara_struct.h
#	TR5Main/Game/Lara/lara_tests.cpp
#	TR5Main/Game/collide.h
#	TR5Main/Game/control.h
#	TR5Main/Game/effect.h
#	TR5Main/Game/effect2.cpp
#	TR5Main/Game/flipeffect.cpp
#	TR5Main/Game/floordata.h
#	TR5Main/Game/hair.cpp
#	TR5Main/Game/health.cpp
#	TR5Main/Game/items.cpp
#	TR5Main/Game/newinv2.cpp
#	TR5Main/Game/spotcam.cpp
#	TR5Main/Objects/Effects/tr4_bubbles.cpp
#	TR5Main/Objects/TR1/Entity/tr1_ape.cpp
#	TR5Main/Objects/TR1/Entity/tr1_bigrat.cpp
#	TR5Main/Objects/TR1/Entity/tr1_doppelganger.cpp
#	TR5Main/Objects/TR2/Entity/tr2_birdmonster.cpp
#	TR5Main/Objects/TR2/Entity/tr2_shark.cpp
#	TR5Main/Objects/TR2/Entity/tr2_spider.cpp
#	TR5Main/Objects/TR2/Entity/tr2_yeti.cpp
#	TR5Main/Objects/TR3/Entity/tr3_fishemitter.cpp
#	TR5Main/Objects/TR3/Entity/tr3_flamethrower.cpp
#	TR5Main/Objects/TR3/Entity/tr3_monkey.cpp
#	TR5Main/Objects/TR3/Entity/tr3_raptor.cpp
#	TR5Main/Objects/TR3/Entity/tr3_scuba.cpp
#	TR5Main/Objects/TR3/Entity/tr3_trex.cpp
#	TR5Main/Objects/TR3/Vehicles/kayak.cpp
#	TR5Main/Objects/TR3/Vehicles/minecart.cpp
#	TR5Main/Objects/TR4/Entity/tr4_bat.cpp
#	TR5Main/Objects/TR4/Entity/tr4_big_beetle.cpp
#	TR5Main/Objects/TR4/Entity/tr4_bigscorpion.cpp
#	TR5Main/Objects/TR4/Entity/tr4_demigod.cpp
#	TR5Main/Objects/TR4/Entity/tr4_dog.cpp
#	TR5Main/Objects/TR4/Entity/tr4_hammerhead.cpp
#	TR5Main/Objects/TR4/Entity/tr4_harpy.cpp
#	TR5Main/Objects/TR4/Entity/tr4_mutant.cpp
#	TR5Main/Objects/TR4/Entity/tr4_smallscorpion.cpp
#	TR5Main/Objects/TR4/Entity/tr4_troops.cpp
#	TR5Main/Objects/TR4/Entity/tr4_wildboar.cpp
#	TR5Main/Objects/TR4/Trap/tr4_joby_spikes.cpp
#	TR5Main/Objects/TR4/Vehicles/motorbike.cpp
#	TR5Main/Objects/TR5/Entity/tr5_doberman.cpp
#	TR5Main/Objects/TR5/Entity/tr5_imp.cpp
#	TR5Main/Objects/TR5/Entity/tr5_larson.cpp
#	TR5Main/Objects/TR5/Entity/tr5_lion.cpp
#	TR5Main/Objects/TR5/Entity/tr5_reaper.cpp
#	TR5Main/Objects/TR5/Object/tr5_pushableblock.cpp
#	TR5Main/Objects/TR5/Object/tr5_rollingball.cpp
#	TR5Main/Objects/TR5/Trap/tr5_fallingceiling.cpp
#	TR5Main/Renderer/Renderer11Draw2D.cpp
#	TR5Main/Specific/input.cpp
#	TR5Main/Specific/level.cpp
#	TR5Main/TombEngine.vcxproj.filters
2021-08-31 18:20:23 +02:00

27 lines
1.1 KiB
C++

#pragma once
struct ITEM_INFO;
struct COLL_INFO;
void ClearMovableBlockSplitters(int x, int y, int z, short roomNumber);
void InitialisePushableBlock(short itemNum);
void PushableBlockControl(short itemNumber);
void PushableBlockCollision(short itemNum, ITEM_INFO* laraitem, COLL_INFO* coll);
int TestBlockMovable(ITEM_INFO* item, int blokhite);
int TestBlockPush(ITEM_INFO* item, int blockhite, unsigned short quadrant);
int TestBlockPull(ITEM_INFO* item, int blockhite, short quadrant);
void MoveStackXZ(short itemNum);
void MoveStackY(short itemNum, int y);
void RemoveBridgeStack(short itemNum);
void AddBridgeStack(short itemNum);
void RemoveFromStack(short itemNum);
int FindStack(short itemNum);
int GetStackHeight(ITEM_INFO* item);
bool CheckStackLimit(ITEM_INFO* item);
void PushLoop(ITEM_INFO* item);
void PushEnd(ITEM_INFO* item);
std::optional<int> PushableBlockFloor(short itemNumber, int x, int y, int z);
std::optional<int> PushableBlockCeiling(short itemNumber, int x, int y, int z);
int PushableBlockFloorBorder(short itemNumber);
int PushableBlockCeilingBorder(short itemNumber);