/**
* Ashita - Copyright ( c ) 2014 - 2021 atom0s [ atom0s @ live . com ]
*
* This work is licensed under the Creative Commons Attribution - NonCommercial - NoDerivatives 4.0 International License .
* To view a copy of this license , visit http : //creativecommons.org/licenses/by-nc-nd/4.0/ or send a letter to
* Creative Commons , PO Box 1866 , Mountain View , CA 94042 , USA .
*
* By using Ashita , you agree to the above license and its terms .
*
* Attribution - You must give appropriate credit , provide a link to the license and indicate if changes were
* made . You must do so in any reasonable manner , but not in any way that suggests the licensor
* endorses you or your use .
*
* Non - Commercial - You may not use the material ( Ashita ) for commercial purposes .
*
* No - Derivatives - If you remix , transform , or build upon the material ( Ashita ) , you may not distribute the
* modified material . You are , however , allowed to submit the modified works back to the original
* Ashita project in attempt to have it added to the original project .
*
* You may not apply legal terms or technological measures that legally restrict others
* from doing anything the license permits .
*
* No warranties are given .
*/
# ifndef __ASHITA_AS_FFXI_TARGET_INCLUDED__
# define __ASHITA_AS_FFXI_TARGET_INCLUDED__
# if defined (_MSC_VER) && (_MSC_VER >= 1020)
# pragma once
# endif
namespace Ashita {
namespace FFXI {
struct target_t
{
uint32_t TargetIndex ; // The current target index.
uint32_t TargetServerId ; // The current target server id.
uintptr_t TargetEntityPointer ; // The current target entity pointer.
uintptr_t TargetWarpPointer ; // The current target warp pointer.
uint32_t Unknown0000 [ 4 ] ; // Unknown
uint8_t TargetVisible ; // 0/1 if the target is set and visible.
uint8_t Unknown0001 [ 3 ] ; // Unknown (Booleans)
uint16_t TargetMask ; // The current target mask.
uint16_t TargetCalculatedId ; // The targets calculated id.
uint32_t SubTargetIndex ; // The current sub-target index.
uint32_t SubTargetServerId ; // The current sub-target server id.
uintptr_t SubTargetEntityPointer ; // The current sub-target entity pointer.
uintptr_t SubTargetWarpPointer ; // The current sub-target warp pointer.
uint32_t Unknown0002 [ 4 ] ; // Unknown
uint8_t SubTargetVisible ; // 0/1 if the sub-target is set and visible.
uint8_t Unknown0003 [ 3 ] ; // Unknown (Booleans)
uint16_t SubTargetMask ; // The current sub-target mask.
uint8_t Unknown0004 [ 4 ] ; // Unknown
uint8_t SubTargetActive ; // 1 if the main target is set and the game is making use the sub-target entry.
uint8_t TargetDeactivate ; // If set to 1, will undo one step of the targeting windows.
uint8_t Unknown0005 [ 8 ] ; // Unknown (Involves graphics related things, such as blinking the targeted entity.)
uint8_t IsLockedOn ; // 0/1 if the target is currently locked on. (Low bit 0x00 and 0x01.)
uint8_t Unknown0006 [ 3 ] ; // Unknown
uint32_t TargetSelectionMask ; // The selection mask used to determine what can be targeted with the current action.
uint8_t Unknown0007 [ 16 ] ; // Unknown
uint8_t IsMenuOpen ; // 0/1 if the menu is open. (ie. selecting a spell on a target.) 74
} ;
struct targetwindow_t
{
uintptr_t TargetWindowVTablePointer ; // The VTable pointer to the target window class.
uint32_t Unknown0000 ; // Unknown
uint32_t TargetWindowPointer ; // Pointer to the target window object.
uint32_t Unknown0001 ; // Unknown
uint8_t Unknown0002 ; // Unknown
uint8_t Unknown0003 [ 3 ] ; // Unknown
int8_t Name [ 48 ] ; // The targets name.
uint32_t Unknown0004 ; // Unknown
uint32_t TargetEntityPointer ; // The targets entity pointer.
uint16_t FrameOffsetX ; // The target window frame x offset.
uint16_t FrameOffsetY ; // The target window frame y offset.
uint32_t IconPosition ; // The target window frame icon position.
uint32_t Unknown0005 ; // Unknown
uint32_t Unknown0006 ; // Unknown
uint32_t Unknown0007 ; // Unknown
uint32_t TargetServerId ; // The targets server id.
uint8_t HealthPercent ; // The targets health percent.
uint8_t DeathFlag ; // Dims the health bar when target is dead..
uint8_t ReraiseFlag ; // Dims the health bar when target is reraising.. (Death flag must be set!)
uint8_t Unknown0008 ; // Unknown
uint16_t Unknown0009 ; // Unknown
uint8_t Unknown0010 ; // Toggles 0 -> 1 when first targeting..
} ;
} ; // namespace FFXI
} ; // namespace Ashita
# endif // __ASHITA_AS_FFXI_TARGET_INCLUDED__