Example #1
0
        public bool RemoveMenuButtons()
        {
            bool result = true;

            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0xB, 0x00);            // build
            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0xB + 1 * 0x14, 0x00); // circuit
            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0xB + 2 * 0x14, 0x00); // singlerace
            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0xB + 3 * 0x14, 0x55); // versus (moving to location 55 (circuit))
            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0xB + 4 * 0x14, 0x00); // timeattack
            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0xB + 5 * 0x14, 0x00); // options
            //result &= writeByte(MAINMENU_BUTTONS_BASE + 0xB + 6*0x14, 0x00); // exit

            result &= memoryManager.WriteByte(RACERSELECT_BUTTONS_BASE + 0x49, 0x00);                                // cancel racer selection

            result &= memoryManager.WriteBytes(MAINMENU_BUTTONS_BASE + 0x98, new byte[] { 0x90, 0x90, 0x90, 0x90 }); // always disable versus

            result &= memoryManager.WriteByte(MAINMENU_BUTTONS_BASE + 0x3D, 46);                                     // set versus button text to line 47 of menustrings.srf
            result &= memoryManager.WriteBytes(GetMenuStringsAddress(46), memoryManager.GetStringBytes("WAITING FOR SERVER TO START A RACE..."));

            return(result);
        }