Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #1  
Old 12-16-2012, 09:23 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default EMu Inventory Overhaul

I had already started a proposal for reworking the way the inventory is structured, based on VoA concepts, prior to the Steam RoF offering.
Seeing as how there are now new features that need to be accounted for, and fixes to the old system that need to be accomplished, now is probably
the best time to bring this up.

Code:
Nomenclature							EQEMu Reference (New)						EQEMu Reference (Old)
Range		MainSlot		SubSlot			Range (uint16)	MainSlot (uint16)	SubSlot (uint16)	Slot (sint16)

Worn		Charm			Parent			1 << 0		0			0			0
Worn		Ear01			Parent			1 << 0		1			0			1
Worn		Head			Parent			1 << 0		2			0			2
Worn		Face			Parent			1 << 0		3			0			3
Worn		Ear02			Parent			1 << 0		4			0			4
Worn		Neck			Parent			1 << 0		5			0			5
Worn		Shoulders		Parent			1 << 0		6			0			6
Worn		Arms			Parent			1 << 0		7			0			7
Worn		Back			Parent			1 << 0		8			0			8
Worn		Bracer01		Parent			1 << 0		9			0			9
Worn		Bracer02		Parent			1 << 0		10			0			10
Worn		Range			Parent			1 << 0		11			0			11
Worn		Hands			Parent			1 << 0		12			0			12
Worn		Primary			Parent			1 << 0		13			0			13
Worn		Secondary		Parent			1 << 0		14			0			14
Worn		Ring01			Parent			1 << 0		15			0			15
Worn		Ring02			Parent			1 << 0		16			0			16
Worn		Chest			Parent			1 << 0		17			0			17
Worn		Legs			Parent			1 << 0		18			0			18
Worn		Feet			Parent			1 << 0		19			0			19
Worn		Waist			Parent			1 << 0		20			0			20
Worn		Power Source		Parent			1 << 0		21			0			9999
Worn		Ammo			Parent			1 << 0		22			0			21
Worn		<…>			Parent			1 << 0		<…>			0			{ DNE }
Worn		<Unknown>		Parent			1 << 0		65535			0			{ DNE }


Personal	Inventory 1		Parent (Child Range)	1 << 1		0			0 (1 - 65535)		22 (251 - 260)
Personal	Inventory 2		Parent (Child Range)	1 << 1		1			0 (1 - 65535)		23 (261 - 270)
Personal	Inventory 3		Parent (Child Range)	1 << 1		2			0 (1 - 65535)		24 (271 - 280)
Personal	Inventory 4		Parent (Child Range)	1 << 1		3			0 (1 - 65535)		25 (281 - 290)
Personal	Inventory 5		Parent (Child Range)	1 << 1		4			0 (1 - 65535)		26 (291 - 300)
Personal	Inventory 6		Parent (Child Range)	1 << 1		5			0 (1 - 65535)		27 (301 - 310)
Personal	Inventory 7		Parent (Child Range)	1 << 1		6			0 (1 - 65535)		28 (311 - 320)
Personal	Inventory 8		Parent (Child Range)	1 << 1		7			0 (1 - 65535)		29 (321 - 330)
Personal	Inventory 9		Parent (Child Range)	1 << 1		8			0 (1 - 65535)		{ DNE }
Personal	Inventory 10		Parent (Child Range)	1 << 1		9			0 (1 - 65535)		{ DNE }
Personal	Inventory <…>		Parent (Child Range)	1 << 1		<…>			0 (1 - 65535)		{ DNE }
Personal	Inventory 65536		Parent (Child Range)	1 << 1		65535			0 (1 - 65535)		{ DNE }


Cursor		Cusor			Parent (Child Range)	1 << 2		0			0 (1 - 65535)		30 (331 - 340)
								
								
Tribute		Tribute 1		Parent			1 << 3		0			0			400
Tribute		Tribute 2		Parent			1 << 3		1			0			401
Tribute		Tribute 3		Parent			1 << 3		2			0			402
Tribute		Tribute 4		Parent			1 << 3		3			0			403
Tribute		Tribute 5		Parent			1 << 3		4			0			404
Tribute		Tribute <…>		Parent			1 << 3		<…>			0			{ DNE }
Tribute		Tribute 65536		Parent			1 << 3		65535			0			{ DNE }
								

Bank		Bank 1			Parent (Child Range)	1 << 4		0			0 (1 - 65535)		2000 (2031 - 2040)
Bank		Bank 2			Parent (Child Range)	1 << 4		1			0 (1 - 65535)		2001 (2041 - 2050)
Bank		Bank 3			Parent (Child Range)	1 << 4		2			0 (1 - 65535)		2002 (2051 - 2060)
Bank		Bank 4			Parent (Child Range)	1 << 4		3			0 (1 - 65535)		2003 (2061 - 2070)
Bank		Bank 5			Parent (Child Range)	1 << 4		4			0 (1 - 65535)		2004 (2071 - 2080)
Bank		Bank 6			Parent (Child Range)	1 << 4		5			0 (1 - 65535)		2005 (2081 - 2090)
Bank		Bank 7			Parent (Child Range)	1 << 4		6			0 (1 - 65535)		2006 (2091 - 2100)
Bank		Bank 8			Parent (Child Range)	1 << 4		7			0 (1 - 65535)		2007 (2101 - 2110)
Bank		Bank 9			Parent (Child Range)	1 << 4		8			0 (1 - 65535)		2008 (2111 - 2120)
Bank		Bank 10			Parent (Child Range)	1 << 4		9			0 (1 - 65535)		2009 (2121 - 2130)
Bank		Bank 11			Parent (Child Range)	1 << 4		10			0 (1 - 65535)		2010 (2131 - 2140)
Bank		Bank 12			Parent (Child Range)	1 << 4		11			0 (1 - 65535)		2011 (2141 - 2150)
Bank		Bank 13			Parent (Child Range)	1 << 4		12			0 (1 - 65535)		2012 (2151 - 2160)
Bank		Bank 14			Parent (Child Range)	1 << 4		13			0 (1 - 65535)		2013 (2161 - 2170)
Bank		Bank 15			Parent (Child Range)	1 << 4		14			0 (1 - 65535)		2014 (2171 - 2180)
Bank		Bank 16			Parent (Child Range)	1 << 4		15			0 (1 - 65535)		2015 (2181 - 2190)
Bank		Bank 17			Parent (Child Range)	1 << 4		16			0 (1 - 65535)		2016 (2191 - 2200)
Bank		Bank 18			Parent (Child Range)	1 << 4		17			0 (1 - 65535)		2017 (2201 - 2210)
Bank		Bank 19			Parent (Child Range)	1 << 4		18			0 (1 - 65535)		2018 (2211 - 2220)
Bank		Bank 20			Parent (Child Range)	1 << 4		19			0 (1 - 65535)		2019 (2221 - 2230)
Bank		Bank 21			Parent (Child Range)	1 << 4		20			0 (1 - 65535)		2020 (2231 - 2240)
Bank		Bank 22			Parent (Child Range)	1 << 4		21			0 (1 - 65535)		2021 (2241 - 2250)
Bank		Bank 23			Parent (Child Range)	1 << 4		22			0 (1 - 65535)		2022 (2251 - 2260)
Bank		Bank 24			Parent (Child Range)	1 << 4		23			0 (1 - 65535)		2023 (2261 - 2270)
Bank		Bank <…>		Parent (Child Range)	1 << 4		<…>			0 (1 - 65535)		{ DNE }
Bank		Bank 65536		Parent (Child Range)	1 << 4		65535			0 (1 - 65535)		{ DNE }


Shared Bank	Shared Bank 1		Parent (Child Range)	1 << 5		0			0 (1 - 65535)		2500 (2531 - 2540)
Shared Bank	Shared Bank 2		Parent (Child Range)	1 << 5		1			0 (1 - 65535)		2501 (2541 - 2550)
Shared Bank	Shared Bank <…>		Parent (Child Range)	1 << 5		<…>			0 (1 - 65535)		{ DNE }
Shared Bank	Shared Bank 65536	Parent (Child Range)	1 << 5		65535			0 (1 - 65535)		{ DNE }


Trade		Trade 1			Parent (Child Range)	1 << 6		0			0 (1 - 65535)		3000 (3100 - 3109)
Trade		Trade 2			Parent (Child Range)	1 << 6		1			0 (1 - 65535)		3001 (3110 - 3119)
Trade		Trade 3			Parent (Child Range)	1 << 6		2			0 (1 - 65535)		3002 (3120 - 3129)
Trade		Trade 4			Parent (Child Range)	1 << 6		3			0 (1 - 65535)		3003 (3130 - 3139)
Trade		Trade 5			Parent (Child Range)	1 << 6		4			0 (1 - 65535)		3004 (3140 - 3149)
Trade		Trade 6			Parent (Child Range)	1 << 6		5			0 (1 - 65535)		3005 (3150 - 3159)
Trade		Trade 7			Parent (Child Range)	1 << 6		6			0 (1 - 65535)		3006 (3160 - 3169)
Trade		Trade 8			Parent (Child Range)	1 << 6		7			0 (1 - 65535)		3007 (3170 - 3179)
Trade		Trade <…>		Parent (Child Range)	1 << 6		<…>			0 (1 - 65535)		{ DNE }
Trade		Trade 65536		Parent (Child Range)	1 << 6		65535			0 (1 - 65535)		{ DNE }


World Container	World Container 1	Parent			1 << 7		0			0			4000
World Container	World Container 2	Parent			1 << 7		1			0			4001
World Container	World Container 3	Parent			1 << 7		2			0			4002
World Container	World Container 4	Parent			1 << 7		3			0			4003
World Container	World Container 5	Parent			1 << 7		4			0			4004
World Container	World Container 6	Parent			1 << 7		5			0			4005
World Container	World Container 7	Parent			1 << 7		6			0			4006
World Container	World Container 8	Parent			1 << 7		7			0			4007
World Container	World Container 9	Parent			1 << 7		8			0			4008
World Container	World Container 10	Parent			1 << 7		9			0			4009
World Container	World Container <…>	Parent			1 << 7		<…>			0			{ DNE }
World Container	World Container 65536	Parent			1 << 7		65535			0			{ DNE }


Cursor Buffer	Cursor Buffer		Parent			1 << 8		(0 - 36 { client max })	0			8000 - 8101 { db max: 8999 }


Overload Items	Overload Items		Parent			1 << 9		(0 - 65535)		0			{ DNE }


Buy Back	Buy Back		Parent			1 << 10		(0 - 65535)		0			{ DNE }

- Each range would essentially be unlimited, as would the number of bag slots.
- The 'Overload Items' range would contain items that are pushed to cursor when the cursor buffer is full.
- The 'Buy Back' range accomodates the RoF client's merchant buy back of deleted items.
- { DNE } - 'Does Not Exist'


Some mild conversions will be needed for all clients, more for older ones. This probably doesn't match what the RoF client uses, but is
likely closer than the existing if it uses anything resembling the VoA.

This also gives us the flexibility we need for parsing range functions.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

   

All times are GMT -4. The time now is 01:26 PM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3