Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni5 pagine

Main - Doupdate - HandleChat - After

Il documento descrive il metodo 'DoUpdate_HandleChat' del gioco Terraria, che gestisce l'input della chat del giocatore. Include controlli per l'input da tastiera e gamepad, la gestione del testo della chat e l'invio dei messaggi. Viene anche trattata la logica per il comando della chat e il suono associato all'invio dei messaggi.

Caricato da

gavanxmckee
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
6 visualizzazioni5 pagine

Main - Doupdate - HandleChat - After

Il documento descrive il metodo 'DoUpdate_HandleChat' del gioco Terraria, che gestisce l'input della chat del giocatore. Include controlli per l'input da tastiera e gamepad, la gestione del testo della chat e l'invio dei messaggi. Viene anche trattata la logica per il comando della chat e il suono associato all'invio dei messaggi.

Caricato da

gavanxmckee
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato TXT, PDF, TXT o leggi online su Scribd

[04Jan2024 - 18:06:01]

// ILCursor: [Link]::DoUpdate_HandleChat

// Arguments:
none

// Locals:
[0] System.Int32 V_0
[1] [Link] V_1
[2] System.Int32 V_2
[3] [Link] V_3
[4] [Link] V_4
[5] System.Int32 V_5
[6] [Link] V_6

// Body:
IL_00000: ldsfld [Link] [Link]::CurrentInputTextTakerOverride
IL_00005: brfalse.s IL_0000E
IL_00007: ldc.i4.0
IL_00008: stsfld [Link] [Link]::drawingPlayerChat
IL_0000D: ret
IL_0000E: ldsfld [Link] [Link]::editSign
IL_00013: brfalse.s IL_0001B
IL_00015: ldc.i4.0
IL_00016: stsfld [Link] [Link]::drawingPlayerChat
IL_0001B: call [Link]
[Link]::get_UsingGamepad()
IL_00020: brfalse.s IL_00028
IL_00022: ldc.i4.0
IL_00023: stsfld [Link] [Link]::drawingPlayerChat
IL_00028: ldsfld [Link] [Link]::drawingPlayerChat
IL_0002D: brtrue.s IL_0003A
IL_0002F: ldsfld [Link]
[Link]::chatMonitor
IL_00034: callvirt [Link]
[Link]::ResetOffset()
IL_00039: ret
IL_0003A: ldc.i4.0
IL_0003B: stloc.0
IL_0003C: ldsflda [Link]
[Link]::keyState
IL_00041: ldc.i4.s 38
IL_00043: call [Link]
[Link]::IsKeyDown([Link]
[Link])
IL_00048: brfalse.s IL_0004E
IL_0004A: ldc.i4.1
IL_0004B: stloc.0
IL_0004C: br.s IL_0005E
IL_0004E: ldsflda [Link]
[Link]::keyState
IL_00053: ldc.i4.s 40
IL_00055: call [Link]
[Link]::IsKeyDown([Link]
[Link])
IL_0005A: brfalse.s IL_0005E
IL_0005C: ldc.i4.m1
IL_0005D: stloc.0
IL_0005E: ldsfld [Link]
[Link]::chatMonitor
IL_00063: ldloc.0
IL_00064: callvirt [Link]
[Link]::Offset(System.Int32)
IL_00069: ldsflda [Link]
[Link]::keyState
IL_0006E: ldc.i4.s 27
IL_00070: call [Link]
[Link]::IsKeyDown([Link]
[Link])
IL_00075: brfalse.s IL_0007D
IL_00077: ldc.i4.0
IL_00078: stsfld [Link] [Link]::drawingPlayerChat
IL_0007D: ldsfld [Link] [Link]::chatText
IL_00082: stloc.1
IL_00083: ldsfld [Link] [Link]::chatText
IL_00088: ldc.i4.0
IL_00089: call [Link]
[Link]::GetInputText([Link],[Link])
IL_0008E: stsfld [Link] [Link]::chatText
IL_00093: ldc.i4 470
IL_00098: stloc.2
IL_00099: ldsfld System.Int32 [Link]::screenWidth
IL_0009E: conv.r4
IL_0009F: ldc.r4 1
IL_000A4: call [Link] [Link]::get_UIScale()
IL_000A9: div
IL_000AA: mul
IL_000AB: conv.i4
IL_000AC: ldc.i4 330
IL_000B1: sub
IL_000B2: stloc.2
IL_000B3: ldloc.1
IL_000B4: ldsfld [Link] [Link]::chatText
IL_000B9: call [Link]
[Link]::op_Inequality([Link],[Link])
IL_000BE: brfalse IL_00145
IL_000C3: ldsfld [Link]`1<[Link]>
[Link]::MouseText
IL_000C8: callvirt T
[Link]`1<[Link]>::get_Value()
IL_000CD: ldsfld [Link] [Link]::chatText
IL_000D2: call [Link].Vector2
[Link].Vector2::get_One()
IL_000D7: ldc.r4 -1
IL_000DC: call [Link].Vector2
[Link]::GetStringSize([Link],Syst
[Link],[Link].Vector2,[Link])
IL_000E1: ldfld [Link] [Link].Vector2::X
IL_000E6: stloc.s V_4
IL_000E8: br.s IL_0013F
IL_000EA: ldc.i4.0
IL_000EB: ldloc.s V_4
IL_000ED: ldloc.2
IL_000EE: conv.r4
IL_000EF: sub
IL_000F0: conv.i4
IL_000F1: ldc.i4.s 100
IL_000F3: div
IL_000F4: call System.Int32 [Link]::Max(System.Int32,System.Int32)
IL_000F9: stloc.s V_5
IL_000FB: ldsfld [Link] [Link]::chatText
IL_00100: ldc.i4.0
IL_00101: ldsfld [Link] [Link]::chatText
IL_00106: callvirt System.Int32 [Link]::get_Length()
IL_0010B: ldc.i4.1
IL_0010C: sub
IL_0010D: ldloc.s V_5
IL_0010F: sub
IL_00110: callvirt [Link]
[Link]::Substring(System.Int32,System.Int32)
IL_00115: stsfld [Link] [Link]::chatText
IL_0011A: ldsfld [Link]`1<[Link]>
[Link]::MouseText
IL_0011F: callvirt T
[Link]`1<[Link]>::get_Value()
IL_00124: ldsfld [Link] [Link]::chatText
IL_00129: call [Link].Vector2
[Link].Vector2::get_One()
IL_0012E: ldc.r4 -1
IL_00133: call [Link].Vector2
[Link]::GetStringSize([Link],Syst
[Link],[Link].Vector2,[Link])
IL_00138: ldfld [Link] [Link].Vector2::X
IL_0013D: stloc.s V_4
IL_0013F: ldloc.s V_4
IL_00141: ldloc.2
IL_00142: conv.r4
IL_00143: bgt.s IL_000EA
IL_00145: ldloc.1
IL_00146: ldsfld [Link] [Link]::chatText
IL_0014B: call [Link]
[Link]::op_Inequality([Link],[Link])
IL_00150: brfalse.s IL_00167
IL_00152: ldc.i4.s 12
IL_00154: ldc.i4.m1
IL_00155: ldc.i4.m1
IL_00156: ldc.i4.1
IL_00157: ldc.r4 1
IL_0015C: ldc.r4 0
IL_00161: call [Link]
[Link]::PlaySound(System.Int32,System.Int32,System.Int32,System
.Int32,[Link],[Link])
IL_00166: pop
IL_00167: ldsfld [Link] [Link]::inputTextEnter
IL_0016C: brfalse.s IL_00175
IL_0016E: ldsfld [Link] [Link]::chatRelease
IL_00173: brtrue.s IL_00176
IL_00175: ret
IL_00176: ldc.i4 4
IL_0017B: call T
[Link]/InnerBag`1<[Link]`1<[Link]>>::Get(Sy
stem.Int32)
IL_00180: callvirt TResult [Link]`1<[Link]>::Invoke()
IL_00185: brfalse IL_0019A
IL_0018A: ldc.i4 18
IL_0018F: call T
[Link]/InnerBag`1<[Link]>::Get(System.Int32)
IL_00194: callvirt [Link] [Link]::Invoke()
IL_00199: ret
IL_0019A: ldsfld [Link] [Link]::chatText
IL_0019F: callvirt System.Int32 [Link]::get_Length()
IL_001A4: ldc.i4.0
IL_001A5: ble.s IL_001C7
IL_001A7: ldsfld [Link] [Link]::chatText
IL_001AC: ldc.i4.0
IL_001AD: callvirt [Link] [Link]::get_Chars(System.Int32)
IL_001B2: ldc.i4.s 47
IL_001B4: [Link].s IL_001C7
IL_001B6: ldsfld [Link] [Link]::chatText
IL_001BB: newobj [Link] [Link]::.ctor()
IL_001C0: call [Link]
[Link]::HandleCommand([Link],[Link]
mmandCaller)
IL_001C5: br.s IL_001C8
IL_001C7: ldc.i4.0
IL_001C8: stloc.3
IL_001C9: ldsfld [Link] [Link]::chatText
IL_001CE: ldstr
IL_001D3: call [Link]
[Link]::op_Inequality([Link],[Link])
IL_001D8: brfalse.s IL_00217
IL_001DA: ldloc.3
IL_001DB: brtrue.s IL_00217
IL_001DD: ldsfld [Link]
[Link]::Commands
IL_001E2: ldsfld [Link] [Link]::chatText
IL_001E7: callvirt [Link]
[Link]::CreateOutgoingMessage([Link])
IL_001EC: stloc.s V_6
IL_001EE: ldsfld System.Int32 [Link]::netMode
IL_001F3: ldc.i4.1
IL_001F4: [Link].s IL_001FF
IL_001F6: ldloc.s V_6
IL_001F8: call [Link]
[Link]::SendChatMessageFromClient([Link])
IL_001FD: br.s IL_00217
IL_001FF: ldsfld System.Int32 [Link]::netMode
IL_00204: brtrue.s IL_00217
IL_00206: ldsfld [Link]
[Link]::Commands
IL_0020B: ldloc.s V_6
IL_0020D: ldsfld System.Int32 [Link]::myPlayer
IL_00212: callvirt [Link]
[Link]::ProcessIncomingMessage([Link]
e,System.Int32)
IL_00217: ldstr
IL_0021C: stsfld [Link] [Link]::chatText
IL_00221: call [Link] [Link]::ClosePlayerChat()
IL_00226: ldc.i4.0
IL_00227: stsfld [Link] [Link]::chatRelease
IL_0022C: ldc.i4.s 11
IL_0022E: ldc.i4.m1
IL_0022F: ldc.i4.m1
IL_00230: ldc.i4.1
IL_00231: ldc.r4 1
IL_00236: ldc.r4 0
IL_0023B: call [Link]
[Link]::PlaySound(System.Int32,System.Int32,System.Int32,System
.Int32,[Link],[Link])
IL_00240: pop
IL_00241: ret

Potrebbero piacerti anche