Autogenerated weapons are stored starting at 80071E80

Weapons are generated when players draw them or use them.
{side: halfword at 0x82 is timer for mines/grenades}
7F05F5D0:	remote mine timer (after 3 seconds, you can activate)
JAL	7F09A464	//returns V0=#players playing
NOP
ADDIU	AT,R0,0001
BNE	V0,AT,7F05F5F0
ADDIU	T3,R0,00B4	//T3=3sec (180)
ADDIU	T2,R0,012C	//T2=5sec (300)
BEQ	R0,R0,7F05F684	//solo timer
SH	T2,0082 (S0)	//save 5sec initial time on timer halfword
BEQ	R0,R0,7F05F684	//mp timer
SH	T3,0082 (S0)	//save 3sec initial time on timer halfword

EXACT same routine at 7F05F5F8, 7F05F620, 7F05F648
7F05F670:
ADDIU	T0,R0,0001
BEQ	R0,R0,7F05F684
SH	T0,0082 (S0)	//1sec timer  eek!
7F05F67C:
ADDIU	T1,R0,00F0
SH	T1,0082 (S0)	//save 4sec initial time on timer halfword
//7F05F684:
LW	T2,0064 (S0)	//T2=object attribute field
LUI	AT,FFF9
ORI	AT,AT,FFFF	//AT=FFF9FFFF
AND	T3,T2,AT
JAL	7F09B150	//returns V0=8007A0B8
SW	T3,0064 (S0)	//untoggle bits 00060000
//7F05F69C:

Countdown:	7f043df0
checks if a grenade, NULL 57 and 56, plastique, bomb case, etc.



presets for players
1388	player1
1389	player2
138A	player3
138B	player4


When uzi drawn MP:
//7F052320:	copy from buffer to final location
LW	AT,0000 (T6)	//AT=01000008	generic weapon header code
ADDIU	T6,T6,000C	//SP+4C
ADDIU	T8,T8,000C	//T8=objmem+C
SW	AT,FFF4 (T8)	//save header
LW	AT,FFF8 (T6)
SW	AT,FFF8 (T8)	//00004001-> IMAGE+PRESET
LW	AT,FFFC (T6)
BNE	T6,T5,7F052320	//if not at endpoint (T5), keep copying data
SW	AT,FFFC (T8)

[side note:  uzi weapon at current]
01000008 00004001 00000000 00000000
00000000 00000000 3F800000 00000000
00000000 00000000 00000000 3F800000
00000000 00000000 00000000 00000000
3F800000 00000000 00000000 00000000
00000000 3F800000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 447A0000 FFFFFF00 FFFFFF00
00FFFFFF 00000000

7F052214:	creates drawn weapon
//7F052344:	data is copied, so fill in
LW	AT,0000 (T6)
OR	A0,S0,R0	//A0=S0=pointer to objdata
OR	A3,S1,R0	//A3=S1=8006 handle
SW	AT,0000 (T8)
LW	T9,00C8 (SP)	//T9=object type
SB	T9,0080 (S0)	//save to type slot for left weapon
LW	T7,00C4 (SP)	//T7=model#
SH	T7,0004 (S0)	//save to model slot
LW	T1,00CC (SP)	//T1=bitflags (upper32)
ORI	T2,T1,4000	//T2=attached to guard flag toggled
SW	T2,0008 (S0)	//T2-> upper32 bitflags
LW	T0,00C0 (SP)	//T0=object request data pointer (801A5840, for example)
LH	T3,0000 (T0)	//T3=halfword there (1388)
SH	T3,0006 (S0)	//set as preset
SW	S2,0010 (SP)	//save instance data pointer
LW	A2,00D4 (SP)	//A2=Pchr*Z load line
JAL	7F051F30	//sets instance and 8006 pointers, scales; prepares wep.
LW	A1,00C0 (SP)	//A1=request data
BEQ	R0,R0,7F0523B8
OR	S1,V0,R0
//7F052394:
BEQ	S2,R0,7F0523A4
NOP
JAL	7F06C234
OR	A0,S2,R0
BEQL	S1,R0,7F0523BC
	LW	RA,002C (SP)
JAL	7F03A484
OR	A0,S1,R0
OR	S1,R0,R0
//7F0523B8:
LW	RA,002C (SP)
OR	V0,S1,R0
LW	S1,0024 (SP)
LW	S0,0020 (SP)
LW	S2,0028 (SP)
JR	RA
ADDIU	SP,SP,00C0