Path: blob/master/Sonic 2/Scripts/HTZ/HPlatform.txt
1479 views
// ----------------------------------1// RSDK Project: Sonic 22// Script Description: H Platform Object3// Script Author: Christian Whitehead/Simon Thomley4// Unpacked by Rubberduckycooly's script unpacker5// ----------------------------------67// ========================8// Aliases9// ========================1011private alias object.value0 : object.stood12private alias object.value1 : object.centerPos.x13private alias object.value2 : object.centerPos.y14private alias object.value3 : object.collisionOffset.x15private alias object.value4 : object.collisionOffset.y16private alias object.value5 : object.stoodAngle1718// Player Aliases19private alias object.xpos : player.xpos20private alias object.ypos : player.ypos212223// ========================24// Function Declarations25// ========================2627reserve function HPlatform_DebugDraw28reserve function HPlatform_DebugSpawn293031// ========================32// Function Definitions33// ========================3435private function HPlatform_DebugDraw36DrawSprite(0)37end function383940private function HPlatform_DebugSpawn41CreateTempObject(TypeName[H Platform], 0, object.xpos, object.ypos)42object[tempObjectPos].centerPos.x = object.xpos43object[tempObjectPos].centerPos.y = object.ypos44object[tempObjectPos].propertyValue = object.direction45end function464748// ========================49// Events50// ========================5152event ObjectUpdate53temp6 = object.xpos54temp7 = object.ypos55GetTableValue(temp0, 12, StageSetup_oscillationTable)56if object.propertyValue == 157FlipSign(temp0)58temp0 += 0x400059else60temp0 -= 0x400061end if62temp0 <<= 86364object.xpos = object.centerPos.x65object.xpos -= temp066if object.stood == true67if object.stoodAngle < 6468object.stoodAngle += 469end if70else71if object.stoodAngle > 072object.stoodAngle -= 473end if74end if7576temp0 = object.stoodAngle77temp0 <<= 178Sin(temp1, temp0)79temp1 <<= 980object.ypos = object.centerPos.y81object.ypos += temp18283object.stood = false84temp0 = object.xpos85temp1 = object.ypos86temp6 &= 0xFFFF000087temp7 &= 0xFFFF000088object.collisionOffset.x = object.xpos89object.collisionOffset.x &= 0xFFFF000090object.collisionOffset.x -= temp691object.collisionOffset.y = object.ypos92object.collisionOffset.y &= 0xFFFF000093object.collisionOffset.y -= temp79495object.xpos = temp696object.ypos = temp797foreach (GROUP_PLAYERS, currentPlayer, ACTIVE_ENTITIES)98BoxCollisionTest(C_PLATFORM, object.entityPos, -32, -8, 32, 12, currentPlayer, C_BOX, C_BOX, C_BOX, C_BOX)99if checkResult == true100object.stood = true101player[currentPlayer].xpos += object.collisionOffset.x102player[currentPlayer].ypos += object.collisionOffset.y103end if104next105object.xpos = temp0106object.ypos = temp1107end event108109110event ObjectDraw111DrawSprite(0)112end event113114115event ObjectStartup116LoadSpriteSheet("HTZ/Objects.gif")117SpriteFrame(-32, -12, 64, 32, 191, 223)118119foreach (TypeName[H Platform], arrayPos0, ALL_ENTITIES)120object[arrayPos0].centerPos.x = object[arrayPos0].xpos121object[arrayPos0].centerPos.y = object[arrayPos0].ypos122next123124SetTableValue(TypeName[H Platform], DebugMode_ObjCount, DebugMode_TypesTable)125SetTableValue(HPlatform_DebugDraw, DebugMode_ObjCount, DebugMode_DrawTable)126SetTableValue(HPlatform_DebugSpawn, DebugMode_ObjCount, DebugMode_SpawnTable)127DebugMode_ObjCount++128end event129130131// ========================132// Editor Events133// ========================134135event RSDKEdit136if editor.returnVariable == true137switch editor.variableID138case EDIT_VAR_PROPVAL // property value139checkResult = object.propertyValue140break141142case 0 // startDir143checkResult = object.propertyValue144checkResult &= 1145break146147end switch148else149switch editor.variableID150case EDIT_VAR_PROPVAL // property value151object.propertyValue = editor.variableValue152break153154case 0 // startDir155object.propertyValue = editor.variableValue156object.propertyValue &= 1157break158159end switch160end if161end event162163164event RSDKDraw165DrawSprite(0)166end event167168169event RSDKLoad170LoadSpriteSheet("HTZ/Objects.gif")171SpriteFrame(-32, -12, 64, 32, 191, 223)172173AddEditorVariable("startDir")174SetActiveVariable("startDir")175AddEnumVariable("Left", 0)176AddEnumVariable("Right", 1)177end event178179180