|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 |
ZO_GAMEPAD_FOOTER_CONTROLS ={ DATA1 = 1, DATA1HEADER = 2, DATA1LOADINGICON = 3, DATA2 = 4, DATA2HEADER = 5, DATA2LOADINGICON = 6, DATA3 = 7, DATA3HEADER = 8, DATA3LOADINGICON = 9,}local EMPTY_TABLE = {}-- Alias the control names to make the code less verbose and more readable.local DATA1 = ZO_GAMEPAD_FOOTER_CONTROLS.DATA1local DATA1HEADER = ZO_GAMEPAD_FOOTER_CONTROLS.DATA1HEADERlocal DATA1LOADINGICON = ZO_GAMEPAD_FOOTER_CONTROLS.DATA1LOADINGICONlocal DATA2 = ZO_GAMEPAD_FOOTER_CONTROLS.DATA2local DATA2HEADER = ZO_GAMEPAD_FOOTER_CONTROLS.DATA2HEADERlocal DATA2LOADINGICON = ZO_GAMEPAD_FOOTER_CONTROLS.DATA2LOADINGICONlocal DATA3 = ZO_GAMEPAD_FOOTER_CONTROLS.DATA3local DATA3HEADER = ZO_GAMEPAD_FOOTER_CONTROLS.DATA3HEADERlocal DATA3LOADINGICON = ZO_GAMEPAD_FOOTER_CONTROLS.DATA3LOADINGICON return objectend { } endendlocal function ProcessData(control, textData, anchorToBaselineControl, anchorToBaselineOffsetX, overrideColor) return false end end if overrideColor then end end if anchorToBaselineControl then else -- This is to make sure there is no gap when a control is missing. end endend return "" end end else internalassert(false, "Unsupported data type. A custom narration function will need to be set for this control that returns a string or number.") end return ""end ProcessData(controls[DATA1HEADER], data.data1HeaderText, controls[DATA1], -ZO_GAMEPAD_DEFAULT_HEADER_DATA_PADDING - loadingIcon1Offset, data.data1HeaderColor) ProcessData(controls[DATA2], data.data2Text, controls[DATA1HEADER], -ZO_GAMEPAD_CONTENT_INSET_X, data.data2Color) ProcessData(controls[DATA2HEADER], data.data2HeaderText, controls[DATA2], -ZO_GAMEPAD_DEFAULT_HEADER_DATA_PADDING - loadingIcon2Offset, data.data2HeaderColor) ProcessData(controls[DATA3], data.data3Text, controls[DATA2HEADER], -ZO_GAMEPAD_CONTENT_INSET_X, data.data3Color) ProcessData(controls[DATA3HEADER], data.data3HeaderText, controls[DATA3], -ZO_GAMEPAD_DEFAULT_HEADER_DATA_PADDING - loadingIcon3Offset, data.data3HeaderColor)end end return nilend -- We narrate these in reverse numerical order because they're laid out from right to left narration:AddNarrationText(GetProcessedNarrationText(controls[DATA3HEADER], data.data3HeaderTextNarration or data.data3HeaderText)) narration:AddNarrationText(GetProcessedNarrationText(controls[DATA3], data.data3TextNarration or data.data3Text)) narration:AddNarrationText(GetProcessedNarrationText(controls[DATA2HEADER], data.data2HeaderTextNarration or data.data2HeaderText)) narration:AddNarrationText(GetProcessedNarrationText(controls[DATA2], data.data2TextNarration or data.data2Text)) narration:AddNarrationText(GetProcessedNarrationText(controls[DATA1HEADER], data.data1HeaderTextNarration or data.data1HeaderText)) narration:AddNarrationText(GetProcessedNarrationText(controls[DATA1], data.data1TextNarration or data.data1Text)) return narrationendendend |