Coding

 Reply to this postStart new topic

Adding new map icons?

Sweet
post Feb 13 2011, 02:56 PM
Post #1


Ameteur Member

Posts: 48
Joined: 19-August 10



Although that on sanny's forums nobody answered, i post it here.
As i thought, there's some array in CTexture size of 0x100 (256 bytes) used for 'storage' icons list.
Here it is:
CODE
00000000 HudTextures     struc; (sizeof=0x100)
00000000 empty1          dd ?                   ; начало массива иконок
00000004 empty2          dd ?
00000008 radar_centre    dd ?
0000000C arrow           dd ?
00000010 radar_north     dd ?
00000014 radar_airYard   dd ?
00000018 radar_ammugun   dd ?
0000001C radar_barbers   dd ?
00000020 radar_BIGSMOKE  dd ?
00000024 radar_boatyard  dd ?
00000028 radar_burgerShot dd ?
0000002C radar_bulldozer dd ?
00000030 radar_CATALINAPINK dd ?
00000034 radar_CESARVIAPANDO dd ?
00000038 radar_chicken   dd ?
0000003C radar_CJ        dd ?
00000040 radar_CRASH1    dd ?
00000044 radar_diner     dd ?
00000048 radar_emmetGun  dd ?
0000004C radar_enemyAttack dd ?
00000050 radar_fire      dd ?
00000054 radar_girlfriend dd ?
00000058 radar_hospitaL  dd ?
0000005C radar_LocoSyndicate dd ?
00000060 radar_MADDOG    dd ?
00000064 radar_mafiaCasino dd ?
00000068 radar_MCSTRAP   dd ?
0000006C radar_modGarage dd ?
00000070 radar_OGLOC     dd ?
00000074 radar_pizza     dd ?
00000078 radar_police    dd ?
0000007C radar_propertyG dd ?
00000080 radar_propertyR dd ?
00000084 radar_race      dd ?
00000088 radar_RYDER     dd ?
0000008C radar_saveGame  dd ?
00000090 radar_school    dd ?
00000094 radar_qmark     dd ?
00000098 radar_SWEET     dd ?
0000009C radar_tattoo    dd ?
000000A0 radar_THETRUTH  dd ?
000000A4 radar_waypoint  dd ?
000000A8 radar_TorenoRanch dd ?
000000AC radar_triads    dd ?
000000B0 radar_triadsCasino dd ?
000000B4 radar_tshirt    dd ?
000000B8 radar_WOOZIE    dd ?
000000BC radar_ZERO      dd ?
000000C0 radar_dateDisco dd ?
000000C4 radar_dateDrink dd ?
000000C8 radar_dateFood  dd ?
000000CC radar_truck     dd ?
000000D0 radar_cash      dd ?
000000D4 radar_flag      dd ?
000000D8 radar_gym       dd ?
000000DC radar_impound   dd ?
000000E0 radar_light     dd ?
000000E4 radar_runway    dd ?
000000E8 radar_gangB     dd ?
000000EC radar_gangP     dd ?
000000F0 radar_gangY     dd ?
000000F4 radar_gangN     dd ?
000000F8 radar_gangG     dd ?
000000FC radar_spray     dd ?
00000100 HudTextures     ends
00000100
00000000; ---------------------------------------------------------------------------
00000000

And something in 0xBAA250 -
CODE
.data:00BAA250    ; RwTexture *radarIcons
.data:00BAA250     _radarIcons     HudTextures <?>        ; DATA XREF: _reloadRadarIcons+1Ao
.data:00BAA250                                            ; sub_5828A0+5B1o
.data:00BAA250                                            ; sub_585940+1o
.data:00BAA250                                            ; sub_84F0D0+Eo ...
.data:00BAA350     byte_BAA350     db ?                   ; DATA XREF: sub_5828A0+5F2r
.data:00BAA350                                            ; sub_5828A0+5FBw
.data:00BAA350                                            ; sub_5828A0:loc_582EA4w
.data:00BAA350                                            ; sub_5828A0+650r ...

And more about iconsList -
CODE
.data:008D0720     _radarIconList  dd offset gta_empty_string
.data:008D0720                                            ; DATA XREF: _reloadRadarIcons+1Fo
.data:008D0724                     dd offset gta_empty_string
.data:008D0728                     dd offset gta_empty_string
.data:008D072C                     dd offset gta_empty_string
.data:008D0730                     dd offset aRadar_centre; "radar_centre"
.data:008D0734                     dd offset gta_empty_string
.data:008D0738                     dd offset aArrow       ; "arrow"
.data:008D073C                     dd offset gta_empty_string
.data:008D0740                     dd offset aRadar_north ; "radar_north"
.data:008D0744                     dd offset gta_empty_string
.data:008D0748                     dd offset aRadar_airyard; "radar_airYard"
.data:008D074C                     dd offset gta_empty_string
.data:008D0750                     dd offset aRadar_ammugun; "radar_ammugun"
.data:008D0754                     dd offset gta_empty_string
.data:008D0758                     dd offset aRadar_barbers; "radar_barbers"
.data:008D075C                     dd offset gta_empty_string
.data:008D0760                     dd offset aRadar_bigsmoke; "radar_BIGSMOKE"
.data:008D0764                     dd offset gta_empty_string
.data:008D0768                     dd offset aRadar_boatyard; "radar_boatyard"
.data:008D076C                     dd offset gta_empty_string
.data:008D0770                     dd offset aRadar_burgershot; "radar_burgerShot"
.data:008D0774                     dd offset gta_empty_string
.data:008D0778                     dd offset aRadar_bulldozer; "radar_bulldozer"
.data:008D077C                     dd offset gta_empty_string
.data:008D0780                     dd offset aRadar_catalinapink; "radar_CATALINAPINK"
.data:008D0784                     dd offset gta_empty_string
.data:008D0788                     dd offset aRadar_cesarviapando; "radar_CESARVIAPANDO"
.data:008D078C                     dd offset gta_empty_string
.data:008D0790                     dd offset aRadar_chicken; "radar_chicken"
.data:008D0794                     dd offset gta_empty_string
.data:008D0798                     dd offset aRadar_cj    ; "radar_CJ"
.data:008D079C                     dd offset gta_empty_string
.data:008D07A0                     dd offset aRadar_crash1; "radar_CRASH1"
.data:008D07A4                     dd offset gta_empty_string
.data:008D07A8                     dd offset aRadar_diner ; "radar_diner"
.data:008D07AC                     dd offset gta_empty_string
.data:008D07B0                     dd offset aRadar_emmetgun; "radar_emmetGun"
.data:008D07B4                     dd offset gta_empty_string
.data:008D07B8                     dd offset aRadar_enemyattack; "radar_enemyAttack"
.data:008D07BC                     dd offset gta_empty_string
.data:008D07C0                     dd offset aRadar_fire  ; "radar_fire"
.data:008D07C4                     dd offset gta_empty_string
.data:008D07C8                     dd offset aRadar_girlfriend; "radar_girlfriend"
.data:008D07CC                     dd offset gta_empty_string
.data:008D07D0                     dd offset aRadar_hostpital; "radar_hostpitaL"
.data:008D07D4                     dd offset gta_empty_string
.data:008D07D8                     dd offset aRadar_locosyndicate; "radar_LocoSyndicate"
.data:008D07DC                     dd offset gta_empty_string
.data:008D07E0                     dd offset aRadar_maddog; "radar_MADDOG"
.data:008D07E4                     dd offset gta_empty_string
.data:008D07E8                     dd offset aRadar_mafiacasino; "radar_mafiaCasino"
.data:008D07EC                     dd offset gta_empty_string
.data:008D07F0                     dd offset aRadar_mcstrap; "radar_MCSTRAP"
.data:008D07F4                     dd offset gta_empty_string
.data:008D07F8                     dd offset aRadar_modgarage; "radar_modGarage"
.data:008D07FC                     dd offset gta_empty_string
.data:008D0800                     dd offset aRadar_ogloc ; "radar_OGLOC"
.data:008D0804                     dd offset gta_empty_string
.data:008D0808                     dd offset aRadar_pizza ; "radar_pizza"
.data:008D080C                     dd offset gta_empty_string
.data:008D0810                     dd offset aRadar_police; "radar_police"
.data:008D0814                     dd offset gta_empty_string
.data:008D0818                     dd offset aRadar_propertyg; "radar_propertyG"
.data:008D081C                     dd offset gta_empty_string
.data:008D0820                     dd offset aRadar_propertyr; "radar_propertyR"
.data:008D0824                     dd offset gta_empty_string
.data:008D0828                     dd offset aRadar_race  ; "radar_race"
.data:008D082C                     dd offset gta_empty_string
.data:008D0830                     dd offset aRadar_ryder ; "radar_RYDER"
.data:008D0834                     dd offset gta_empty_string
.data:008D0838                     dd offset aRadar_savegame; "radar_saveGame"
.data:008D083C                     dd offset gta_empty_string
.data:008D0840                     dd offset aRadar_school; "radar_school"
.data:008D0844                     dd offset gta_empty_string
.data:008D0848                     dd offset aRadar_qmark ; "radar_qmark"
.data:008D084C                     dd offset gta_empty_string
.data:008D0850                     dd offset aRadar_sweet ; "radar_SWEET"
.data:008D0854                     dd offset gta_empty_string
.data:008D0858                     dd offset aRadar_tattoo; "radar_tattoo"
.data:008D085C                     dd offset gta_empty_string
.data:008D0860                     dd offset aRadar_thetruth; "radar_THETRUTH"
.data:008D0864                     dd offset gta_empty_string
.data:008D0868                     dd offset aRadar_waypoint; "radar_waypoint"
.data:008D086C                     dd offset gta_empty_string
.data:008D0870                     dd offset aRadar_torenoranch; "radar_TorenoRanch"
.data:008D0874                     dd offset gta_empty_string
.data:008D0878                     dd offset aRadar_triads; "radar_triads"
.data:008D087C                     dd offset gta_empty_string
.data:008D0880                     dd offset aRadar_triadscasino; "radar_triadsCasino"
.data:008D0884                     dd offset gta_empty_string
.data:008D0888                     dd offset aRadar_tshirt; "radar_tshirt"
.data:008D088C                     dd offset gta_empty_string
.data:008D0890                     dd offset aRadar_woozie; "radar_WOOZIE"
.data:008D0894                     dd offset gta_empty_string
.data:008D0898                     dd offset aRadar_zero  ; "radar_ZERO"
.data:008D089C                     dd offset gta_empty_string
.data:008D08A0                     dd offset aRadar_datedisco; "radar_dateDisco"
.data:008D08A4                     dd offset gta_empty_string
.data:008D08A8                     dd offset aRadar_datedrink; "radar_dateDrink"
.data:008D08AC                     dd offset gta_empty_string
.data:008D08B0                     dd offset aRadar_datefood; "radar_dateFood"
.data:008D08B4                     dd offset gta_empty_string
.data:008D08B8                     dd offset aRadar_truck ; "radar_truck"
.data:008D08BC                     dd offset gta_empty_string
.data:008D08C0                     dd offset aRadar_cash  ; "radar_cash"
.data:008D08C4                     dd offset gta_empty_string
.data:008D08C8                     dd offset aRadar_flag  ; "radar_flag"
.data:008D08CC                     dd offset gta_empty_string
.data:008D08D0                     dd offset aRadar_gym   ; "radar_gym"
.data:008D08D4                     dd offset gta_empty_string
.data:008D08D8                     dd offset aRadar_impound; "radar_impound"
.data:008D08DC                     dd offset gta_empty_string
.data:008D08E0                     dd offset aRadar_light ; "radar_light"
.data:008D08E4                     dd offset gta_empty_string
.data:008D08E8                     dd offset aRadar_runway; "radar_runway"
.data:008D08EC                     dd offset gta_empty_string
.data:008D08F0                     dd offset aRadar_gangb ; "radar_gangB"
.data:008D08F4                     dd offset gta_empty_string
.data:008D08F8                     dd offset aRadar_gangp ; "radar_gangP"
.data:008D08FC                     dd offset gta_empty_string
.data:008D0900                     dd offset aRadar_gangy ; "radar_gangY"
.data:008D0904                     dd offset gta_empty_string
.data:008D0908                     dd offset aRadar_gangn ; "radar_gangN"
.data:008D090C                     dd offset gta_empty_string
.data:008D0910                     dd offset aRadar_gangg ; "radar_gangG"
.data:008D0914                     dd offset gta_empty_string
.data:008D0918                     dd offset aRadar_spray ; "radar_spray"
.data:008D091C                     dd offset gta_empty_string

Is there any way to change icons array size and add my own icon.
Go to the top of the page
 
+Quote Post
Deji
post Feb 13 2011, 03:53 PM
Post #2


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



Changing the array size wouldn't be possible without editing the whole .exe (which would invalidate offsets anyway).

However, changing the pointers to this array to a new, custom array is possible.


But I've figured it should also be possible by a form of aDMA. However, the bigger problem is how the map icons are used in the menu map. In the function at 0x5828A0 there's a switch statement, which manually decides which GXT to use for each map icon (note that it uses negative ID's for the non-textured blips). It would be much harder to reimplement that same functionality.


Here's some code from previous attempts:
SANNY
    0390: load_txd_dictionary 'LD_BEAT'
    038F: load_texture "DOWN" as 1
    0AA5: call 0x7316A0 num_params 0 pop 0
    0AC6: 0@ = label @aTXD_LD_BEAT offset
    0AA7: call 0x731850 num_params 1 pop 1 0@ 0@
    0AA5: call 0x7319C0 num_params 1 pop 1 0@
    0AC6: 0@ = label @MyTexturePointer offset
    0AC6: 1@ = label @pTextures offset
    0AC6: 2@ = label @Texture_DOWN offset
    000A: 1@ += 4
    0A8C: write_memory 1@ size 4 value 2@ virtual_protect 0
    000E: 1@ -= 4
    0AA6: call_method 0x727270 struct 0xBAA250 num_params 1 pop 1 1@
    000A: 1@ += 8
    0AA6: call_method 0x727270 struct 0xBAA254 num_params 1 pop 1 1@
    0AC6: 1@ = label @MyTexturePointer offset
    000E: 1@ -= 0xBAA250
    0016: 1@ /= 4
    0570: 1@ = create_asset_radar_marker_with_icon 1@ at 0.0 0.0 0.0
[...]
:aTXD_LD_BEAT
hex
"LD_BEAT" 00
end
:MyTexturePointer
hex
00000000
end
:pTextures
hex
00000000
00000000
00000000
end
:Texture_DOWN
hex
"down" 00
end


I've not had the time to finish yet. It would, of course, be easier to replace existing map icons than to add new, but I'll still try.


--------------------
Go to the top of the page
 
+Quote Post
Sweet
post Feb 13 2011, 04:36 PM
Post #3


Ameteur Member

Posts: 48
Joined: 19-August 10



Well, it just creates a white square (which means the texture id is not recognized).
There is now needs to write own GXT string (like "icon_barbers" or "icon_airYard")?
Go to the top of the page
 
+Quote Post
Deji
post Feb 13 2011, 04:49 PM
Post #4


Coding like a Rockstar!

Group Icon

Posts: 1,468
From: ???
Joined: 28-May 09



CODE
LG_01        // Player position
LG_02        // Air yard
LG_03        // Ammu-Nation
LG_04        // Barbers
LG_05        // Big Smoke
LG_06        // Boat Yard
LG_07        // Burger Shot
LG_08        // Catalina
LG_09        // Catalina
LG_10        // Cesar
LG_11        // Cluckin Bell
LG_12        // CJ


etc.


Hmm, with the newest version of CLEO 4 (which fixes crashes in Ryosuke's Missile Script - but doesn't seem to enable the functionality) this crashes my game. I remember the white square thing and I had a solution but can't quite remember what it was.. or what most of what I wrote was for tongue.gif


--------------------
Go to the top of the page
 
+Quote Post
DK22
post Mar 26 2011, 07:05 PM
Post #5


Member

Posts: 197
From: Liberty City, Shoreside
Joined: 15-July 10



So, it is real to get a pointer to loaded texture with 0390 and 038F?
That's just crashed the game...
SANNY
{$CLEO .cs}
{$I stdconsts.txt}
0000:
while not player.Defined(0)
    wait 0
end
while 8ab0: vk_M
    wait 0
end
0390: load_txd_dictionary 'LD_BEAT'
038F: load_texture "DOWN" as 1
0AA5: call 0x7316A0 num_params 0 pop 0
0AC6: 0@ = label @aTXD_LD_BEAT offset
0AA7: call 0x731850 num_params 1 pop 1 0@ 0@
0AA5: call 0x7319C0 num_params 1 pop 1 0@
0AC6: 0@ = label @MyTexturePointer offset
0AC6: 1@ = label @pTextures offset
0AC6: 2@ = label @Texture_DOWN offset
000A: 1@ += 4
0A8C: write_memory 1@ size 4 value 2@ virtual_protect 0
000E: 1@ -= 4
0AA6: call_method 0x727270 struct 0xBAA250 num_params 1 pop 1 1@
000A: 1@ += 8
0AA6: call_method 0x727270 struct 0xBAA254 num_params 1 pop 1 1@
0AC6: 1@ = label @MyTexturePointer offset
actor.StorePos($player_actor, 10@, 11@, 12@)
0AC7: 3@ = var 10@ offset
while true
    wait 0  
    0AA5: call 0x707390 params 16 pop 16 0 0 0x3F800000 0 0x447A0000 255 255 255 255 0xC1400000 0 0 0x41400000 3@ 1@ 2  
end

:aTXD_LD_BEAT
hex
"LD_BEAT" 00
end
:MyTexturePointer
hex
00000000
end
:pTextures
hex
00000000
00000000
00000000
end
:Texture_DOWN
hex
"down" 00
end


This post has been edited by DK22: Mar 26 2011, 09:05 PM
Go to the top of the page
 
+Quote Post
Reply to this postStart new topic

3 User(s) are reading this topic (3 Guests and 0 Anonymous Users)
0 Members: