Mercurial > wow > breuesk
comparison Lists.lua @ 4:6c8f9473b22e
Notes on list storage keys
| author | John@Yosemite-PC |
|---|---|
| date | Sat, 03 Mar 2012 10:25:01 -0500 |
| parents | 431ddc8bdb4a |
| children | 2ce0f4db1a3e |
comparison
equal
deleted
inserted
replaced
| 3:431ddc8bdb4a | 4:6c8f9473b22e |
|---|---|
| 7 -- A separate user list is held - lists index into this | 7 -- A separate user list is held - lists index into this |
| 8 | 8 |
| 9 | 9 |
| 10 -- TODO: rename player | 10 -- TODO: rename player |
| 11 | 11 |
| 12 | 12 -- notes on list storage: |
| 13 -- Storing names as I do now is atrocious. | |
| 14 -- It prevents insertions (twss) to the middle of the list because then it acts | |
| 15 -- as a side effect onto all the others. ie ABCD -> AXBCD would be phrased as | |
| 16 -- "insert X and shift down B,C,D" which sucks. BCD haven't really been affected | |
| 17 -- (yet) because their relative positions to the others are still intact - ie | |
| 18 -- they are still below A right where they belong. But really X hasn't done | |
| 19 -- anything to affect their relative standing. | |
| 20 -- | |
| 21 -- Ok so we can't use names. | |
| 22 -- | |
| 23 -- We can't use monotonic integers either because it suffers the same problem. | |
| 24 -- Also consider, randoming in someone to a list of ABCD. Say they roll spot 2. | |
| 25 -- What if someone else runs a separate raid and also randoms someone into slot | |
| 26 -- 2? How do you handle that conflict? Difficult. Also, consider this: | |
| 27 -- List of ABCD on night 1. | |
| 28 -- Admin 1 on night 2 rolls in 30 new people. ABCD's indexes are shuffled to be | |
| 29 -- between 1-35. | |
| 30 -- Admin 2 on night 3 rolls in 5 new ones and people ABCD and PQRST now all have | |
| 31 -- indexes between 1-9. | |
| 32 -- When these two are resolved against one another, do the 1-9 peopole end up on | |
| 33 -- top of the list compared to those other 30? | |
| 34 -- | |
| 35 -- Solution: | |
| 36 -- Need a huge random space with purposely left gaps to leave plenty of room for | |
| 37 -- conflicts. | |
| 38 -- So if ABCD had randomed on a space of say, 10,000 and then were sorted into | |
| 39 -- order, then the next 30 could roll into that same space and have a proper | |
| 40 -- ordering. Then the next 5, etc. | |
| 41 -- | |
| 42 -- Handling conflicts: | |
| 43 -- | |
| 13 | 44 |
| 14 bsk.lists = {} | 45 bsk.lists = {} |
| 15 bsk.players = {} | 46 bsk.players = {} |
| 16 | 47 |
| 17 local RaidList = {} | 48 local RaidList = {} |
