Path: blob/master/Sonic 2/Scripts/ARZ/Raft.txt
1480 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: Raft Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.startPos.x12private alias object.value1 : object.startPos.y1314private alias 0 : RAFT_FALLING15private alias 1 : RAFT_FLOATING1617// Player Aliases18private alias object.xpos : player.xpos19private alias object.ypos : player.ypos2021// Path ID Aliases22private alias 0 : PATH_A232425// ========================26// Function Declarations27// ========================2829reserve function Raft_DebugDraw30reserve function Raft_DebugSpawn313233// ========================34// Function Definitions35// ========================3637private function Raft_DebugDraw38DrawSprite(0)39end function404142private function Raft_DebugSpawn43CreateTempObject(TypeName[Raft], 0, object.xpos, object.ypos)44object[tempObjectPos].direction = object.direction45end function464748// ========================49// Events50// ========================5152event ObjectUpdate53temp0 = object.xpos54temp0 &= 0xFFFF000055temp1 = object.ypos56temp1 &= 0xFFFF000057temp7 = stage.waterLevel58temp7 <<= 165960if object.state == RAFT_FLOATING61object.ypos = temp762else63object.ypos += object.yvel64object.yvel += 0x18006566if object.ypos >= temp767if object.direction == FLIP_NONE68if object.xvel > 0x1000069object.xvel = 0x1000070end if71else72if object.xvel < -0x1000073object.xvel = -0x1000074end if75end if76object.state++77end if78end if7980object.xpos += object.xvel81if object.direction == FLIP_NONE82ObjectTileCollision(CSIDE_LWALL, 32, 12, PATH_A)83else84ObjectTileCollision(CSIDE_RWALL, -32, 12, PATH_A)85end if8687temp4 = object.xpos88temp5 = object.ypos8990temp2 = object.xpos91temp2 &= 0xFFFF000092temp2 -= temp09394temp3 = object.ypos95temp3 &= 0xFFFF000096temp3 -= temp19798object.xpos = temp099object.ypos = temp1100foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)101BoxCollisionTest(C_PLATFORM, object.entityPos, -32, -8, 32, 8, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)102if checkResult == true103if object.xvel == 0104// If this Raft isn't moving yet, then make it start moving105if object.direction == FLIP_NONE106object.xvel = 0x10000107else108object.xvel = -0x10000109end if110end if111112player[currentPlayer].xpos += temp2113player[currentPlayer].ypos += temp3114end if115next116object.xpos = temp4117object.ypos = temp5118119if object.outOfBounds == true120if object.startPos.x == 0 // Debug Mode doesn't set startpos so bye bye debug obj!121object.type = TypeName[Blank Object]122else123object.xpos = object.startPos.x124object.ypos = object.startPos.y125if object.outOfBounds == false126object.xpos = temp4127object.ypos = temp5128end if129end if130end if131end event132133134event ObjectDraw135DrawSprite(0)136end event137138139event ObjectStartup140LoadSpriteSheet("ARZ/Objects.gif")141SpriteFrame(-32, -8, 64, 16, 126, 191)142143SetTableValue(TypeName[Raft], DebugMode_ObjCount, DebugMode_TypesTable)144SetTableValue(Raft_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)145SetTableValue(Raft_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)146DebugMode_ObjCount++147148foreach (TypeName[Raft], arrayPos0, ALL_ENTITIES)149object[arrayPos0].startPos.x = object[arrayPos0].xpos150object[arrayPos0].startPos.y = object[arrayPos0].ypos151next152end event153154155// ========================156// Editor Events157// ========================158159event RSDKDraw160DrawSprite(0)161end event162163164event RSDKLoad165LoadSpriteSheet("ARZ/Objects.gif")166SpriteFrame(-32, -8, 64, 16, 126, 191)167168SetVariableAlias(ALIAS_VAR_PROPVAL, "unused")169end event170171172