Coh3n
2011-01-24 18:09:50
I started this the other day, and I ran in to a few snags and I need some ideas for solutions or work-arounds.
Problems:
Possible Solutions:
I'll add as things come up. :)
Problems:
- In order for the system to work properly, the reflection and color paths need to be the same length. Currently, they're not because we use one reflection path (and inverse it) and two color paths.
- Markus brought up that it always walks to the same tiles. Not a huge deal, but I really like Nava and Zeph's system that randomly creates the straight line paths, meaning a path to VE Mine would be 3-4 tiles rather than 10-12 (the in between tiles are automatically generated). That would most likely cause there to be a different amount of tiles clicked each run, which will mess up the color points as the will now have different lengths.
- What should be done with these constants?
- When declaring the color paths I would like to have the arrays of length 2 (start index and end index), a range of the records to use.
WALK_WC_VE_TREE_1 = 0;
WALK_WC_VE_TREE_2 = 1;
WALK_WC_VE_TREE_3 = 2;
WALK_WC_VE_TREE_4 = 3;
WALK_WC_VE_OAKS_1 = 4;
WALK_WC_VE_OAKS_2 = 5;
WALK_WC_VE_BANK_1 = 6;
WALK_WC_VE_BANK_2 = 7;
WALK_WC_VE_BANK_3 = 8;
WALK_WC_VE_BANK_4 = 9;
WALK_WC_DB_WILLOWS_1 = 10;
WALK_WC_DB_WILLOWS_BANK_1 = 11;
WALK_MINE_LSW_1 = 12;
WALK_MINE_LSW_2 = 13;
WALK_MINE_LSW_3 = 14;
WALK_MINE_LSW_4 = 15;
WALK_MINE_LSW_5 = 16;
WALK_MINE_LSW_6 = 17;
WALK_MINE_LSW_7 = 18;
WALK_MINE_LSW_8 = 19;
WALK_MINE_LSW_BANK_1 = 20;
WALK_MINE_LSW_BANK_2 = 21;
WALK_MINE_LSW_BANK_3 = 22;
WALK_MINE_LSW_BANK_4 = 23;
WALK_MINE_LSW_BANK_5 = 24;
WALK_MINE_LSW_BANK_6 = 25;
WALK_MINE_LSW_BANK_7 = 26;
WALK_FISH_DB_1 = 27;
WALK_FISH_DB_BANK_1 = 28;
WALK_WC_GE_YEW_1 = 29;
WALK_WC_GE_YEW_2 = 30;
WALK_WC_GE_YEW_3 = 31;
WALK_WC_GE_YEW_BANK_1 = 32;
WALK_WC_GE_YEW_BANK_2 = 33;
WALK_WC_GE_YEW_BANK_3 = 34;
WALK_WC_PS_WILLOW_1 = 35;
WALK_WC_PS_WILLOW_2 = 36;
WALK_WC_PS_WILLOW_BANK_1 = 37;
WALK_WC_PS_WILLOW_BANK_2 = 38;
Since the color records will be automatically updated, the constants wouldn't really be used except for declaring them in the PathInfo record, so IMO are pointless.
// This
ColorTo := [ 0, 6 ];
// Instead of this
ColorTo := [ 0, 1, 2, 3, 4, 5, 6 ];
This also brings up the length issue again.Possible Solutions:
- It will all work perfectly if we had a setup like this
- We have three walking methods (which I think is the best solution, but we still need to solve the above issue), color, reflection, and hybrid, and the user has the choice (will use hybrid by default).
- We don't have a hybrid option. Only color or reflection. The color points can be generated using my generator; it would just require someone to run it and add the points each time a new path is added. So no automatically updating color records using reflection (because the lengths wouldn't be the same). But if we can find a way around that, great, forget about this option.
with PathInfo do
begin
TilesTo := [ Point(), Point() ];
TilesFrom := [ Point(), Point() ];
ColorTo := [ 0, 1 ];
ColorFrom := [ 2, 3 ];
end;
which we all know isn't ideal because it doesn't solve Markus' suggestion, plus it includes an extra reflection path that isn't necessary. I suppose reflection could be combined in to one, and just have the first index removed to make it the same length as the color path.
This also means that Nava and Zeph's methods wouldn't work, which I dislike.
I'll add as things come up. :)