コード例 #1
0
ファイル: Racer.DC.cs プロジェクト: everalert/swe1r
            public void Update(Racer racer)
            {
                CheckUpdateable();
                switch (pathId)
                {
                case Path.Static:
                    data = racer.GetData((Addr.Static)offset, dataLen);
                    break;

                case Path.Pod:
                    data = racer.GetData((Addr.Pod)offset, dataLen);
                    break;

                case Path.PodState:
                    data = racer.GetData((Addr.PodState)offset, dataLen);
                    break;

                case Path.Race:
                    data = racer.GetData((Addr.Race)offset, dataLen);
                    break;

                case Path.Rendering:
                    data = racer.GetData((Addr.Rendering)offset, dataLen);
                    break;

                default:
                    break;
                }
            }
コード例 #2
0
        private bool CheckRaceDataMatch(Racer r)
        {
            var ingame_track   = r.GetData(Addr.Race.SelectedTrack);
            var ingame_vehicle = r.GetData(Addr.Race.SelectedVehicle);

            return(ingame_track == Track && ingame_vehicle == Vehicle);
        }
コード例 #3
0
        // CONTROL

        private void Init(Racer r)
        {
            if (CheckInRace(r) && data.Count <= 0)
            {
                // get race info
                meta_track          = r.GetData(Addr.Race.SelectedTrack);
                meta_vehicle        = r.GetData(Addr.Race.SelectedVehicle);
                meta_player         = r.GetData(Addr.Static.SaveFile01, 0x20);
                meta_upgrade_level  = r.GetData(Addr.Static.SaveFile01 + 0x41, 0x7);
                meta_upgrade_health = r.GetData(Addr.Static.SaveFile01 + 0x48, 0x7);

                // write first frame
                // index 0 used as canonical data set; referred to for file output and serves as base for new frames
                DataCollection first = new DataCollection();
                first.GetValue(r, Addr.Pod.TimeTotal);
                first.GetValue(r, Addr.Pod.Lap);
                first.GetValue(r, Addr.Pod.Flags);
                first.GetValue(r, Addr.PodState.Flags1);
                first.GetValue(r, Addr.PodState.Flags2);
                first.GetValue(r, Addr.PodState.X);
                first.GetValue(r, Addr.PodState.Y);
                first.GetValue(r, Addr.PodState.Z);
                first.GetValue(r, Addr.PodState.Vector3D_1A);
                first.GetValue(r, Addr.PodState.Vector3D_1B);
                first.GetValue(r, Addr.PodState.Vector3D_1C);
                first.GetValue(r, Addr.PodState.Vector3D_2A);
                first.GetValue(r, Addr.PodState.Vector3D_2B);
                first.GetValue(r, Addr.PodState.Vector3D_2C);
                first.GetValue(r, Addr.PodState.LapCompletion);
                first.GetValue(r, Addr.PodState.Speed);
                first.GetValue(r, Addr.PodState.Heat);
                first.GetValue(r, Addr.PodState.EngineDamageTL);
                first.GetValue(r, Addr.PodState.EngineDamageML);
                first.GetValue(r, Addr.PodState.EngineDamageBL);
                first.GetValue(r, Addr.PodState.EngineDamageTR);
                first.GetValue(r, Addr.PodState.EngineDamageMR);
                first.GetValue(r, Addr.PodState.EngineDamageBR);
                /* also add inputs at some point; need to figure out how to conflate all the input methods */
                //also - LightningPirate: I'd say just the main stuff like what pod, upgrades, upgrade health, and track and then xyz, time, current lap, progress, speed, boost, thrust, pitch, brake, turning, repair, slide, tilt, deaths, engine stuff (health, fire, temp)
                //also also - 3d transformation data, animation id, animation frame
                //so far mostly included except animation stuff (addresses not known) and input stuff
                data.Add(first);
                initialized = true;
            }
        }
コード例 #4
0
 private bool CheckRacePaused(Racer r)
 {
     return(r.GetData(Addr.Static.PauseState) > 0);
 }
コード例 #5
0
        // CHECKING

        private bool CheckInRace(Racer r)
        {
            return(r.GetData(Addr.Static.InRace) > 0);
        }