Skip to content

Commit

Permalink
Merge pull request #22 from space928/TVehicle-pt2
Browse files Browse the repository at this point in the history
T vehicle pt2
  • Loading branch information
space928 authored May 4, 2022
2 parents 233cd24 + ef2f4ab commit 794465b
Show file tree
Hide file tree
Showing 7 changed files with 673 additions and 4 deletions.
4 changes: 2 additions & 2 deletions OmsiExtensions.sln
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.1.32407.343
# Visual Studio Version 16
VisualStudioVersion = 16.0.31424.327
MinimumVisualStudioVersion = 10.0.40219.1
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "OmsiHook", "OmsiHook\OmsiHook.csproj", "{2E750CBE-F868-4AB7-96C2-27560F53E06B}"
EndProject
Expand Down
1 change: 1 addition & 0 deletions OmsiExtensionsCLI/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ static void Main(string[] args)
var pos = omsi.PlayerVehicle.Position;
var map = omsi.Map;
var weather = omsi.Weather;
var tickets = omsi.TicketPack;

Console.WriteLine($"Read data: x:{pos.x:F3}\ty:{pos.y:F3}\tz:{pos.z:F3}\t\t" +
$"tile:{0}\trow45:{0:F3}\trow47:{0:F3}");
Expand Down
28 changes: 28 additions & 0 deletions OmsiHook/OmsiComplMapObj.cs
Original file line number Diff line number Diff line change
Expand Up @@ -191,5 +191,33 @@ public int CTC_FarbSchema
set => Memory.WriteMemory(Address + 0x244, value);
}
public OmsiTriggerBox[] TriggerBoxes => Memory.ReadMemoryStructArray<OmsiTriggerBox>(Address + 0x248);

/* TODO:
public OmsiComplObjPtr ComplObj
{
get => Memory.ReadMemory<OmsiComplObjPtr>(Address + 0x24c);
set => Memory.WriteMemory(Address + 0x24c, value);
}*/
public OmsiPathManager ComplObj
{
get => new OmsiPathManager(Memory, Memory.ReadMemory<int>(Address + 0x250));
}
public OmsiObjectPathInfo[] Paths
{
get => Memory.ReadMemoryStructArray<OmsiObjectPathInfo>(Address + 0x254);
}
public OmsiSnapPosition[] SnapPoints
{
get => Memory.ReadMemoryStructArray<OmsiSnapPosition>(Address + 0x258);
}
public OmsiCameraSettings[] ReflCameraSettings
{
get => Memory.ReadMemoryStructArray<OmsiCameraSettings>(Address + 0x25c);
}
public OmsiSplineHelper[] OmsiSplineHelpers
{
get => Memory.ReadMemoryStructArray<OmsiSplineHelper>(Address + 0x260);
}

}
}
60 changes: 60 additions & 0 deletions OmsiHook/OmsiHOF.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OmsiHook
{
public class OmsiHOF : OmsiObject
{
internal OmsiHOF(Memory omsiMemory, int baseAddress) : base(omsiMemory, baseAddress) { }
public OmsiHOF() : base() { }

public string Name
{
get => Memory.ReadMemoryString(Address + 0x4);
set => Memory.WriteMemory(Address + 0x4, value);
}
/*
public string[] GlobalStrings
{
get => Memory.ReadMemoryObjArray<string>(Address + 0x8);
//set => Memory.WriteMemory(Address + 0x8, value);
}*/
public string ServiceTrip
{
get => Memory.ReadMemoryString(Address + 0xc);
set => Memory.WriteMemory(Address + 0xc, value);
}
public byte TargetStringCount
{
get => Memory.ReadMemory<byte>(Address + 0x10);
set => Memory.WriteMemory(Address + 0x10, value);
}
public byte BusStopStringCount
{
get => Memory.ReadMemory<byte>(Address + 0x11);
set => Memory.WriteMemory(Address + 0x11, value);
}
public OmsiHOFTarget[] Targets
{
get => Memory.MarshalStructs<OmsiHOFTarget, OmsiHOFTargetInternal>(
Memory.ReadMemoryStructArray<OmsiHOFTargetInternal>(Address + 0x14));
//set => Memory.WriteMemory(Address + 0x14, value);
}
public OmsiHofFISBusstop[] Busstops
{
get => Memory.MarshalStructs<OmsiHofFISBusstop, OmsiHofFISBusstopInternal>(
Memory.ReadMemoryStructArray<OmsiHofFISBusstopInternal>(Address + 0x18));
//set => Memory.WriteMemory(Address + 0x18, value);
}
public OmsiHofFISTrip[] HofFISTrips
{
get => Memory.MarshalStructs<OmsiHofFISTrip, OmsiHofFISTripInternal>(
Memory.ReadMemoryStructArray<OmsiHofFISTripInternal>(Address + 0x1c));
//set => Memory.WriteMemory(Address + 0x1c, value);
}

}
}
262 changes: 261 additions & 1 deletion OmsiHook/OmsiRoadVehicle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,266 @@
public class OmsiRoadVehicle : OmsiVehicle
{
internal OmsiRoadVehicle(Memory omsiMemory, int baseAddress) : base(omsiMemory, baseAddress) { }
internal OmsiRoadVehicle() : base() { }
public OmsiRoadVehicle() : base() { }
/*public OMSIScriptVarIndizes ScriptVarIndizes
{
get => Memory.ReadMemory<OMSIScriptVarIndizes>(Address + 0x2b8);
set => Memory.WriteMemory(Address + 0x2b8, value);
}*/

public bool Show_Dialog
{
get => Memory.ReadMemory<bool>(Address + 0x500);
set => Memory.WriteMemory(Address + 0x500, value);
}
public OmsiAchse[] Achse
{
get => Memory.ReadMemoryStructArray<OmsiAchse>(Address + 0x504);
//set => Memory.WriteMemoryStructArray<OmsiAchse>(Address + 0x504, value);
}
/// <summary>
/// Pivot
/// </summary>
public float Drehpunk
{
get => Memory.ReadMemory<float>(Address + 0x508);
set => Memory.WriteMemory(Address + 0x508, value);
}
public float Inv_Min_Radius
{
get => Memory.ReadMemory<float>(Address + 0x50c);
set => Memory.WriteMemory(Address + 0x50c, value);
}
public float AI_DeltaHeight
{
get => Memory.ReadMemory<float>(Address + 0x510);
set => Memory.WriteMemory(Address + 0x510, value);
}
public float Rowdy_Factor_Min
{
get => Memory.ReadMemory<float>(Address + 0x514);
set => Memory.WriteMemory(Address + 0x514, value);
}
public float Rowdy_Factor_Max
{
get => Memory.ReadMemory<float>(Address + 0x518);
set => Memory.WriteMemory(Address + 0x518, value);
}
public int Var_AI_Station_Side
{
get => Memory.ReadMemory<int>(Address + 0x51c);
set => Memory.WriteMemory(Address + 0x51c, value);
}
public float AI_Brake_A_Std
{
get => Memory.ReadMemory<float>(Address + 0x520);
set => Memory.WriteMemory(Address + 0x520, value);
}
public float AI_Brake_A_RowVar
{
get => Memory.ReadMemory<float>(Address + 0x524);
set => Memory.WriteMemory(Address + 0x524, value);
}
public float AI_Brake_MueExploit
{
get => Memory.ReadMemory<float>(Address + 0x528);
set => Memory.WriteMemory(Address + 0x528, value);
}
public float AI_Brake_Final
{
get => Memory.ReadMemory<float>(Address + 0x52c);
set => Memory.WriteMemory(Address + 0x52c, value);
}
public float AI_Brake_StopPointOffset
{
get => Memory.ReadMemory<float>(Address + 0x530);
set => Memory.WriteMemory(Address + 0x530, value);
}
public int VehType
{
get => Memory.ReadMemory<int>(Address + 0x534);
set => Memory.WriteMemory(Address + 0x534, value);
}
public OmsiCoupling[] Coupling
{
get => Memory.MarshalStructs<OmsiCoupling, OmsiCouplingInternal>(
Memory.ReadMemoryStructArray<OmsiCouplingInternal>(Address + 0x538));
//set => Memory.WriteMemory(Address + 0x538, value);
}
public OmsiVehicleCouple[] Couple
{
get => Memory.MarshalStructs<OmsiVehicleCouple, OmsiVehicleCoupleInternal>(
Memory.ReadMemoryStructArray<OmsiVehicleCoupleInternal>(Address + 0x568));
//set => Memory.WriteMemory(Address + 0x538, value);
}
public OmsiVehicleCoupleChar Couple_Char
{
get => Memory.ReadMemory<OmsiVehicleCoupleChar>(Address + 0x534);
set => Memory.WriteMemory(Address + 0x534, value);
}
public bool Boogies_AVL
{
get => Memory.ReadMemory<bool>(Address + 0x588);
set => Memory.WriteMemory(Address + 0x588, value);
}
public float Bookies_Y
{
get => Memory.ReadMemory<float>(Address + 0x58c);
set => Memory.WriteMemory(Address + 0x58c, value);
}
/// <summary>
/// ! WARN ! Data type un-known, assumed int due to size
/// </summary>
public int Var_Boogie_Wheel_At_Limit
{
get => Memory.ReadMemory<int>(Address + 0x590);
set => Memory.WriteMemory(Address + 0x590, value);
}
/// <summary>
/// ! WARN ! Unkown name!
/// </summary>
public int Unknown_A
{
get => Memory.ReadMemory<int>(Address + 0x594);
set => Memory.WriteMemory(Address + 0x594, value);
}
/// <summary>
/// ! WARN ! Data type un-known, assumed int due to size
/// </summary>
public int Var_Boogie_InvRadius
{
get => Memory.ReadMemory<int>(Address + 0x598);
set => Memory.WriteMemory(Address + 0x598, value);
}
/// <summary>
/// ! WARN ! Unkown name!
/// </summary>
public int Unknown_B
{
get => Memory.ReadMemory<int>(Address + 0x59c);
set => Memory.WriteMemory(Address + 0x59c, value);
}
/// <summary>
/// Sine Run Omega ?
/// </summary>
public float Sinuslauf_Omega
{
get => Memory.ReadMemory<float>(Address + 0x5a0);
set => Memory.WriteMemory(Address + 0x5a0, value);
}
public float Sinuslauf_D
{
get => Memory.ReadMemory<float>(Address + 0x5a4);
set => Memory.WriteMemory(Address + 0x5a4, value);
}
public float Sinuslauf_YSoll_Faktor
{
get => Memory.ReadMemory<float>(Address + 0x5a8);
set => Memory.WriteMemory(Address + 0x5a8, value);
}
/// <summary>
/// Body Lever Arm Z?
/// </summary>
public float Wagenkasten_Hebelarm_Z
{
get => Memory.ReadMemory<float>(Address + 0x5ac);
set => Memory.WriteMemory(Address + 0x5ac, value);
}
public float Wagenkasten_rotZPhys_Omega
{
get => Memory.ReadMemory<float>(Address + 0x5b0);
set => Memory.WriteMemory(Address + 0x5b0, value);
}
public float Wagenkasten_rotZPhys_d
{
get => Memory.ReadMemory<float>(Address + 0x5b4);
set => Memory.WriteMemory(Address + 0x5b4, value);
}
public float Wagenkasten_rotXPhys_Omega
{
get => Memory.ReadMemory<float>(Address + 0x5b8);
set => Memory.WriteMemory(Address + 0x5b8, value);
}
public float Wagenkasten_rotXPhys_d
{
get => Memory.ReadMemory<float>(Address + 0x5bc);
set => Memory.WriteMemory(Address + 0x5bc, value);
}
public float Wagenkasten_TransZPhys_Omega
{
get => Memory.ReadMemory<float>(Address + 0x5c0);
set => Memory.WriteMemory(Address + 0x5c0, value);
}
public float Wagenkasten_TransZPhys_d
{
get => Memory.ReadMemory<float>(Address + 0x5c4);
set => Memory.WriteMemory(Address + 0x5c4, value);
}
public OmsiContactShoe[] ContactShoes
{
get => Memory.ReadMemoryStructArray<OmsiContactShoe>(Address + 0x5c8);
//set => Memory.ReadMemoryStructArray<OmsiContactShoe>(Address + 0x5c8);
}
public D3DVector Front_Window_Vector
{
get => Memory.ReadMemory<D3DVector>(Address + 0x5cc);
set => Memory.WriteMemory(Address + 0x5cc, value);
}
/// <summary>
/// Manufacturer
/// </summary>
public string Hersteller
{
get => Memory.ReadMemoryString(Address + 0x5d8);
set => Memory.WriteMemory(Address + 0x5d8, value);
}
public int Var_HOF
{
get => Memory.ReadMemory<int>(Address + 0x5dc);
set => Memory.WriteMemory(Address + 0x5dc, value);
}
public int Var_File_Schedule
{
get => Memory.ReadMemory<int>(Address + 0x5e0);
set => Memory.WriteMemory(Address + 0x5e0, value);
}
/// <summary>
/// HOF Files?
/// </summary>
public OmsiHOF[] Hoefe
{
get => Memory.ReadMemoryObjArray<OmsiHOF>(Address + 0x5e4);
//set => Memory.WriteMemory(Address + 0x5e4, value);
}
public float FF_Zentr_Max
{
get => Memory.ReadMemory<float>(Address + 0x5e8);
set => Memory.WriteMemory(Address + 0x5e8, value);
}
public float FF_Znetr_MaxSpeed
{
get => Memory.ReadMemory<float>(Address + 0x5ec);
set => Memory.WriteMemory(Address + 0x5ec, value);
}
public float FF_Drag_Max
{
get => Memory.ReadMemory<float>(Address + 0x5f0);
set => Memory.WriteMemory(Address + 0x5f0, value);
}
public float FF_Drag_MaxSpeed
{
get => Memory.ReadMemory<float>(Address + 0x5f4);
set => Memory.WriteMemory(Address + 0x5f4, value);
}
public float FF_Vib_Period
{
get => Memory.ReadMemory<float>(Address + 0x5f8);
set => Memory.WriteMemory(Address + 0x5f8, value);
}
public float FF_Vib_Amp
{
get => Memory.ReadMemory<float>(Address + 0x5fc);
set => Memory.WriteMemory(Address + 0x5fc, value);
}
}
}
Loading

0 comments on commit 794465b

Please sign in to comment.