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

Function ItemNewRoom

TombEngine/Game/items.cpp:413–448  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

411}
412
413void ItemNewRoom(short itemNumber, short roomNumber)
414{
415 if (InItemControlLoop)
416 {
417 ItemNewRooms[2 * ItemNewRoomNo] = itemNumber;
418 ItemNewRooms[2 * ItemNewRoomNo + 1] = roomNumber;
419 ItemNewRoomNo++;
420 }
421 else
422 {
423 auto* item = &g_Level.Items[itemNumber];
424
425 if (item->RoomNumber != NO_VALUE)
426 {
427 auto* room = &g_Level.Rooms[item->RoomNumber];
428
429 if (room->itemNumber == itemNumber)
430 room->itemNumber = item->NextItem;
431 else
432 {
433 for (short linkNumber = room->itemNumber; linkNumber != NO_VALUE; linkNumber = g_Level.Items[linkNumber].NextItem)
434 {
435 if (g_Level.Items[linkNumber].NextItem == itemNumber)
436 {
437 g_Level.Items[linkNumber].NextItem = item->NextItem;
438 break;
439 }
440 }
441 }
442 }
443
444 item->RoomNumber = roomNumber;
445 item->NextItem = g_Level.Rooms[roomNumber].itemNumber;
446 g_Level.Rooms[roomNumber].itemNumber = itemNumber;
447 }
448}
449
450void EffectNewRoom(short fxNumber, short roomNumber)
451{

Callers 15

ControlSpinningBladeFunction · 0.85
SkidooManControlFunction · 0.85
SyncDragonBackSegmentFunction · 0.85
DoSpeedboatMountFunction · 0.85
DoSpeedboatDismountFunction · 0.85
SpeedboatControlFunction · 0.85
UpdateVehicleRoomFunction · 0.85
ControlElectricCleanerFunction · 0.85
MonkeyControlFunction · 0.85
UPVControlFunction · 0.85
DoRubberBoatMountFunction · 0.85
DoRubberBoatDismountFunction · 0.85

Calls

no outgoing calls

Tested by 1

TestProjectileNewRoomFunction · 0.68