mirror of
https://github.com/demostf/demo.js
synced 2026-06-04 00:54:14 +02:00
more usermessages and stricter parser generator
This commit is contained in:
parent
cd5d0b0e86
commit
b744efe0a4
7 changed files with 206 additions and 107 deletions
|
|
@ -6,6 +6,11 @@ import {ServerClass} from './ServerClass';
|
|||
import {StringTable, StringTableEntry} from './StringTable';
|
||||
import {Vector} from './Vector';
|
||||
import {GameEvent, GameEventType} from './GameEventTypes';
|
||||
import {
|
||||
BreakModelPumpkinPacket, ResetHUDPacket, TextMessagePacket, TrainPacket, UnknownUserMessagePacket,
|
||||
UserMessagePacket, UserMessageType,
|
||||
UserMessageTypeMap, VoiceSubtitlePacket, SayText2Packet
|
||||
} from './UserMessage';
|
||||
|
||||
export interface BasePacket {
|
||||
}
|
||||
|
|
@ -105,27 +110,6 @@ export interface TempEntitiesPacket extends BasePacket {
|
|||
entities: PacketEntity[];
|
||||
}
|
||||
|
||||
export interface SayText2Packet extends BasePacket {
|
||||
packetType: 'sayText2';
|
||||
client: number;
|
||||
raw: number;
|
||||
kind: 'TF_Chat_All' | 'TF_Chat_Team' | 'TF_Chat_AllDead';
|
||||
from: string;
|
||||
text: string;
|
||||
}
|
||||
|
||||
export interface TextMessagePacket extends BasePacket {
|
||||
packetType: 'textMsg';
|
||||
destType: number;
|
||||
text: string;
|
||||
}
|
||||
|
||||
export interface UnknownUserMessagePacket extends BasePacket {
|
||||
packetType: 'unknownUserMessage';
|
||||
type: number;
|
||||
data: BitStream;
|
||||
}
|
||||
|
||||
export interface VoiceInitPacket extends BasePacket {
|
||||
packetType: 'voiceInit';
|
||||
codec: string;
|
||||
|
|
@ -225,19 +209,17 @@ export interface FixAnglePacket extends BasePacket {
|
|||
z: number;
|
||||
}
|
||||
|
||||
export interface PreFetchPacket {
|
||||
export interface PreFetchPacket extends BasePacket {
|
||||
packetType: 'preFetch';
|
||||
index: number;
|
||||
}
|
||||
|
||||
export interface GetCvarValuePacket {
|
||||
export interface GetCvarValuePacket extends BasePacket {
|
||||
packetType: 'getCvarValue';
|
||||
cookie: number;
|
||||
value: string;
|
||||
}
|
||||
|
||||
export type UserMessagePacket = SayText2Packet | TextMessagePacket | UnknownUserMessagePacket;
|
||||
|
||||
export type Packet = BSPDecalPacket |
|
||||
StringTablePacket |
|
||||
CreateStringTablePacket |
|
||||
|
|
@ -273,7 +255,7 @@ export type Packet = BSPDecalPacket |
|
|||
export type PacketType = Packet['packetType'];
|
||||
|
||||
export type PacketMapType = {
|
||||
bSPDecal: BSPDecalPacket;
|
||||
bspDecal: BSPDecalPacket;
|
||||
stringTable: StringTablePacket;
|
||||
createStringTable: CreateStringTablePacket;
|
||||
updateStringTable: UpdateStringTablePacket;
|
||||
|
|
@ -304,7 +286,7 @@ export type PacketMapType = {
|
|||
fixAngle: FixAnglePacket;
|
||||
preFetch: PreFetchPacket;
|
||||
getCvarValue: GetCvarValuePacket;
|
||||
}
|
||||
} & UserMessageTypeMap;
|
||||
|
||||
export enum PacketTypeId {
|
||||
file = 2,
|
||||
|
|
|
|||
141
src/Data/UserMessage.ts
Normal file
141
src/Data/UserMessage.ts
Normal file
|
|
@ -0,0 +1,141 @@
|
|||
import {BasePacket} from './Packet';
|
||||
import {BitStream} from 'bit-buffer';
|
||||
|
||||
export enum UserMessageType {
|
||||
Geiger = 0,
|
||||
Train = 1,
|
||||
HudText = 2,
|
||||
SayText = 3,
|
||||
SayText2 = 4,
|
||||
TextMsg = 5,
|
||||
ResetHUD = 6,
|
||||
GameTitle = 7,
|
||||
ItemPickup = 8,
|
||||
ShowMenu = 9,
|
||||
Shake = 10,
|
||||
Fade = 11,
|
||||
VGUIMenu = 12,
|
||||
Rumble = 13,
|
||||
CloseCaption = 14,
|
||||
SendAudio = 15,
|
||||
VoiceMask = 16,
|
||||
RequestState = 17,
|
||||
Damage = 18,
|
||||
HintText = 19,
|
||||
KeyHintText = 20,
|
||||
HudMsg = 21,
|
||||
AmmoDenied = 22,
|
||||
AchievementEvent = 23,
|
||||
UpdateRadar = 24,
|
||||
VoiceSubtitle = 25,
|
||||
HudNotify = 26,
|
||||
HudNotifyCustom = 27,
|
||||
PlayerStatsUpdate = 28,
|
||||
PlayerIgnited = 29,
|
||||
PlayerIgnitedInv = 30,
|
||||
HudArenaNotify = 31,
|
||||
UpdateAchievement = 32,
|
||||
TrainingMsg = 33,
|
||||
TrainingObjective = 34,
|
||||
DamageDodged = 35,
|
||||
PlayerJarated = 36,
|
||||
PlayerExtinguished = 37,
|
||||
PlayerJaratedFade = 38,
|
||||
PlayerShieldBlocked = 39,
|
||||
BreakModel = 40,
|
||||
CheapBreakModel = 41,
|
||||
BreakModel_Pumpkin = 42,
|
||||
BreakModelRocketDud = 43,
|
||||
CallVoteFailed = 44,
|
||||
VoteStart = 45,
|
||||
VotePass = 46,
|
||||
VoteFailed = 47,
|
||||
VoteSetup = 48,
|
||||
PlayerBonusPoints = 49,
|
||||
SpawnFlyingBird = 50,
|
||||
PlayerGodRayEffect = 51,
|
||||
SPHapWeapEvent = 52,
|
||||
HapDmg = 53,
|
||||
HapPunch = 54,
|
||||
HapSetDrag = 55,
|
||||
HapSet = 56,
|
||||
HapMeleeContact = 57,
|
||||
}
|
||||
|
||||
export interface BaseDataUserPacket {
|
||||
data: number;
|
||||
}
|
||||
|
||||
export interface SayText2Packet extends BasePacket {
|
||||
packetType: 'sayText2';
|
||||
client: number;
|
||||
raw: number;
|
||||
kind: 'TF_Chat_All' | 'TF_Chat_Team' | 'TF_Chat_AllDead';
|
||||
from: string;
|
||||
text: string;
|
||||
}
|
||||
|
||||
export interface TextMessagePacket extends BasePacket {
|
||||
packetType: 'textMsg';
|
||||
destType: number;
|
||||
text: string;
|
||||
}
|
||||
|
||||
export interface ResetHUDPacket extends BaseDataUserPacket {
|
||||
packetType: 'resetHUD';
|
||||
}
|
||||
|
||||
export interface TrainPacket extends BaseDataUserPacket {
|
||||
packetType: 'train';
|
||||
}
|
||||
|
||||
export interface VoiceSubtitlePacket extends BasePacket {
|
||||
packetType: 'voiceSubtitle';
|
||||
client: number;
|
||||
menu: number;
|
||||
item: number;
|
||||
}
|
||||
|
||||
export interface UnknownUserMessageBasePacket extends BasePacket {
|
||||
data: BitStream;
|
||||
type: number;
|
||||
}
|
||||
|
||||
export interface BreakModelPumpkinPacket extends UnknownUserMessageBasePacket {
|
||||
packetType: 'breakModelPumpkin';
|
||||
}
|
||||
|
||||
export interface GenericUnknownUserMessagePacket extends UnknownUserMessageBasePacket {
|
||||
packetType: 'unknownUserMessage';
|
||||
}
|
||||
|
||||
export type UnknownUserMessagePacket = GenericUnknownUserMessagePacket |
|
||||
BreakModelPumpkinPacket;
|
||||
|
||||
export type UserMessagePacket = SayText2Packet
|
||||
| TextMessagePacket
|
||||
| ResetHUDPacket
|
||||
| UnknownUserMessagePacket
|
||||
| TrainPacket
|
||||
| VoiceSubtitlePacket
|
||||
| BreakModelPumpkinPacket;
|
||||
|
||||
export type UserMessageTypeMap = {
|
||||
sayText2: SayText2Packet;
|
||||
textMsg: TextMessagePacket;
|
||||
unknownUserMessage: GenericUnknownUserMessagePacket;
|
||||
train: TrainPacket;
|
||||
voiceSubtitle: VoiceSubtitlePacket;
|
||||
breakModelPumpkin: BreakModelPumpkinPacket;
|
||||
resetHUD: ResetHUDPacket;
|
||||
}
|
||||
|
||||
export const UserMessagePacketTypeMap: Map<UserMessagePacket['packetType'], UserMessageType> = new Map<UserMessagePacket['packetType'], UserMessageType>([
|
||||
['unknownUserMessage', 0],
|
||||
['sayText2', UserMessageType.SayText2],
|
||||
['textMsg', UserMessageType.TextMsg],
|
||||
['train', UserMessageType.Train],
|
||||
['voiceSubtitle', UserMessageType.VoiceSubtitle],
|
||||
['breakModelPumpkin', UserMessageType.BreakModel_Pumpkin],
|
||||
['resetHUD', UserMessageType.ResetHUD]
|
||||
]);
|
||||
Loading…
Add table
Add a link
Reference in a new issue