Datatype Conversions: Difference between revisions
imported>Alhifar |
imported>Fredg1 path_id_to_name and path_name_to_id |
||
(22 intermediate revisions by 7 users not shown) | |||
Line 1: | Line 1: | ||
== | <p>These functions will convert one type of data to another.</p> | ||
{{flink|boolean|to_boolean|any|desc=Converts any datatype to a boolean.}} | |||
{{flink|bounty|to_bounty|string|desc=Converts a string to a bounty.}} | |||
{{flink|class|to_class|string|desc=Converts a string to a class.}} | |||
{{flink|effect|to_effect|int}} | |||
{{flink|effect|to_effect|string}} | |||
{{flink|effect|to_effect|skill|desc=Converts an int, string or skill to an effect.}} | |||
{{flink|element|to_element|string|desc=Converts a string to an element.}} | |||
{{flink|familiar|to_familiar|int}} | |||
{{flink|familiar|to_familiar|string|desc=Converts an int or a string to a familiar.}} | |||
{{flink|float|to_float|any|desc=Converts from any datatype to a float.}} | |||
{{flink|int|path_name_to_id|string}} | |||
{{flink|int|to_int|any|desc=Converts from any datatype to an int.}} | |||
{{flink|item|to_item|string}} | |||
{{flink|item|to_item|int}} | |||
{{flink|item|to_item|string|int|desc=Converts an int or a string to an item (optionally allowing plural strings with both parameters).}} | |||
{{flink|location|to_location|string|desc=Converts a string to a location.}} | |||
{{flink|monster|to_monster|string|desc=Converts a string to a monster.}} | |||
{{flink|phylum|to_phylum|string|desc=Converts a string to a phylum.}} | |||
{{flink|string|to_plural|item|desc=Converts an item into the string value of its plural.}} | |||
{{flink|skill|to_skill|int}} | |||
{{flink|skill|to_skill|string}} | |||
{{flink|skill|to_skill|effect|desc=Converts an int, string or effect to a skill.}} | |||
{{flink|slot|to_slot|item}} | |||
{{flink|slot|to_slot|string|desc=Converts an item or string to a slot.}} | |||
{{flink|stat|to_stat|string|desc=Converts a string to a stat.}} | |||
{{flink|string|path_id_to_name|int}} | |||
{{flink|string|to_string|any|desc=Converts any datatype to a string.}} | |||
{{flink|thrall|to_thrall|string}} | |||
{{flink|thrall|to_thrall|int|desc=Converts a string or int to a thrall.}} | |||
== Historical note == | |||
ASH did not originally support polymorphic functions, so it was not possible to have (for example) a single '''to_string(any)''' function that worked on any datatype. Instead, there were separate '''int_to_string(int)''', '''item_to_string(item)''', etc. functions. You may see these used in older scripts, and in fact they still work. The rule is that if a function name is not otherwise defined anywhere, and it ends with one of the modern type conversion function names shown above, it is treated as a call to the modern function. No check is made to verify that the chopped-off portion of the old function name actually matches the type of its parameter. | |||
[[Category:Scripting]] | |||
Latest revision as of 00:14, 8 June 2020
These functions will convert one type of data to another.
boolean to_boolean( any )
bounty to_bounty( string )
class to_class( string )
effect to_effect( int )
effect to_effect( string )
effect to_effect( skill )
element to_element( string )
familiar to_familiar( int )
familiar to_familiar( string )
float to_float( any )
int to_int( any )
item to_item( string )
item to_item( int )
location to_location( string )
monster to_monster( string )
phylum to_phylum( string )
string to_plural( item )
skill to_skill( int )
skill to_skill( string )
skill to_skill( effect )
slot to_slot( item )
slot to_slot( string )
stat to_stat( string )
string path_id_to_name( int )
string to_string( any )
thrall to_thrall( string )
thrall to_thrall( int )
Historical note
ASH did not originally support polymorphic functions, so it was not possible to have (for example) a single to_string(any) function that worked on any datatype. Instead, there were separate int_to_string(int), item_to_string(item), etc. functions. You may see these used in older scripts, and in fact they still work. The rule is that if a function name is not otherwise defined anywhere, and it ends with one of the modern type conversion function names shown above, it is treated as a call to the modern function. No check is made to verify that the chopped-off portion of the old function name actually matches the type of its parameter.