![]() ![]() |
![]() ![]() 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. |
![]() Post #2 | |
![]() Coding like a Rockstar! ![]() 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. -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() 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")? |
![]() Post #4 | |
![]() Coding like a Rockstar! ![]() 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 ![]() -------------------- | CLEO 4.3.22 | A?i?a?o?3D | UI SDK | Black Market Mod 1.0.1 | GInput 0.3 | Cheat Keyboard | Tactile Cheat Activation | Stream Ini Extender 0.7 | SuperVars | ScrDebug | Vigilante Justice: San Andreas | |
![]() 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 |
![]() ![]() |