0542

From GTAModding
Jump to: navigation, search

Vice City SET_PROPERTY_AS_OWNED


Description
Adds a property to the property owned stat
Syntax
0542: add_property [int] to_property_own_stats
Parameter
[int]
Property index (see below)

This opcode adds a property to the "Property Owned" stat (GXT key PROPOWN). The number of property is incremented by one and the name is added to the list of properties. Values higher than the ones in the game can be used but only the number of properties will be incremented; the property name will not show up.

Properties

Id Enum GXT key Property
0 PROP_MALIBU STPR_1 The Malibu
1 PROP_PRINTWORKS STPR_2 Print Works
2 PROP_FILMSTUDIO STPR_3 Film Studio
3 PROP_ICECREAM STPR_4 Ice Cream Factory
4 PROP_CARSHOWROOM STPR_5 Car Showroom
5 PROP_TAXICO STPR_6 Taxi Company
6 PROP_BOATYARD STPR_7 Boatyard
7 PROP_STRIPCLUB STPR_8 Pole Position Club
8 PROP_VICEPOINT STPR_9 3321 Vice Point
9 PROP_LINKSVIEW STPR_10 Links View Apartment
10 PROP_EL_SWANKO STPR_11 El Swanko Casa
11 PROP_WASHINGTON_STREET STPR_12 1102 Washington Street
12 PROP_OCEANHEIGHTS STPR_13 Ocean Heights Apartment
13 PROP_SKUMOLESHACK STPR_14 Skumole Shack
14 PROP_HYMAN_CONDO STPR_15 Hyman Condo

Removing an owned property

This supplemental code allows you to remove a property from the property owned stat. It uses Sanny Builder with CLEO for Vice City in an external script (not the main one) and tested on US v1.0.

:opcode_0542_supplement
// [email protected] - input param (property index)
[email protected] += 0xA10AFD  // base address for property owned
05E0: [email protected] = read_memory [email protected] size 1 virtual_protect 0  // get status of property
if
    [email protected] == 1  // if it is owned
then
    05DF: write_memory [email protected] size 1 value 0 virtual_protect 0  // set to not owned
    05E0: [email protected] = read_memory 0x978E08 size 4 virtual_protect 0  // get total owned
    [email protected] -= 1  // decrement by 1
    05DF: write_memory 0x978E08 size 4 value [email protected] virtual_protect 0  // set total to new value
end
05F6: ret 0

Place this line anywhere within the external script:

05F5: call_scm_func @opcode_0542_supplement inputs 1 property_index [int]

Keywords

set, add, increment, property, properties, owned, stat, statistics