void InitOpcodeTable() { REGISTER_OPCODE(MSG_NULL, STATUS_AUTHENTIFICATION, &WorldSession::NullHandler); REGISTER_OPCODE(CMSG_AUTH_TRY, STATUS_AUTHENTIFICATION, &WorldSession::HandleAuthTry); REGISTER_OPCODE(SMSG_AUTH_TRY, STATUS_NEVER, &WorldSession::NullHandler); REGISTER_OPCODE(CMSG_CHAR_ENUM, STATUS_CHARACTER_SELECTION, &WorldSession::HandleCharEnum); }
WorldSocket::WorldSocket(App *appInstance) : m_appInstance(appInstance) { m_thread = NULL; SetStatut(STATUT_LOGIN_SCREEN); REGISTER_OPCODE(CMSG_AUTH_TRY, STATUT_NEVER, &WorldSocket::NullHandler); REGISTER_OPCODE(SMSG_AUTH_TRY, STATUT_LOGIN_SCREEN, &WorldSocket::HandleAuthResponse); REGISTER_OPCODE(CMSG_CHAR_ENUM, STATUT_NEVER, &WorldSocket::NullHandler); }
void MystScriptParser::setupCommonOpcodes() { // These opcodes are common to each stack // "Standard" Opcodes REGISTER_OPCODE(0, MystScriptParser, o_toggleVar); REGISTER_OPCODE(1, MystScriptParser, o_setVar); REGISTER_OPCODE(2, MystScriptParser, o_changeCardSwitch4); REGISTER_OPCODE(3, MystScriptParser, o_takePage); REGISTER_OPCODE(4, MystScriptParser, o_redrawCard); // Opcode 5 Not Present REGISTER_OPCODE(6, MystScriptParser, o_goToDestForward); REGISTER_OPCODE(7, MystScriptParser, o_goToDestRight); REGISTER_OPCODE(8, MystScriptParser, o_goToDestLeft); REGISTER_OPCODE(9, MystScriptParser, o_triggerMovie); REGISTER_OPCODE(10, MystScriptParser, o_toggleVarNoRedraw); // Opcode 11 Not Present REGISTER_OPCODE(12, MystScriptParser, o_changeCardSwitchLtR); REGISTER_OPCODE(13, MystScriptParser, o_changeCardSwitchRtL); REGISTER_OPCODE(14, MystScriptParser, o_drawAreaState); REGISTER_OPCODE(15, MystScriptParser, o_redrawAreaForVar); REGISTER_OPCODE(16, MystScriptParser, o_changeCardDirectional); REGISTER_OPCODE(17, MystScriptParser, o_changeCardPush); REGISTER_OPCODE(18, MystScriptParser, o_changeCardPop); REGISTER_OPCODE(19, MystScriptParser, o_enableAreas); REGISTER_OPCODE(20, MystScriptParser, o_disableAreas); REGISTER_OPCODE(21, MystScriptParser, o_directionalUpdate); REGISTER_OPCODE(22, MystScriptParser, o_goToDestUp); REGISTER_OPCODE(23, MystScriptParser, o_toggleAreasActivation); REGISTER_OPCODE(24, MystScriptParser, o_playSound); // Opcode 25 is unused; original calls replaceSoundMyst REGISTER_OPCODE(26, MystScriptParser, o_stopSoundBackground); REGISTER_OPCODE(27, MystScriptParser, o_playSoundBlocking); REGISTER_OPCODE(28, MystScriptParser, o_copyBackBufferToScreen); REGISTER_OPCODE(29, MystScriptParser, o_copyImageToBackBuffer); REGISTER_OPCODE(30, MystScriptParser, o_changeBackgroundSound); REGISTER_OPCODE(31, MystScriptParser, o_soundPlaySwitch); REGISTER_OPCODE(32, MystScriptParser, o_soundResumeBackground); REGISTER_OPCODE(33, MystScriptParser, o_copyImageToScreen); REGISTER_OPCODE(34, MystScriptParser, o_changeCard); REGISTER_OPCODE(35, MystScriptParser, o_drawImageChangeCard); REGISTER_OPCODE(36, MystScriptParser, o_changeMainCursor); REGISTER_OPCODE(37, MystScriptParser, o_hideCursor); REGISTER_OPCODE(38, MystScriptParser, o_showCursor); REGISTER_OPCODE(39, MystScriptParser, o_delay); REGISTER_OPCODE(40, MystScriptParser, o_changeStack); REGISTER_OPCODE(41, MystScriptParser, o_changeCardPlaySoundDirectional); REGISTER_OPCODE(42, MystScriptParser, o_directionalUpdatePlaySound); REGISTER_OPCODE(43, MystScriptParser, o_saveMainCursor); REGISTER_OPCODE(44, MystScriptParser, o_restoreMainCursor); // Opcode 45 Not Present REGISTER_OPCODE(46, MystScriptParser, o_soundWaitStop); REGISTER_OPCODE(48, MystScriptParser, o_goToDest); REGISTER_OPCODE(51, MystScriptParser, o_exitMap); // Opcodes 47 to 99 Not Present REGISTER_OPCODE(0xFFFF, MystScriptParser, NOP); }
void Mechanical::setupOpcodes() { // "Stack-Specific" Opcodes REGISTER_OPCODE(100, Mechanical, o_throneEnablePassage); REGISTER_OPCODE(101, Mechanical, o_birdCrankStart); REGISTER_OPCODE(102, Mechanical, NOP); REGISTER_OPCODE(103, Mechanical, o_birdCrankStop); REGISTER_OPCODE(104, Mechanical, o_snakeBoxTrigger); REGISTER_OPCODE(105, Mechanical, o_fortressStaircaseMovie); REGISTER_OPCODE(106, Mechanical, o_elevatorRotationStart); REGISTER_OPCODE(107, Mechanical, o_elevatorRotationMove); REGISTER_OPCODE(108, Mechanical, o_elevatorRotationStop); REGISTER_OPCODE(109, Mechanical, o_fortressRotationSpeedStart); REGISTER_OPCODE(110, Mechanical, o_fortressRotationSpeedMove); REGISTER_OPCODE(111, Mechanical, o_fortressRotationSpeedStop); REGISTER_OPCODE(112, Mechanical, o_fortressRotationBrakeStart); REGISTER_OPCODE(113, Mechanical, o_fortressRotationBrakeMove); REGISTER_OPCODE(114, Mechanical, o_fortressRotationBrakeStop); REGISTER_OPCODE(115, Mechanical, o_fortressSimulationSpeedStart); REGISTER_OPCODE(116, Mechanical, o_fortressSimulationSpeedMove); REGISTER_OPCODE(117, Mechanical, o_fortressSimulationSpeedStop); REGISTER_OPCODE(118, Mechanical, o_fortressSimulationBrakeStart); REGISTER_OPCODE(119, Mechanical, o_fortressSimulationBrakeMove); REGISTER_OPCODE(120, Mechanical, o_fortressSimulationBrakeStop); REGISTER_OPCODE(121, Mechanical, o_elevatorWindowMovie); REGISTER_OPCODE(122, Mechanical, o_elevatorGoMiddle); REGISTER_OPCODE(123, Mechanical, o_elevatorTopMovie); REGISTER_OPCODE(124, Mechanical, o_fortressRotationSetPosition); REGISTER_OPCODE(125, Mechanical, o_mystStaircaseMovie); REGISTER_OPCODE(126, Mechanical, o_elevatorWaitTimeout); REGISTER_OPCODE(127, Mechanical, o_crystalEnterYellow); REGISTER_OPCODE(128, Mechanical, o_crystalLeaveYellow); REGISTER_OPCODE(129, Mechanical, o_crystalEnterGreen); REGISTER_OPCODE(130, Mechanical, o_crystalLeaveGreen); REGISTER_OPCODE(131, Mechanical, o_crystalEnterRed); REGISTER_OPCODE(132, Mechanical, o_crystalLeaveRed); // "Init" Opcodes REGISTER_OPCODE(200, Mechanical, o_throne_init); REGISTER_OPCODE(201, Mechanical, o_fortressStaircase_init); REGISTER_OPCODE(202, Mechanical, o_bird_init); REGISTER_OPCODE(203, Mechanical, o_snakeBox_init); REGISTER_OPCODE(204, Mechanical, o_elevatorRotation_init); REGISTER_OPCODE(205, Mechanical, o_fortressRotation_init); REGISTER_OPCODE(206, Mechanical, o_fortressSimulation_init); REGISTER_OPCODE(209, Mechanical, o_fortressSimulationStartup_init); // "Exit" Opcodes REGISTER_OPCODE(300, Mechanical, NOP); }