ActorCreator: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
(→‎Parameters: use {{check}} template)
 
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
{{Subsystem infobox|name=ActorCreator|is_name_official=0|description=Constructs and initialises actors|init_addr_switch150=00000071011DBAE4|inst_addr_switch150=00000071026521F0}}
{{Subsystem infobox|name=ActorCreator|is_name_official=0|description=Constructs and initialises actors|init_addr_switch150=00000071011DBAE4|inst_addr_switch150=00000071026521F0}}
'''ActorCreator''' is responsible for constructing and setting up actor instances.
'''ActorCreator''' is responsible for constructing and setting up actor instances.
ActorCreator also has a linked list of all actors.


== Creation parameters ==
== Creation parameters ==
Line 29: Line 31:
|-
|-
| 6  
| 6  
| Int64
| Invoker (pointer)
|-
|-
| 7  
| 7  
Line 60: Line 62:
| @M  
| @M  
| matrix34  
| matrix34  
| Position {{check}}
| Position matrix (position, rotate, scale, ??? all-in-one) {{check}}
|-
|-
| @ND  
| @ND  
| bool  
| bool  
| ?
| Set actor flag3 0x1000000 (what does this do?{{check}})
|-
|-
| @RL  
| @RL  
| int  
| int  
| ?
|-
| @RV
| vec3
| ?
| ?
|-
|-
| @D  
| @D  
| int64
| invoker
| ?
| Actor create callback (called with Actor* as argument)
|-
|-
| @I  
| @I  
Line 84: Line 82:
| @DD  
| @DD  
| float  
| float  
| ?
| Display distance
|-
|-
| @TV  
| @TV  
| vec3  
| vec3  
| ?
| Velocity
|-
| @RV
| vec3
| Angular velocity
|-
|-
| @PC  
| @PC  
| bool  
| bool  
| ?
| Set actor flag2 0x200 (keep alive?{{check}})
|-
| @W
| bool
| Set actor flag 0x40 during actor creation/init
|-
| @MU || string || ?
|-
| @DC || bool || ?
|-
| @SB || bool || bitwise OR <code>actor->field_6C</code> with 0x10
 
Used for resident actors, event system actors. Disables unload distance checks. (What other effects does this have?{{check}})
|-
|-
| =AT  
| =AT  
| bool  
| bool  
| ? (special purpose)
| Is AI tree variable (special purpose)
|-
|-
| SharpWeaponJudgeType  
| SharpWeaponJudgeType  
Line 104: Line 118:
| IsDrop  
| IsDrop  
| bool  
| bool  
| Is Loot or Inventory Item{{check}}
| Is an actor drop (e.g. enemy drop)
 
This flag causes the actor to be added to the "Drops" [[ActorLimiter]] list<ref>{{addr|a=0x71011D2D7C|ver=nx-1.5.0}}</ref>.
|-
| IsAmiibo || bool || Is an amiibo drop<ref>https://gist.github.com/leoetlino/ff246cb5c16b12c5af14a899d1cd8ffd</ref>
 
This flag causes the actor to be added to the "amiibo" [[ActorLimiter]] list<ref>{{addr|a=0x71011D2DAC|ver=nx-1.5.0}}</ref>.
|-
|-
| InitBoundBoxPosOffset  
| InitBoundBoxPosOffset  
Line 112: Line 132:
| IsPlayerPut  
| IsPlayerPut  
| bool  
| bool  
| Is Inventory Item Drop?
| Is Inventory Item Drop{{check}}
|-
|-
| IsIncreaseSkeletalSlotNumLimit  
| IsIncreaseSkeletalSlotNumLimit  

Latest revision as of 16:45, 20 May 2020

ActorCreator
Subsystem
Official name No
Description Constructs and initialises actors
Init function Switch 1.5.0: 00000071011DBAE4
Wii U 1.5.0: ???
Instance Switch 1.5.0: 00000071026521F0
Debug only No

ActorCreator is responsible for constructing and setting up actor instances.

ActorCreator also has a linked list of all actors.

Creation parameters

To specify actor parameters such as position, a ring buffer structure is used to store and pass parameters to ActorCreator.

Parameter type

Value Type
0 Int
1 ?
2 Float
3 Bool
4 Vec3
5 String
6 Invoker (pointer)
7 Matrix34

Parameters

Name Type Description
@SB bool ?
@P vec3 Position
@R vec3 Rotate
@S vec3 Scale
@M matrix34 Position matrix (position, rotate, scale, ??? all-in-one) [check]
@ND bool Set actor flag3 0x1000000 (what does this do?[check])
@RL int ?
@D invoker Actor create callback (called with Actor* as argument)
@I int ?
@DD float Display distance
@TV vec3 Velocity
@RV vec3 Angular velocity
@PC bool Set actor flag2 0x200 (keep alive?[check])
@W bool Set actor flag 0x40 during actor creation/init
@MU string ?
@DC bool ?
@SB bool bitwise OR actor->field_6C with 0x10

Used for resident actors, event system actors. Disables unload distance checks. (What other effects does this have?[check])

=AT bool Is AI tree variable (special purpose)
SharpWeaponJudgeType int (Weapon) Minimum modifier tier that a weapon can receive
IsDrop bool Is an actor drop (e.g. enemy drop)

This flag causes the actor to be added to the "Drops" ActorLimiter list[1].

IsAmiibo bool Is an amiibo drop[2]

This flag causes the actor to be added to the "amiibo" ActorLimiter list[3].

InitBoundBoxPosOffset bool ?
IsPlayerPut bool Is Inventory Item Drop[check]
IsIncreaseSkeletalSlotNumLimit bool ?
Life int Life (health)
AttackPower int Attack power
ScaleTime float ?
AtMinDamage int Attack minimum damage
Range float ?
AttackAttrEventKill bool ?
RopeFlag bool Is Rope[check]
RopeAlwaysUpdateRigidParam bool Update Rope Physics[check]
  1. 0x71011D2D7C [nx-1.5.0 executable]
  2. https://gist.github.com/leoetlino/ff246cb5c16b12c5af14a899d1cd8ffd
  3. 0x71011D2DAC [nx-1.5.0 executable]