ActorCreator: Difference between revisions

From ZeldaMods (Breath of the Wild)
Jump to navigation Jump to search
imported>Leoetlino
(Created page with "{{Subsystem infobox|name=ActorCreator|init_addr_switch150=00000071011DBAE4|inst_addr_switch150=00000071026521F0|is_name_official=0|description=Constructs and initialises actor...")
 
 
(21 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{Subsystem infobox|name=ActorCreator|init_addr_switch150=00000071011DBAE4|inst_addr_switch150=00000071026521F0|is_name_official=0|description=Constructs and initialises actors}}
{{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 6: Line 8:


=== Parameter type ===
=== Parameter type ===
{|class="wikitable"
{| class="wikitable"
! Value !! Type
! Value  
! Type
|-
|-
| 0 || Int
| 0  
| Int
|-
|-
| 1 || ?
| 1  
| ?
|-
|-
| 2 || Float
| 2  
| Float
|-
|-
| 3 || Bool
| 3  
| Bool
|-
|-
| 4 || Vec3
| 4  
| Vec3
|-
|-
| 5 || String
| 5  
| String
|-
|-
| 6 || Int64
| 6  
| Invoker (pointer)
|-
|-
| 7 || Matrix34
| 7  
| Matrix34
|}
|}


=== Parameters ===
=== Parameters ===
{{expand section}}
{{expand section}}
{|class="wikitable sortable"
{| class="wikitable sortable"
! Name !! Type !! Description
! Name  
! Type  
! Description
|-
| @SB
| bool
| ?
|-
| @P
| vec3
| Position
|-
| @R
| vec3
| Rotate
|-
| @S
| vec3
| Scale
|-
|-
| @SB || bool || ?
| @M
| matrix34
| Position matrix (position, rotate, scale, ??? all-in-one) {{check}}
|-
|-
| @P || vec3 || Position
| @ND
| bool
| Set actor flag3 0x1000000 (what does this do?{{check}})
|-
|-
| @R || vec3 || Rotate
| @RL
| int
| ?
|-
|-
| @S || vec3 || Scale
| @D
| invoker
| Actor create callback (called with Actor* as argument)
|-
|-
| @M || matrix34 || Position (?)
| @I
| int
| ?
|-
|-
| @ND || bool || ?
| @DD
| float
| Display distance
|-
|-
| @RL || int || ?
| @TV
| vec3
| Velocity
|-
|-
| @RV || vec3 || ?
| @RV  
| vec3
| Angular velocity
|-
|-
| @D || int64 || ?
| @PC
| bool
| Set actor flag2 0x200 (keep alive?{{check}})
|-
|-
| @I || int || ?
| @W
| bool
| Set actor flag 0x40 during actor creation/init
|-
|-
| @DD || float || ?
| @MU || string || ?
|-
|-
| @TV || vec3 || ?
| @DC || bool || ?
|-
|-
| @PC || 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 || bool || ? (special purpose)
| =AT  
| bool  
| Is AI tree variable (special purpose)
|-
|-
| SharpWeaponJudgeType || int || (Weapon) Minimum modifier tier that a weapon can receive
| SharpWeaponJudgeType  
| int  
| (Weapon) Minimum modifier tier that a weapon can receive
|-
|-
| IsDrop || bool || ?
| IsDrop  
| bool
| 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>.
|-
|-
| InitBoundBoxPosOffset || bool || ?
| 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>.
|-
|-
| IsPlayerPut || bool || ?
| InitBoundBoxPosOffset
| bool  
| ?
|-
|-
| IsIncreaseSkeletalSlotNumLimit || bool || ?
| IsPlayerPut
| bool  
| Is Inventory Item Drop{{check}}
|-
|-
| Life || int || Life (health)
| IsIncreaseSkeletalSlotNumLimit
| bool
| ?
|-
|-
| AttackPower || int || Attack power
| Life
| int  
| Life (health)
|-
|-
| ScaleTime || float || ?
| AttackPower
| int
| Attack power
|-
|-
| AtMinDamage || int || Attack minimum damage
| ScaleTime
| float
| ?
|-
|-
| Range || float || ?
| AtMinDamage
| int
| Attack minimum damage
|-
|-
| AttackAttrEventKill || bool || ?
| Range
| float
| ?
|-
|-
| RopeFlag || bool || ?
| AttackAttrEventKill
| bool  
| ?
|-
|-
| RopeAlwaysUpdateRigidParam || bool || ?
| RopeFlag
| bool
| Is Rope{{check}}
|-
| RopeAlwaysUpdateRigidParam  
| bool  
| Update Rope Physics{{check}}
|}
|}
[[Category:Internals]]
[[Category:Internals]]
[[Category:Subsystems (BotW)]]
[[Category:Subsystems (BotW)]]

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]