

void SetWaypoint(UInt32 ObjectiveIndex, Single X, Single Y, Boolean Show, Int32 clientIndex = -1)
{
UInt32 level = ReadUInt32(0x00DB5404 + (ObjectiveIndex * 0x2
);
Or_Int32(level + 0xD4, 1 + (Show ? 3 : 0 ));
WriteFloat(level + 0xD8, X);
WriteFloat(level + 0xDC, Y);
if (clientIndex != -1) WriteInt32(level + 0xE4, clientIndex);
}
public static void Or_Int32(UInt32 address, Int32 input)
{
Int32 or = PS3.Extensions.ReadInt32(address);
or |= input;
PS3.Extensions.WriteInt32(address, or);
}


void SetWaypoint(UInt32 ObjectiveIndex, Single X, Single Y, Boolean Show, Int32 clientIndex = -1)
{
UInt32 level = ReadUInt32(0x00DB5404 + (ObjectiveIndex * 0x2
);
Or_Int32(level + 0xD4, 1 + (Show ? 3 : 0 ));
WriteFloat(level + 0xD8, X);
WriteFloat(level + 0xDC, Y);
if (clientIndex != -1) WriteInt32(level + 0xE4, clientIndex);
}
public static void Or_Int32(UInt32 address, Int32 input)
{
Int32 or = PS3.Extensions.ReadInt32(address);
or |= input;
PS3.Extensions.WriteInt32(address, or);
}
struct objective_t // # (sizeof=0x2
{
int state;//0x00-0x04
float origin[3];//0x04-0x10
int entNum, teamNum, unknown, unknown2, unknown3;//0x10, 0x14, 0x18, 0x1C, 0x20 - 0x24
int icon;//0x24 - 0x28
};
*obj = (objective_t*)(0x83375128 + 0x34);
int objStateForName(char*state)
{
if(!strcmp(state,"empty")) return 0;
if(!strcmp(state,"invisiable")) return 2;
if(!strcmp(state,"current")) return 4;
if(!strcmp(state,"active")) return 1;
if(!strcmp(state,"done")) return 3;
}
void objIcon(int objId, char*icon)
{
obj[objId].icon = G_MaterialIndex(icon);
}
void objAdd(int objId, char*state, Vector3&pos, char*icon)
{
if(obj[objId].entNum != 0x7FF)
{
obj[objId].entNum = 0x7FF;
obj[objId].teamNum = 0x00;
}
float origin[3] = { pos.x, pos.y, pos.z };
obj[objId].state = objStateForName(state);
for(int i = 0; i < 3; i++) obj[objId].origin[i] = origin[i];
objIcon(objId, icon);
obj[objId].unknown2 = 0x00;
obj[objId].unknown = 0x01;
}
void objDelete(int objId)
{
if(obj[objId].entNum != 0x7FF)
{
obj[objId].entNum = 0x7FF;
obj[objId].teamNum = 0x00;
}
obj[objId].state = 0x00;
for(int i = 0; i < 3; i++) obj[objId].origin[i] = 0.00f;
obj[objId].entNum = 0x7FF;
obj[objId].teamNum = 0x00;
obj[objId].unknown = 0x01;
obj[objId].unknown2 = 0x00;
obj[objId].icon = 0x00;
}
void objPosition(int objId, Vector3&pos)
{
float origin[3] = { pos.x, pos.y, pos.z };
for(int i = 0; i < 3; i++) obj[objId].origin[i] = origin[i];
}
void objOnEntity(int objId, int ent)
{
obj[objId].entNum = *(int*)ent;
if(*(int*)ent < 0xC)
obj[objId].teamNum = *(int*)(*(int*)(ent + 0x15
+ 0x3060);
else
obj[objId].teamNum = 0x00;
}
void objTeam(int objId, char*team)
{
int teamId;
if(!strcmp(team,"none")) teamId=0;
if(!strcmp(team,"axis")) teamId=1;
if(!strcmp(team,"allies")) teamId=2;
if(!strcmp(team,"spectator")) teamId=3;
else teamId = -1
obj[objId].teamNum = teamId;
}

Copyright © 2026, NextGenUpdate.
All Rights Reserved.