Files
tww/include/m_Do/m_Do_controller_pad.h
T
Mm2PL 4d1cb33cd8 d_attention 100% (#701)
* Add helper functions for d_attention

* Copy and adapt code from TP

* Move for better matching layout

* Clean up includes for d_attention.cpp

* Give dAttention_c::nextAttention a return

* Use enums in dAttention_c::getActionBtnB and slight reformat

* Change return types for comparison code to match
I don't love this

* Implement dAttList_c::calcWeight

* Implement dAttention_c::sortList

* Implement dAttDraw_c::draw

* Implement dAttDraw_c::setAnm

* Implement dAttention_c::chaseAttention

* Implement judgement related functions

* Implement dAttention_c::Run and runDrawProc

* Implement dAttention_c::Draw

Actually finish Draw

* Looks like dAttention_c::stockAttention had an unused return value

* Give d_Attention_c::mLockOnState an enum

* Rename field_0x02c to mDrawAttnPos based on TP

* Add comments for fields of d_attention

* Give d_attention's flags an enum (although without names)

* Undo type change for dAttention_c::{chk,set,clr}Flag

Co-Authored-By: LagoLunatic <LagoLunatic@users.noreply.github.com>

* Do not spell the `this` pointer

Co-Authored-By: LagoLunatic <LagoLunatic@users.noreply.github.com>

* Deal with resource enums and inlines

* Move PLAYER_STATUS_FLAG_MAGIC_JUDGEMENT to daPy__PlayerStatus0 enum

* Use inlines and macros

* Add mDoCPd_L_LOCK_BUTTON inline, debug maps claim it exists

Nothing else uses it

* Update TODO comments

* Debug maps claim runXyCheckCB was used but it only makes sense if modified

* Use dComIfGp_getPlayer instead of directly indexing the array

* Locate a few more inlines

* Do not cast to AttentionFlags enum type

* Update configure script

---------

Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
2025-04-27 15:12:46 -04:00

44 lines
2.3 KiB
C

#ifndef M_DO_CONTROLLER_PAD_H
#define M_DO_CONTROLLER_PAD_H
#include "JSystem/JUtility/JUTGamePad.h"
#include "SSystem/SComponent/c_API_controller_pad.h"
extern JUTGamePad* g_mDoCPd_gamePad[4];
extern interface_of_controller_pad g_mDoCPd_cpadInfo[4];
#define CPad_CHECK_HOLD_A(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.a)
#define CPad_CHECK_HOLD_B(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.b)
#define CPad_CHECK_HOLD_X(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.x)
#define CPad_CHECK_HOLD_Y(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.y)
#define CPad_CHECK_HOLD_Z(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.z)
#define CPad_CHECK_HOLD_START(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.start)
#define CPad_CHECK_HOLD_L(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.l)
#define CPad_CHECK_HOLD_R(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.r)
#define CPad_CHECK_HOLD_UP(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.up)
#define CPad_CHECK_HOLD_DOWN(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.down)
#define CPad_CHECK_HOLD_RIGHT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.right)
#define CPad_CHECK_HOLD_LEFT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonHold.left)
#define CPad_CHECK_TRIG_A(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.a)
#define CPad_CHECK_TRIG_B(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.b)
#define CPad_CHECK_TRIG_X(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.x)
#define CPad_CHECK_TRIG_Y(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.y)
#define CPad_CHECK_TRIG_Z(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.z)
#define CPad_CHECK_TRIG_START(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.start)
#define CPad_CHECK_TRIG_L(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.l)
#define CPad_CHECK_TRIG_R(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.r)
#define CPad_CHECK_TRIG_UP(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.up)
#define CPad_CHECK_TRIG_DOWN(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.down)
#define CPad_CHECK_TRIG_RIGHT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.right)
#define CPad_CHECK_TRIG_LEFT(padNo) (g_mDoCPd_cpadInfo[padNo].mButtonTrig.left)
int mDoCPd_Create();
int mDoCPd_Read();
inline bool mDoCPd_L_LOCK_BUTTON(unsigned long i_playerNo) {
return g_mDoCPd_cpadInfo[i_playerNo].mHoldLockL;
}
#endif