public GameClient() { initialized = false; InitializedType = InitializedType.None; initializeThread = new Thread(Initialize); initializeThread.Start(); }
protected void OnInitialized(InitializedType type) { if (InitializedType == InitializedType.Core) { InitializedType = InitializedType.Both; } if (Initialized != null) { Initialized(type); } }
/// <summary> /// Initializes the in-game objects so they can be managed using the API. /// </summary> protected void Initialize() { MemoryManager.Initialize(process); this.drivers = new Driver[6]; for (int i = 0; i < 6; i++) { this.drivers[i] = new Driver(this, i); } active = true; new Thread(eventLoop).Start(); initialized = true; InitializedType = LEGORacersAPI.InitializedType.Both; }
void gameClient_Initialized(InitializedType type) { switch (type) { case InitializedType.Core: MessageBox.Show("Core initialized"); gameClient.RunInBackground = true; gameClient.LoadRRB = false; break; case InitializedType.Drivers: MessageBox.Show("Drivers initialized"); Console.WriteLine("Player X: " + gameClient.drivers[0].X); Console.WriteLine("Opponent 1 X: " + gameClient.drivers[1].X); gameClient.drivers[0].PowerUpUsed += Player_PowerUpUsed; break; } }
private void Game_Initialized(InitializedType type) { Console.WriteLine(type.ToString()); }
/// <summary> /// Initializes the in-game objects so they can be managed using the API. /// </summary> protected void Initialize() { try { active = true; memoryManager = new MemoryManager(process); while (!initialized && active) { if (GetCurrentMenu() != 0 && GetCurrentMenu() != Menu.Loading && GetCurrentMenu() != Menu.Initializing) { initialized = true; // Core functionality is now initialized InitializedType = InitializedType.Core; Initialized(InitializedType.Core); while (active && !IsRaceRunning) { // Wait until a race has been started so the drivers can be initialized Thread.Sleep((int)Settings.RefreshRate); } if (!active) // When the client closes before a race has been started { return; // Stop initializing } do { // Reset the player to a null value to prevent a memory overflow Player = null; // There is a small time between the starting of a race and the actual start, // so the thread will continue to run for a small time until the local players X-coordinate // is actually filled with correct data, which is a good way to test if the race has actually been started. Player = new Player(memoryManager, DRIVER_BASE, PLAYER_BASE_OFFSETS, DRIVER_OFFSET_COORDINATE_X, DRIVER_OFFSET_COORDINATE_Y, DRIVER_OFFSET_COORDINATE_Z, DRIVER_OFFSET_SPEED_X, DRIVER_OFFSET_SPEED_Y, DRIVER_OFFSET_SPEED_Z, DRIVER_OFFSET_VECTOR_X1, DRIVER_OFFSET_VECTOR_Y1, DRIVER_OFFSET_VECTOR_Z1, DRIVER_OFFSET_VECTOR_X2, DRIVER_OFFSET_VECTOR_Y2, DRIVER_OFFSET_VECTOR_Z2, DRIVER_OFFSET_BRICK, DRIVER_OFFSET_WHITEBRICKS, POWERUP_RED_ADDRESS, POWERUP_BLUE_ADDRESS, POWERUP_GREEN_ADDRESS, POWERUP_YELLOW_ADDRESS); Thread.Sleep((int)Settings.RefreshRate); }while (active && (Player == null || Player.X == 0)); Opponents = new Opponent[5]; Opponents[0] = new Opponent(memoryManager, DRIVER_BASE, ENEMY_1_BASE_OFFSETS, DRIVER_OFFSET_COORDINATE_X, DRIVER_OFFSET_COORDINATE_Y, DRIVER_OFFSET_COORDINATE_Z, DRIVER_OFFSET_SPEED_X, DRIVER_OFFSET_SPEED_Y, DRIVER_OFFSET_SPEED_Z, DRIVER_OFFSET_VECTOR_X1, DRIVER_OFFSET_VECTOR_Y1, DRIVER_OFFSET_VECTOR_Z1, DRIVER_OFFSET_VECTOR_X2, DRIVER_OFFSET_VECTOR_Y2, DRIVER_OFFSET_VECTOR_Z2, DRIVER_OFFSET_BRICK, DRIVER_OFFSET_WHITEBRICKS, POWERUP_RED_ADDRESS, POWERUP_BLUE_ADDRESS, POWERUP_GREEN_ADDRESS, POWERUP_YELLOW_ADDRESS); Opponents[1] = new Opponent(memoryManager, DRIVER_BASE, ENEMY_2_BASE_OFFSETS, DRIVER_OFFSET_COORDINATE_X, DRIVER_OFFSET_COORDINATE_Y, DRIVER_OFFSET_COORDINATE_Z, DRIVER_OFFSET_SPEED_X, DRIVER_OFFSET_SPEED_Y, DRIVER_OFFSET_SPEED_Z, DRIVER_OFFSET_VECTOR_X1, DRIVER_OFFSET_VECTOR_Y1, DRIVER_OFFSET_VECTOR_Z1, DRIVER_OFFSET_VECTOR_X2, DRIVER_OFFSET_VECTOR_Y2, DRIVER_OFFSET_VECTOR_Z2, DRIVER_OFFSET_BRICK, DRIVER_OFFSET_WHITEBRICKS, POWERUP_RED_ADDRESS, POWERUP_BLUE_ADDRESS, POWERUP_GREEN_ADDRESS, POWERUP_YELLOW_ADDRESS); Opponents[2] = new Opponent(memoryManager, DRIVER_BASE, ENEMY_3_BASE_OFFSETS, DRIVER_OFFSET_COORDINATE_X, DRIVER_OFFSET_COORDINATE_Y, DRIVER_OFFSET_COORDINATE_Z, DRIVER_OFFSET_SPEED_X, DRIVER_OFFSET_SPEED_Y, DRIVER_OFFSET_SPEED_Z, DRIVER_OFFSET_VECTOR_X1, DRIVER_OFFSET_VECTOR_Y1, DRIVER_OFFSET_VECTOR_Z1, DRIVER_OFFSET_VECTOR_X2, DRIVER_OFFSET_VECTOR_Y2, DRIVER_OFFSET_VECTOR_Z2, DRIVER_OFFSET_BRICK, DRIVER_OFFSET_WHITEBRICKS, POWERUP_RED_ADDRESS, POWERUP_BLUE_ADDRESS, POWERUP_GREEN_ADDRESS, POWERUP_YELLOW_ADDRESS); Opponents[3] = new Opponent(memoryManager, DRIVER_BASE, ENEMY_4_BASE_OFFSETS, DRIVER_OFFSET_COORDINATE_X, DRIVER_OFFSET_COORDINATE_Y, DRIVER_OFFSET_COORDINATE_Z, DRIVER_OFFSET_SPEED_X, DRIVER_OFFSET_SPEED_Y, DRIVER_OFFSET_SPEED_Z, DRIVER_OFFSET_VECTOR_X1, DRIVER_OFFSET_VECTOR_Y1, DRIVER_OFFSET_VECTOR_Z1, DRIVER_OFFSET_VECTOR_X2, DRIVER_OFFSET_VECTOR_Y2, DRIVER_OFFSET_VECTOR_Z2, DRIVER_OFFSET_BRICK, DRIVER_OFFSET_WHITEBRICKS, POWERUP_RED_ADDRESS, POWERUP_BLUE_ADDRESS, POWERUP_GREEN_ADDRESS, POWERUP_YELLOW_ADDRESS); Opponents[4] = new Opponent(memoryManager, DRIVER_BASE, ENEMY_5_BASE_OFFSETS, DRIVER_OFFSET_COORDINATE_X, DRIVER_OFFSET_COORDINATE_Y, DRIVER_OFFSET_COORDINATE_Z, DRIVER_OFFSET_SPEED_X, DRIVER_OFFSET_SPEED_Y, DRIVER_OFFSET_SPEED_Z, DRIVER_OFFSET_VECTOR_X1, DRIVER_OFFSET_VECTOR_Y1, DRIVER_OFFSET_VECTOR_Z1, DRIVER_OFFSET_VECTOR_X2, DRIVER_OFFSET_VECTOR_Y2, DRIVER_OFFSET_VECTOR_Z2, DRIVER_OFFSET_BRICK, DRIVER_OFFSET_WHITEBRICKS, POWERUP_RED_ADDRESS, POWERUP_BLUE_ADDRESS, POWERUP_GREEN_ADDRESS, POWERUP_YELLOW_ADDRESS); InitializedType = InitializedType.Both; Initialized(InitializedType.Drivers); } Thread.Sleep((int)Settings.RefreshRate); } } catch (Exception exc) { Console.WriteLine(exc); } }
public InitializedEventArgs(InitializedType type) { Type = type; }
private void Game_Initialized(InitializedType type) { Console.WriteLine(type.ToString()); }
protected void OnInitialized(InitializedType type) { if (InitializedType == InitializedType.Core) { InitializedType = InitializedType.Both; } if (Initialized != null) { Initialized(type); } }
void gameClient_Initialized(InitializedType type) { switch (type) { case InitializedType.Core: MessageBox.Show("Core initialized"); gameClient.RunInBackground = true; gameClient.LoadRRB = false; break; case InitializedType.Drivers: MessageBox.Show("Drivers initialized"); Console.WriteLine("Player X: " + gameClient.Player.X); Console.WriteLine("Opponent 1 X: " + gameClient.Opponents[0].X); gameClient.Player.PowerUpUsed += Player_PowerUpUsed; break; } }
public InitializedEventArgs(InitializedType type) { Type = type; }
public GameClient() { initialized = false; InitializedType = InitializedType.None; }