MCPcopy Create free account
hub / github.com/TombEngine/TombEngine / MakeMove

Function MakeMove

TombEngine/Objects/TR4/Object/tr4_senet.cpp:386–431  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

384}
385
386void MakeMove(int piece, int displacement)
387{
388 int number, i;
389
390 number = piece >= 3 ? 2 : 1;
391 if (ActiveSenetPieces[piece] != -1 && displacement &&
392 (ActiveSenetPieces[piece] + displacement) <= 16 &&
393 !(SenetBoard[ActiveSenetPieces[piece] + displacement] & number))
394 {
395 SenetBoard[ActiveSenetPieces[piece]] &= ~number;
396 if (!ActiveSenetPieces[piece])
397 {
398 for (i = 3 * number - 3; i < 3 * number; ++i)
399 {
400 if (i != piece && !ActiveSenetPieces[i])
401 SenetBoard[0] |= number;
402 }
403 }
404
405 ActivePiece = piece;
406
407 ActiveSenetPieces[ActivePiece] += displacement;
408 if (ActiveSenetPieces[ActivePiece] > 4)
409 {
410 SenetBoard[ActiveSenetPieces[ActivePiece]] = 0;
411 for (i = 6 - 3 * number; i < 9 - 3 * number; ++i)
412 {
413 if (ActiveSenetPieces[i] == ActiveSenetPieces[ActivePiece])
414 {
415 ActiveSenetPieces[i] = 0;
416 SenetBoard[0] |= 3 - number;
417 }
418 }
419 }
420
421 if (!(ActiveSenetPieces[ActivePiece] & 3) || SenetDisplacement == 6)
422 SenetDisplacement = 0;
423 else
424 SenetDisplacement = -1;
425
426 if (ActiveSenetPieces[ActivePiece] < 16)
427 SenetBoard[ActiveSenetPieces[ActivePiece]] |= number;
428 else
429 ActiveSenetPieces[ActivePiece] = -1;
430 }
431}
432
433void GameSticksCollision(short itemNumber, ItemInfo* laraItem, CollisionInfo* coll)
434{

Callers 2

GameSticksControlFunction · 0.85
SenetControlFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected