MS:C on SC: map size limit

MS:C community

Old Skool Apostle
Alpha Tester
Joined
Jul 7, 2011
Messages
504
Reaction score
109
Long story short, just check this (rather sad) video :(
...be sure to read the description too.
https://www.youtube.com/watch?v=AAC_a5PMSKI

I compiled that map with the SC-modified VHLT compilers and I added largemap_aware "1" to liblist.gam, but no effect.
I'll post on the SC forums to ask what causes all this.
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
Link2thread plz.

It may simply not be what it's cracked up to be - do things work fine beyond the 4096 border, so long as it isn't interacted with? Might be a simple matter of avoiding the 4096 death zone then making sure there's no encounters along there, and such.
 

zeus9860

Active Adventurer
The True Followers of the Lost
Crusaders
Blades of Urdual
Alpha Tester
Joined
Feb 28, 2008
Messages
2,581
Reaction score
37
Age
31
Location
lolwut
All i could gather is that the skeleton needs a nerf. :roll:

Actually this might be good for trolling people. :p
 

MS:C community

Old Skool Apostle
Alpha Tester
Joined
Jul 7, 2011
Messages
504
Reaction score
109
Bad news: I haven't actually made a thread in the Sven Co-op forums yet.

Good news: If you copy delta.lst (from your \Sven Co-op\svencoop\ folder) to your \Sven Co-op\msc\ folder (overwriting the old one), MS:C actually seems to behave outside the 4096 units border O_O

Edit 1: However, for a few seconds, the spawn screen looks like this (it reverts to normal though).
Edit 2: None of the first-person viewmodels show up...
 

Thothie

Administrator
Staff member
Administrator
Moderator
MSC Archivist
Joined
Apr 8, 2005
Messages
16,342
Reaction score
326
Location
lost
F*cked sidewise... Bet you'll be sideways in 3rd person view too.

Looking at delta.lst
Code:
// structure name
// none == no conditional encode routine
// gamedll routine_name : before transmitting data, invoke the named function from the game .dll to reset fields as needed
// clientdll routine_name : same as above, except the routine is called via the client.dll

clientdata_t none
{
	DEFINE_DELTA( flTimeStepSound, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT,  24, 32.0 ),
	DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT,  24, 32.0 ),
	DEFINE_DELTA( velocity[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( velocity[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),

	DEFINE_DELTA( m_flNextAttack, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),

	DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT,  24, 32.0 ),
	DEFINE_DELTA( velocity[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),

	DEFINE_DELTA( ammo_nails, DT_SIGNED | DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( ammo_shells, DT_SIGNED | DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( ammo_cells, DT_SIGNED | DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( ammo_rockets, DT_SIGNED | DT_INTEGER, 10, 1.0 ),

	DEFINE_DELTA( m_iId, DT_INTEGER, 5, 1.0 ),

	DEFINE_DELTA( punchangle[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( flags, DT_INTEGER, 32, 1.0 ), // Cut to 3 bits?
	DEFINE_DELTA( weaponanim, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( health, DT_SIGNED | DT_FLOAT, 10, 1.0 ), // Cut # of bits?
	DEFINE_DELTA( maxspeed, DT_FLOAT, 16, 10.0 ),
	DEFINE_DELTA( flDuckTime, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( view_ofs[2], DT_SIGNED | DT_FLOAT, 10, 4.0 ),
	DEFINE_DELTA( punchangle[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( punchangle[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( viewmodel, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( weapons, DT_INTEGER, 32, 1.0 ),

	DEFINE_DELTA( pushmsec, DT_INTEGER, 11, 1.0 ),
	DEFINE_DELTA( deadflag, DT_INTEGER, 3, 1.0 ),
	DEFINE_DELTA( fov, DT_FLOAT, 8, 1.0 ),
	DEFINE_DELTA( physinfo, DT_STRING, 1, 1.0 ),
	DEFINE_DELTA( bInDuck, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( flSwimTime, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( waterjumptime, DT_INTEGER, 15, 1.0 ),
	DEFINE_DELTA( waterlevel, DT_INTEGER, 2, 1.0 ),
	DEFINE_DELTA( iuser1, DT_INTEGER, 2, 1.0 ),	// Non-zero if I'm a spectator (1,2,3 different spec modes)
	DEFINE_DELTA( iuser2, DT_INTEGER, 5, 1.0 )	// Holds the ent num of the target I'm spectating
}

entity_state_t gamedll Entity_Encode
{
	DEFINE_DELTA( animtime, DT_TIMEWINDOW_8, 8, 1.0 ),
	DEFINE_DELTA( frame, DT_FLOAT, 10, 4.0 ),
	DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( angles[0], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( angles[1], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( sequence, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( modelindex, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( movetype, DT_INTEGER, 4, 1.0 ),
	DEFINE_DELTA( solid, DT_SHORT, 3, 1.0 ),
	DEFINE_DELTA( mins[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( mins[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( mins[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( maxs[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( maxs[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( maxs[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),

	DEFINE_DELTA( endpos[0], DT_SIGNED | DT_FLOAT, 13, 1.0 ),
	DEFINE_DELTA( endpos[1], DT_SIGNED | DT_FLOAT, 13, 1.0 ),
	DEFINE_DELTA( endpos[2], DT_SIGNED | DT_FLOAT, 13, 1.0 ),
	DEFINE_DELTA( startpos[0], DT_SIGNED | DT_FLOAT, 13, 1.0 ),
	DEFINE_DELTA( startpos[1], DT_SIGNED | DT_FLOAT, 13, 1.0 ),
	DEFINE_DELTA( startpos[2], DT_SIGNED | DT_FLOAT, 13, 1.0 ),
	DEFINE_DELTA( impacttime, DT_TIMEWINDOW_BIG, 13, 100.0 ),
	DEFINE_DELTA( starttime, DT_TIMEWINDOW_BIG, 13, 100.0 ),

	DEFINE_DELTA( weaponmodel, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( owner, DT_INTEGER, 5, 1.0 ),
	DEFINE_DELTA( effects, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA( eflags, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( angles[2], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( colormap, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA( framerate, DT_SIGNED | DT_FLOAT, 8, 16.0 ),
	DEFINE_DELTA( skin, DT_SHORT | DT_SIGNED, 13, 1.0 ),
	DEFINE_DELTA( controller[0], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( controller[1], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( controller[2], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( controller[3], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( blending[0], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( blending[1], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( body, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( rendermode, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( renderamt, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( renderfx, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( scale, DT_FLOAT, 16, 256.0 ),
	DEFINE_DELTA( rendercolor.r, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.g, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.b, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( aiment, DT_INTEGER, 11, 1.0 ),
	DEFINE_DELTA( basevelocity[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( basevelocity[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( basevelocity[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),

	// Playerclass signifies it's a decalable glass item when referring to an object
	DEFINE_DELTA( playerclass, DT_INTEGER, 1, 1.0 ),

	//Sniper
	DEFINE_DELTA( fuser1, DT_FLOAT, 8, 1.0 ),
	DEFINE_DELTA( fuser2, DT_FLOAT, 8, 1.0 ),
	DEFINE_DELTA( iuser1, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( gaitsequence, DT_INTEGER, 8, 1.0 ) //Monsters can have gaitsequences now.
}

entity_state_player_t gamedll Player_Encode
{
	DEFINE_DELTA( animtime, DT_TIMEWINDOW_8, 8, 1.0 ),
	DEFINE_DELTA( frame, DT_FLOAT, 8, 1.0 ),
	DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 32.0 ),
	DEFINE_DELTA( angles[0], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( angles[1], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 32.0 ),
	DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT, 24, 32.0 ),
	DEFINE_DELTA( gaitsequence, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( sequence, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( modelindex, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( movetype, DT_INTEGER, 4, 1.0 ),
	DEFINE_DELTA( solid, DT_SHORT, 3, 1.0 ),
	DEFINE_DELTA( mins[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( mins[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( mins[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( maxs[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( maxs[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( maxs[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( weaponmodel, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( team, DT_INTEGER, 4, 1.0 )
	DEFINE_DELTA( playerclass, DT_INTEGER, 4, 1.0 )
	DEFINE_DELTA( owner, DT_INTEGER, 5, 1.0 ),
	DEFINE_DELTA( effects, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA( angles[2], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( colormap, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA( framerate, DT_SIGNED | DT_FLOAT, 8, 16.0 ),
	DEFINE_DELTA( skin, DT_SHORT | DT_SIGNED, 9, 1.0 ),
	DEFINE_DELTA( controller[0], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( controller[1], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( controller[2], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( controller[3], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( blending[0], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( blending[1], DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( body, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( rendermode, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( renderamt, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( renderfx, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( scale, DT_FLOAT, 16, 256.0 ),
	DEFINE_DELTA( rendercolor.r, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.g, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.b, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( friction, DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( usehull, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( gravity, DT_SIGNED | DT_FLOAT, 16, 32.0 ),
	DEFINE_DELTA( aiment, DT_INTEGER, 11, 1.0 ),
	DEFINE_DELTA( basevelocity[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( basevelocity[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( basevelocity[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( spectator, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( iuser1, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( onground, DT_INTEGER, 16, 1.0 )
}

custom_entity_state_t gamedll Custom_Encode
{
	DEFINE_DELTA( rendermode, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( angles[0], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( angles[1], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( angles[2], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( sequence, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA( skin, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA( modelindex, DT_INTEGER, 16, 1.0 ),
	DEFINE_DELTA_POST( scale, DT_FLOAT, 16, 1.0, 0.1 ),
	DEFINE_DELTA( body, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.r, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.g, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( rendercolor.b, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( renderfx, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( renderamt, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( frame, DT_FLOAT, 8, 1.0 ),
	DEFINE_DELTA_POST( animtime, DT_FLOAT, 8, 1.0, 0.1 )
}

usercmd_t none
{
	DEFINE_DELTA( lerp_msec, DT_SHORT, 9, 1.0 ),
	DEFINE_DELTA( msec, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( viewangles[1], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( viewangles[0], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( buttons, DT_SHORT, 16, 1.0 ),
	DEFINE_DELTA( forwardmove, DT_SIGNED | DT_FLOAT, 12, 1.0 ),
	DEFINE_DELTA( lightlevel, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( sidemove, DT_SIGNED | DT_FLOAT, 12, 1.0 ),
	DEFINE_DELTA( upmove, DT_SIGNED | DT_FLOAT, 12, 1.0 ),
	DEFINE_DELTA( impulse, DT_BYTE, 8, 1.0 ),
	DEFINE_DELTA( viewangles[2], DT_ANGLE, 16, 1.0 ),
	DEFINE_DELTA( impact_index, DT_INTEGER, 6, 1.0 ),
	DEFINE_DELTA( impact_position[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( impact_position[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( impact_position[2], DT_SIGNED | DT_FLOAT, 16, 8.0 )
}

weapon_data_t none
{
	DEFINE_DELTA( m_flTimeWeaponIdle, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( m_flNextPrimaryAttack, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( m_flNextReload, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( m_fNextAimBonus, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( m_flNextSecondaryAttack, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( m_iClip, DT_SIGNED | DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( m_flPumpTime, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( m_fInSpecialReload, DT_INTEGER, 2, 1.0 ),
	DEFINE_DELTA( m_fReloadTime, DT_FLOAT, 16, 100.0 ),
	DEFINE_DELTA( m_fInReload, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( m_fAimedDamage, DT_FLOAT, 6, 0.1 ),
	DEFINE_DELTA( m_fInZoom, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( m_iWeaponState, DT_INTEGER, 2, 1.0 ),
	DEFINE_DELTA( m_iId, DT_INTEGER, 6, 1.0 ),	//6 bits - 64 values
	DEFINE_DELTA( iuser1, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( iuser2, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( iuser3, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( iuser4, DT_INTEGER, 8, 1.0 ),
	DEFINE_DELTA( fuser1, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( fuser2, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( fuser3, DT_FLOAT | DT_SIGNED, 22, 1000.0 ),
	DEFINE_DELTA( fuser4, DT_FLOAT | DT_SIGNED, 22, 1000.0 )
}

event_t none
{
	DEFINE_DELTA( entindex, DT_INTEGER, 10, 1.0 ),
	DEFINE_DELTA( bparam1, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( bparam2, DT_INTEGER, 1, 1.0 ),
	DEFINE_DELTA( origin[0], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( origin[1], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( origin[2], DT_SIGNED | DT_FLOAT, 24, 8.0 ),
	DEFINE_DELTA( fparam1, DT_FLOAT | DT_SIGNED, 20, 100.0 ),
	DEFINE_DELTA( fparam2, DT_FLOAT | DT_SIGNED, 20, 100.0 ),
	DEFINE_DELTA( iparam1, DT_INTEGER | DT_SIGNED, 16, 1.0 ),
	DEFINE_DELTA( iparam2, DT_INTEGER | DT_SIGNED, 16, 1.0 ),
	DEFINE_DELTA( angles[0], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( angles[1], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( angles[2], DT_SIGNED | DT_FLOAT, 16, 8.0 ),
	DEFINE_DELTA( ducking, DT_INTEGER, 1, 1.0 )
}
Might be possible to tweak this up - suspect the bit that fixes it, and the bit that turns the player and view model sideways, maybe separable. If you can figure that out and report back, that'd be grand, as my plate is just piled to the ceiling, atm. (Might have to backburner more stuff, like fixing Hush's robes, as it is.)

Wasn't clear if things operated beyond the 4096 line, rather than just breaking down along it though.

I'm also noticing, however, that the sound system goes to hell with the large map mode enabled, particularly with stereo positioning and lower rate samples.
 
Top