TOKSIM_SetCInfoBank(CInfoBank) |
Parameters: CInfoBank = Handle of the blitz bank where collision data is stored. |
Return value: None |
Description: Tells tokamak where to store the collision info - a blitz bank. For each collision, 104 bytes are stored in the bank. They are layed out like this:
|
A demo of collision bank setup, along with some functions for easier retrieval of collision data ColBank=CreateBank(104*ENTS) TOKSIM_SetCInfoBank ColBank Function TOKCOL_bodyA(bank,index) Return PeekInt(bank,index*104) End Function Function TOKCOL_bodyB(bank,index) Return PeekInt(bank,index*104+4) End Function Function TOKCOL_TypeA(bank,index) Return PeekInt(bank,index*104+8) End Function Function TOKCOL_TypeB(bank,index) Return PeekInt(bank,index*104+12) End Function Function TOKCOL_GeometryA(bank,index) Return PeekInt(bank,index*104+16) End Function Function TOKCOL_GeometryB(bank,index) Return PeekInt(bank,index*104+20) End Function Function TOKCOL_MaterialIdA(bank,index) Return PeekInt(bank,index*104+24) End Function Function TOKCOL_MaterialIdB(bank,index) Return PeekInt(bank,index*104+28) End Function Function TOKCOL_BodyContactPointAX#(bank,index) Return PeekFloat(bank,index*104+32) End Function Function TOKCOL_BodyContactPointAY#(bank,index) Return PeekFloat(bank,index*104+36) End Function Function TOKCOL_BodyContactPointAZ#(bank,index) Return PeekFloat(bank,index*104+40) End Function Function TOKCOL_BodyContactPointBX#(bank,index) Return PeekFloat(bank,index*104+44) End Function Function TOKCOL_BodyContactPointBY#(bank,index) Return PeekFloat(bank,index*104+48) End Function Function TOKCOL_BodyContactPointBZ#(bank,index) Return PeekFloat(bank,index*104+52) End Function Function TOKCOL_WorldContactPointAX#(bank,index) Return PeekFloat(bank,index*104+56) End Function Function TOKCOL_WorldContactPointAY#(bank,index) Return PeekFloat(bank,index*104+60) End Function Function TOKCOL_WorldContactPointAZ#(bank,index) Return PeekFloat(bank,index*104+64) End Function Function TOKCOL_WorldContactPointBX#(bank,index) Return PeekFloat(bank,index*104+68) End Function Function TOKCOL_WorldContactPointBY#(bank,index) Return PeekFloat(bank,index*104+72) End Function Function TOKCOL_WorldContactPointBZ#(bank,index) Return PeekFloat(bank,index*104+76) End Function Function TOKCOL_RelativeVelocityX#(bank,index) Return PeekFloat(bank,index*104+80) End Function Function TOKCOL_RelativeVelocityY#(bank,index) Return PeekFloat(bank,index*104+84) End Function Function TOKCOL_RelativeVelocityZ#(bank,index) Return PeekFloat(bank,index*104+88) End Function Function TOKCOL_CollisionNormalX#(bank,index) Return PeekFloat(bank,index*104+92) End Function Function TOKCOL_CollisionNormalY#(bank,index) Return PeekFloat(bank,index*104+96) End Function Function TOKCOL_CollisionNormalZ#(bank,index) Return PeekFloat(bank,index*104+100) End Function ;Some handy functions from RepeatUntil Function TOKCOL_GetCollisionIdA(bank, index) If TOKCOL_TypeA(bank, index) = 0 Then Return -1 If TOKCOL_TypeA(bank, index) = 1 Then Return TOKRB_GetCollisionID(TOKCOL_BodyA(bank, index)) If TOKCOL_TypeA(bank, index) = 2 Then Return TOKAB_GetCollisionID(TOKCOL_BodyA(bank, index)) Return 0 End Function Function TOKCOL_GetCollisionIdB(bank, index) If TOKCOL_TypeB(bank, index) = 0 Then Return -1 If TOKCOL_TypeB(bank, index) = 1 Then Return TOKRB_GetCollisionID(TOKCOL_BodyB(bank, index)) If TOKCOL_TypeB(bank, index) = 2 Then Return TOKAB_GetCollisionID(TOKCOL_BodyB(bank, index)) Return 0 End Function |