SRL Archive - SRL Suggestions

Symbol Constants


putonajonny

2012-04-30 13:44:44

I don't think that these exist already, and I read somewhere that SRL was trying to move to constants and away from strings, so here you go:
Const
Symbol_agility = 'agility';
Symbol_furnace = 'furnace';
Symbol_altar = 'altar';
Symbol_anvil = 'anvil';
Symbol_apothecary = 'apothecary';
Symbol_archery_shop = 'archery shop';
Symbol_arrow = 'arrow';
Symbol_axe_shop = 'axe shop';
Symbol_bar = 'bar';
Symbol_bank = 'bank';
Symbol_candle_shop = 'candle shop';
Symbol_lodestone = 'lodestone';
Symbol_churn = 'churn';
Symbol_clothes_shop = 'clothes shop';
Symbol_cookery_shop = 'cookery shop';
Symbol_cookery = 'cookery';
Symbol_cook = Symbol_cookery;
Symbol_crafting_shop = 'crafting shop';
Symbol_dungeon = 'dungeon';
Symbol_farming_shop = 'farming shop';
Symbol_fishing_shop = 'fishing shop';
Symbol_fishing_store = Symbol_fishing_shop;
Symbol_fishing_spot = 'fishing spot';
Symbol_fish = Symbol_fishing_spot;
Symbol_food_shop = 'food shop';
Symbol_food_store = Symbol_food_shop;
Symbol_fur_trader = 'fur trader';
Symbol_rare_trees = 'rare trees';
Symbol_tree = Symbol_rare_trees;
Symbol_resting_spot = 'resting spot';
Symbol_rest = Symbol_resting_spot;
Symbol_runecrafting = 'runecrafting';
Symbol_rcing = Symbol_runecrafting;
Symbol_rc = Symbol_runecrafting;
Symbol_gem_stall = 'gem stall';
Symbol_guide = 'guide';
Symbol_hair_dresser = 'hair dresser';
Symbol_herbalist = 'herbalist';
Symbol_house = 'house';
Symbol_hunter_store = 'hunter store';
Symbol_hunter_training = 'hunter training';
Symbol_jewelery = 'jewelery';
Symbol_kebab_shop = 'kebab shop';
Symbol_mace_shop = 'mace shop';
Symbol_magic_shop = 'magic shop';
Symbol_makeover_mage = 'makeover mage';
Symbol_mill = 'mill';
Symbol_minigame = 'minigame';
Symbol_Mini_Obelisk = 'mini obelisk';
Symbol_mining_shop = 'mining shop';
Symbol_mining_spot = 'mining spot';
Symbol_mining_site = Symbol_mining_spot;
Symbol_mine = Symbol_mining_spot;
Symbol_pet_shop = 'pet shop';
Symbol_platebody_shop = 'platebody shop';
Symbol_plateskirt_shop = 'plateskirt shop';
Symbol_portal = 'portal';
Symbol_pottery = 'pottery';
Symbol_pot = Symbol_pottery;
Symbol_quest = 'quest';
Symbol_windmill = 'windmill';
Symbol_sandpit = 'sandpit';
Symbol_saw_mill = 'saw mill';
Symbol_scimitar_shop = 'scimitar shop';
Symbol_shield = 'shield';
Symbol_shop = 'shop';
Symbol_store = Symbol_shop;
Symbol_short_cut = 'short cut';
Symbol_silk_stall = 'silk stall';
Symbol_silver_stall = 'silver stall';
Symbol_slayer_master = 'slayer master';
Symbol_spice_stall = 'spice stall';
Symbol_spinning_wheel = 'spinning wheel';
Symbol_spin = Symbol_spinning_wheel;
Symbol_staff_shop = 'staff shop';
Symbol_summoning_store = 'summoning store';
Symbol_summoning_obelisk = 'summoning obelisk';
Symbol_sword_shop = 'sword shop';
Symbol_tanner = 'tanner';
Symbol_training_dummy = 'training dummy';
Symbol_transportation = 'transportation';
Symbol_underground = 'underground';
Symbol_water_source = 'water source';
Symbol_water = Symbol_water_source;
Symbol_weave = 'weave';

For addition to Symbol.simba, if these don't get added then the list of valid symbols at the top of Symbol.simba needs updating anyway…


Also:
Symbol_Mini_Obelisk:
begin
SymbolBitmap := BitmapFromString(15, 5, 'meJxjYGDYjwTO75ymWJUpaO7FKyw' +
'7f/58ZCkGMEAW0QrM8q3vAapPz/AgqFg2wguoGEhyKfHhVwx0w4NH' +
'D4AIaL5TQh4Q4VEMcQNQDVA90HAeRStkw4EqAbnwdxs=');
result := 12566463;
end;

Full Symbol.simba:
(*
Symbol
======

The Symbol include contains minimap symbol related functions.

*)
//-----------------------------------------------------------------//
//-- SRL Resource Library --//
//-- ********* Symbol Routines --//
//-----------------------------------------------------------------//
// * function LoadSymbolBitmapColor(Name: String): Integer; // * by Stupid3ooo, WT-Fakawi, Bebemycat2, Ron, and StarBlaster100
// * function GetSymbolColorIn(var rx, ry: Integer; Name: string; xs, ys, xe, ye: Integer): Integer; // * by Starblaster100 based off of the ideas of Stupid3000
// * function GetSymbolColor(var rx, ry: Integer; Name: string): Integer; // * by Stupid3ooo and Modified by Starblaster100
// * function FindSymbol(var rx, ry: Integer; Name: String): Boolean; // * by Stupid3ooo
// * function FindSymbolIn(var rx, ry: Integer; Name: string; xs, ys, xe, ye: Integer): Boolean; // * by Starblaster100, based on the ideas of Stupid3ooo
// * function FindSymbolsIn(var AnsTPA: TPointArray; SymbolName: string; x1, y1, x2, y2: integer): Boolean; // * by lordsaturn
// * function FindSymbols(var AnsTPA: TPointArray; SymbolName: string): Boolean; // * by lordsaturn
// * procedure FindSymbolsMulti(var aTPA: TPointArray; Symbols: TStringArray); // * by Nava2

{ var SymbolAccuracy: Extended;
Description: How accurate it must be, in %, to find symbols or icons on the minimap. }
var
SymbolAccuracy: Extended;
SymbolBitmap: Integer;

// Comment fix by drizzt:
{*******************************************************************************
Valid Arguments are:
- agility - furnace - rare trees, tree -windmill
- altar - gem stall - rest, resting spot
- anvil - guide - sandpit
- apothecary - hair dresser - saw mill
- archery shop - herbalist - scimitar shop
- arrow - house - shield
- axe shop - hunter store - shop, store
- bar - hunter training - short cut
- bank - jewelery - silk stall
- candle shop - kebab shop - silver stall
- lodestone
- churn - mace shop - slayer master
- clothes shop - magic shop - spice stall
- cookery shop - makeover mage - spinning wheel, spin
- cookery, cook - mill - staff shop
- crafing shop - minigame - summoning store
- dungeon - mining shop - summoning obelisk
- farming shop - pet shop - sword shop
- farming spot - platebody shop - tanner
- fishing shop, fish store - plateskirt shop - training dummy
- fishing spot, fish - portal (to player owned houses) - underground
- food shop - pottery, pot - water source, water
- fur trader - quest - weave

*******************************************************************************}

Const //Symbol Constants, may be changed to integers in SRL6
Symbol_Agility = 'agility';
Symbol_Furnace = 'furnace';
Symbol_Altar = 'altar';
Symbol_Anvil = 'anvil';
Symbol_Apothecary = 'apothecary';
Symbol_ArcheryShop = 'archery shop';
Symbol_Arrow = 'arrow';
Symbol_AxeShop = 'axe shop';
Symbol_Bar = 'bar';
Symbol_Bank = 'bank';
Symbol_CandleShop = 'candle shop';
Symbol_Lodestone = 'lodestone';
Symbol_Churn = 'churn';
Symbol_ClothesShop = 'clothes shop';
Symbol_CookeryShop = 'cookery shop';
Symbol_Cookery = 'cookery';
Symbol_Cook = Symbol_Cookery;
Symbol_CraftingShop = 'crafting shop';
Symbol_Dungeon = 'dungeon';
Symbol_FarmingShop = 'farming shop';
Symbol_FarmingSpot = 'farming spot';
Symbol_FishingShop = 'fishing shop';
Symbol_FishingStore = Symbol_FishingShop;
Symbol_FishingSpot = 'fishing spot';
Symbol_Fish = Symbol_FishingSpot;
Symbol_FoodShop = 'food shop';
Symbol_FoodStore = Symbol_FoodShop;
Symbol_FurTrader = 'fur trader';
Symbol_RareTrees = 'rare trees';
Symbol_Tree = Symbol_RareTrees;
Symbol_RestingSpot = 'resting spot';
Symbol_Rest = Symbol_RestingSpot;
Symbol_Runecrafting = 'runecrafting';
Symbol_Rcing = Symbol_Runecrafting;
Symbol_Rc = Symbol_Runecrafting;
Symbol_GemStall = 'gem stall';
Symbol_Guide = 'guide';
Symbol_HairDresser = 'hair dresser';
Symbol_Herbalist = 'herbalist';
Symbol_House = 'house';
Symbol_HunterStore = 'hunter store';
Symbol_HunterTraining = 'hunter training';
Symbol_Jewelery = 'jewelery';
Symbol_KebabShop = 'kebab shop';
Symbol_MaceShop = 'mace shop';
Symbol_MagicShop = 'magic shop';
Symbol_MakeoverMage = 'makeover mage';
Symbol_Mill = 'mill';
Symbol_Minigame = 'minigame';
Symbol_MiniObelisk = 'mini obelisk';
Symbol_MiningShop = 'mining shop';
Symbol_MiningSpot = 'mining spot';
Symbol_MiningSite = Symbol_MiningSpot;
Symbol_Mine = Symbol_MiningSpot;
Symbol_PetShop = 'pet shop';
Symbol_PlatebodyShop = 'platebody shop';
Symbol_PlateskirtShop = 'plateskirt shop';
Symbol_Portal = 'portal';
Symbol_Pottery = 'pottery';
Symbol_Pot = Symbol_Pottery;
Symbol_Quest = 'quest';
Symbol_Windmill = 'windmill';
Symbol_Sandpit = 'sandpit';
Symbol_SawMill = 'saw mill';
Symbol_ScimitarShop = 'scimitar shop';
Symbol_Shield = 'shield';
Symbol_Shop = 'shop';
Symbol_Store = Symbol_Shop;
Symbol_ShortCut = 'short cut';
Symbol_SilkStall = 'silk stall';
Symbol_SilverStall = 'silver stall';
Symbol_SlayerMaster = 'slayer master';
Symbol_SpiceStall = 'spice stall';
Symbol_SpinningWheel = 'spinning wheel';
Symbol_Spin = Symbol_SpinningWheel;
Symbol_StaffShop = 'staff shop';
Symbol_SummoningStore = 'summoning store';
Symbol_SummoningObelisk = 'summoning obelisk';
Symbol_SwordShop = 'sword shop';
Symbol_Tanner = 'tanner';
Symbol_TrainingDummy = 'training dummy';
Symbol_Transportation = 'transportation';
Symbol_Underground = 'underground';
Symbol_WaterSource = 'water source';
Symbol_Water = Symbol_WaterSource;
Symbol_Weave = 'weave';

(*
LoadSymbolBitmapColor
~~~~~~~~~~~~~~~~~~~~~

.. code-block:: pascal


function LoadSymbolBitmapColor(Name: String): Integer;

Loads Bitmap and Color of a Specific Symbol.

.. note::

by Stupid3ooo, WT-Fakawi, Bebemycat2, Ron, and StarBlaster100

Example:

.. code-block:: pascal

*)
function LoadSymbolBitmapColor(Name: string): Integer;
begin
case LowerCase(Name) of
Symbol_Bank:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDwAAxsWun/9NjnbX' +
'/D9BUUgOR8GILJAlWiKIcogJBAdQAKYiiHqIQiiHpfJyOqRHYNLMa' +
'ZjEIoBKZB32A==');
result := 2216175;
end;
Symbol_MiniObelisk:
begin
SymbolBitmap := BitmapFromString(15, 5, 'meJxjYGDYjwTO75ymWJUpaO7FKyw' +
'7f/58ZCkGMEAW0QrM8q3vAapPz/AgqFg2wguoGEhyKfHhVwx0w4NH' +
'D4AIaL5TQh4Q4VEMcQNQDVA90HAeRStkw4EqAbnwdxs=');
result := 12566463;
end;
Symbol_MiningSpot, 'mining site', 'mine':
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDyAAXqrfB' +
'vCddIzMsrKSiMiIiCCQJWYiufk2INUWova2dkD1Xv7ec+fPx+rYrj' +
'K+WAANBaXYqDK7GDtIAsBiEqgCFAxnI2seEKsNVCluzoPXBauGOpm' +
'ADVlcCo=');
Result := 5077645;
end;
Symbol_Transportation:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303534347074353' +
'4B73032219E34763173348592A62E666E66A6C8B20660330D904C' +
'86A841D6858BC454896C3EA6C9C498899FC465B291A3B193910B3' +
'124A69910715C269317CEC866229B0C00B3496273');
Result := 2650848;
end;
Symbol_MagicShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95D0510A80300806' +
'E02B9906B6C77F3AEF7FA4A0066DABC17A1111FD1469A74CC5C46' +
'0D6C60875CEA17288D63CE08C771D02A09BA5CBA499DC99AD3CFA' +
'EB72041B97B9D9C83F6F2ECE69C3D71F46F9EE5C979D155AFDBAA' +
'5BBFF312D915399C927AF756C82');
Result := 1714669;
end;
Symbol_WaterSource, 'water':
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDyABFJrHmt' +
'm/ACi+fPnH0AFQJW4FAMRfsUQlYfPPgSS7Hb30QzHVAxUCVcMRHgUQ2xHVoxs' +
'OAMAbyOCjQ==');
Result := 16279593;
end;
Symbol_Furnace:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA3334353435B470' +
'3101423308696A028466E6C6A6A626E66E6E1640062E12A206A2D' +
'EC90408A1261882CD3424CA6427472320DBCDCDC810C61EFC2653' +
'3F34882171990C0058F36390');
Result := 3508223;
end;
Symbol_Anvil:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95CF510AC0300803D02B' +
'A59DE0F2D9F6FE771A2CFB10CAC4FE04117C443434D8E4C2EA4A8' +
'7DFCE8B06FB369AF38C025E139B5C7194EA106F73B9D2991C187D' +
'3773F92F2BE6A91CBFD05CE9FC00C9DB6164');
Result := 4012591;
end;
Symbol_RareTrees, 'tree':
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDwABmw+jCx5' +
'vBDE08sOQZK7GYAkRAFQJX7FcISpGK4eKIumZf78+ZiKsZo/HwyQF' +
'cPVA8Xd1XmAJLJKkDMAo5RFgw==');
Result := 494860;
end;
Symbol_FishingSpot, 'fish':
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DCE410E80300844D12B4D5BA' +
'9BAA404EE7F2413675343AA6EFE82D217D061682636ACCCADA779' +
'045B641F117987CDAFB84D2479D67257B28A0EFD90B9C9F9BB3FD' +
'FF02EC337F347B39977D83F37AFFEA2D76EDEA4543DE870B2922F' +
'BB6B6878');
Result := 16743189;
end;
Symbol_Cookery, 'cook':
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA590410AC0200C04BFB41' +
'B4D5B8F2ACDFF9FD4D25008885EBC0C21EC0E211010EC6CD66EE7' +
'C1A4F869A9524AD74BB2CF3139233E2782D9BB713F52CE37A1D98' +
'4A823D7E678A15FAE4CC4EDDDB5B9B258D932BB61C67DF3FACF0F' +
'3E40632F');
Result := 1194607;
end;
Symbol_Quest:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDwAA22Tnkzffim1' +
'5jEQAdmmPvuB5Pz58yGyQJVwxUBxIAIqg6iHqIQgNMUQ0/AgrCbDXQI0GeIYi' +
'EuAAFkx3M0Qx8BdAlEJMhkAMoB+aA==');
Result := 14908517;
end;
Symbol_mill:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAB58F3B0AC0300C43AF24A' +
'75D3CD621BEFF9102D52228822C5D1EC69F878C8140CCA8AEE5D8' +
'DD0BA97C223BED3E5E27C48CBAE7B878ABF54987B5337FB3E995D' +
'26DF2973F323B33C9A9D26573A47303B52569D1');
Result := 655103;
end;
Symbol_Dungeon:
begin
SymbolBitmap :=BitmapFromString(8, 9, 'meJw7cAAEFiz4ExDwBYi0tD4wMMSw' +
'5vwDCs6cORMoApHCKg4URBOHiBAUl3b9CxGHG8LPPx8oDkRg50Clg' +
'ILp6a+BbEYGhgMwMBMJHEACEKOAJIQLAAEpc48=');
Result := 2698232;
end;
Symbol_weave:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303230343074367472' +
'73724526CD0C4C0C8CDC1C0D2DDD2C5D8DDD8C4C0CA0E2103644D' +
'CDCD1CCD4C40CC246D66B0036D300AFC9986622B3293119979B21' +
'ECC1E966649793EA6600F03E685F');
Result := 926783;
end;
Symbol_Pottery, 'pot':
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DCE5B0AC0200C44D1' +
'2D6592691B3F2DD5FD2FA98F08554A410217C9C73102B966673E7' +
'64617AA094DA16349D4B15E96621EED05C13B5F19F9DEFF178E14' +
'3F869CE8479A9267FCFEE619992A55100D7F8519CC37562DBDD6F' +
'AECE76FEEFD55D5A50983FFBCB76A807CE5139EC460AC');
Result := 270148;
end;
Symbol_SpinningWheel, 'spin':
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDwABtn' +
'+gvPnz28I1wGygSQaG8gAqoQoDrIQAJIQQbgauMiEWGs0xenWokAE0QVXD0dA' +
'XciK58MAUAvIVcHaEJMh7kFWDAQQNZgk3D0MAH8HZ/A=');
Result := 2710649;
end;
Symbol_guide:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303400424717470B27' +
'33086961E168E4EC64E866E264EE0C614349170B0B4B336411143' +
'56059880906860848C06488995432193F89CB47F84D869A8FE14E' +
'8869F8CD24C664E2431E533DC44C00EBA66771');
Result := 13345416;
end;
Symbol_shop, 'store':
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95D0410EC4200' +
'840D12B2102C25290DEFF486DCA2C4C9A6666363F46E2D308020D' +
'32D83DA2AA3E6804276633B66B7AB4006E7D5F57E9406E51DD05B' +
'84D78C8435849DD5970E9EC0629AB13B692ABB5B34F279BCF6F32' +
'12A15CE3E8B9B7EE3265C52C73EFF0818A6FB2CA085D4FF317598' +
'484FA9B6C69689FB37FBFF9FEC35D3E01559765AB');
Result := 3176384;
end;
Symbol_Shield:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DACDCC3112C0200844D12' +
'B611484920DE4FE47CA8CA63085BDCD9F6DF6511614BE233CEADA' +
'16ECFC9553204DD36055D92EF56E2AFD99DB038EDF97864927C8C' +
'339595EFD9D3CCD9DFC02CAE26976');
Result := 9542286;
end;
Symbol_altar:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33703574323475767171' +
'7431B670B574B2A4888498630036D300C96464F3DD880610F58E2' +
'E4E8E4E501297C9C49B8F69267E37936732B25EFC26131F1AB84C' +
'06006E357035');
Result := 9542286;
end;
Symbol_arrow:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303570333470353437' +
'3372249E343633B33475829026161646E626C8B20660330D904C8' +
'6A841D6858BC454896C3EA6C9C498899FC465B2919BB1A5B12931' +
'24A69910715C269317CEC866229B0C001E5A61CB');
Result := 2782945;
end;
Symbol_bar:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAB5CC310EC0200C43D12B41' +
'E3001D0389EF7FA44ACD82D4952E5F968757B5B4E28EA56B66E33' +
'685908EEEA4115736FF1523A016BD8113A636079B0877A1BE663D' +
'24E73E25A7F99F9CE659F96BEEF2031A5D69A8');
Result := 4433385;
end;
Symbol_underground:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303400422743' +
'272727134CD2D5C2C8D4D01993B47033303630B434B474B2C4A2C' +
'BC01001E96FB28B9BA3A10516335D5DCC8C4D9D293119D97C62CC' +
'24D5646412622631260300830265FA');
Result := 1844712;
end;
Symbol_tanner:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8D904B0EC0200805AF0' +
'4F85F4ABDFF991AFB162521D26E26462703919898BAAACEAB82B5' +
'E5C4ABB52289FED316E8699229DBE63ECB8AA7F8D75319843374C' +
'C594B4FC2C5177003C7FAE0A90CC2C92ACA392E5B3FDED9F22DCB' +
'47D9FFF30DFAEB6308');
Result := 3363443;
end;
Symbol_churn:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9590410A00210845AFA4' +
'A5FE5A564CF73FD240CE40502DDA3C5CE8031F318150D1ACE94C4' +
'104C7D04365F159253E2C16A5737342B5735F6F6938E960D66430' +
'9B0D1B5292146ECD92156ABF1F013CD39DBE736D1E05FCF644FFE' +
'8BAC6A8FAF927AEB5338A958DF905A105631F');
Result := 1720403;
end;
Symbol_house:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9D90410AC0300804BF6' +
'41B2DF66863F3FF2715BA978560A0BD0C32E2B228F766123D53BB' +
'33E5F5A08DC3ECD434550779BBBE9D3D1290C9846FDEC63EC02A8' +
'13D9B7F5C77AE9AF337B86DE4A5E1E0D7649EABE4F9F601C37765' +
'F5');
Result := 4740173
end;
Symbol_AxeShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95D04B0EC3300804D02B91' +
'0033F6127F72FF23A52A1BA4AA55BA1959483C036202E953A74F7' +
'EA6BBC35B260C403335377680767CEB92B7293FE59A71BEBE187D' +
'1136D2C7C583CAC6E0CCCABF7235B9A13A728B34EB2EA1E1F148E' +
'E8D8655CDECADF7C977D69FC8B1BA0269E2B27DEEDA9B13D63933' +
'EB356E4B7C6439');
Result := 6841956;
end;
Symbol_CookeryShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DCE410AC0300804C0' +
'2F194CDCE42896FCFF49856E0F421072D983BA83D2C56485C608E' +
'4C484236CA341999CBBFA7020A6CEFEDF74339B9CF3463E530A99' +
'4993ADDCA55C6D6F647E955B959CB757F22754F2F9ED8DBCCCD01' +
'B137B3CDAB290E76797E60B5A736560');
Result := 7565679
end;
Symbol_windmill:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA3330313033B074367' +
'6367536C745BA0181A11132E968EC68EA8853BD01D84C0324930D' +
'5C4C8D8C9C217A91D9C48840D8B84CC6741BB22E6412974A885F6' +
'8E1665C264348882C3289CB6DB848889900AC8467DB');
Result := 1245183;
end;
Symbol_minigame:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8D90410EC0200804B' +
'FB4AD22E568B1FFFF52132129C6DAF432214626CB22A340342929' +
'47B68DAE82066E2C0D99323BFBBB0A0E88CD3555AAC32EBA1393D' +
'99D6E36E7E38FCEC86FF3906D412D09FBB9E4FFCCA113DFED996D' +
'8E7FAC13E3CAFCD2B3DD1BB34D3DC7B6CD79039CA16371');
Result := 4670928;
end;
Symbol_furtrader:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA3330313033B0743' +
'67636753647262D2C4C8C0D2C31497357A07A0B64D2D1D8D1D4D1' +
'1C4242F41A80CD34C06132A6F9C49849BCC9B8CCC76526792623B' +
'B16BF7A52438378F321660200DE126419');
Result := 607112;
end;
Symbol_archeryshop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA5CE490AC0201' +
'044D12BB5560F71E910EF7FA4403A0B8318846CFEAA78143129A5' +
'8A2AD5769A9A29172F8385CD9B91253F1BBA4DDA964733A91A07D' +
'7FEC8A366A702C59D51DB9215140BF77804BCCC2E0D6136E7AE64' +
'37477FF5F35BBE0049C36545');
Result := 4945565;
end;
Symbol_StaffShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA5D03B0AC0300C0' +
'3D02BD9F1AF198D83EF7FA442BCB6C1B48B26F110020685191412' +
'D6C9A96A8C96B2089D5CFCA103DB84B65CA60F49CC32FFCBA55D8' +
'B7DD0D9ECCBFD9DDFE4F3AB6FF20D38E96664');
Result := 4286358;
end;
Symbol_ClothesShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DD04B0AC0200' +
'C45D12D3DF2D13A0CE9FED754681CA4484A267720CF8308C1C072' +
'76F51925BE2023CAB2A0D66916F09A487236CF66A73AAFE4686C8' +
'C4D6DE25622AFE4D8E4FDBE55C8D1BE9CF7FF6FFEFC585B3EFFF9' +
'012BE4618A');
Result := 5935156;
end;
Symbol_FarmingSpot:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDyAAwRZC' +
'Lir87iJ8c2fPx/IBarEpRiicj4M4FGMrBIuiKm4rKw0PSMDqBhNJaZiiEoIQl' +
'MJUgwAOf97Lg==');
Result := 12632256;
end;
Symbol_Apothecary:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9DD0310AC030088' +
'5E12B69A3A68ED6D6FB1FA9D02C4230942CFF241F0F814040BD39' +
'7BAFAA8748C46847C2A75B33B6F21E3E13967236B33CBA2767CDD' +
'5EFE05926C5F3D23DB932B33C7FE6FFE66AED5A7E01E72B65AE');
Result := 16737938;
end;
Symbol_SwordShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95D0410AC030080' +
'4C02FD9C66CE25125FFFF524BBD08A5C520EC41964124269078F3' +
'EEE33FC5EF918535971A1B0C6000539B761D91D1A4C7A4829CCD1' +
'06293E5DCFF929BF231CEBAB92B47EE9A956FBC2FAF9859BE0057' +
'DB6637');
Result := 10067100;
end;
Symbol_PlatebodyShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DD0410AC02' +
'00C44D12BA56832761902BDFF910A9DCD8055DCFC850C4FD1BA85' +
'DDD5CA0B6CF48818F1E042633190A87D55B0CF349167534FD459D' +
'DBB92596EB2A527DC3DFC4FFE6EE446F7EC4A66CF65DDEFDFAC3D' +
'97E77F7E014609646B');
Result := 8157816;
end;
Symbol_ScimitarShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9DD04D0AC340' +
'0805E02B8D7FCF71399349EF7FA4A6B8A825109A203C5CE887D8A' +
'81D356962CA3FD9475FDD96AE581012880405E267A6D1B7CE0277' +
'61DBAB56CDEC6963A2F14CAE5AA69B0FF76ADE95315CBDA59FBB2' +
'AEAAAF50367F35A0630711C0AB697B1B9E9678223F3DAACF21B5C' +
'65625E');
Result := 8752522;
end;
Symbol_GemStall:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA58E4B0AC0300844' +
'AFA4F96719F3B9FF919A640A154A3729836F21FA18629A1196201' +
'6ECCD772FE0E03AAA057B32F350338DF50B6A03F1932FF34DEDDC' +
'1BED0433E7900FCD835C76011B89BFCDAFB6AEAEFB504FCC6013F' +
'6C4DA8C9E306B1653E29C4D6DBE0027B7630B');
Result := 1777896;
end;
Symbol_SilkStall:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA333034004227432' +
'733276364D2C2C4C0D0D488181253AF81210262CA42484B67030B' +
'33476248DA996C696869664994C9C48706B299F84D36733630347' +
'62486849889CB6400B4306127');
Result := 5374340;
end;
Symbol_PlateskirtShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA3330340042' +
'2743273327634CD2D9D8CCC2D9009974323235763282909686966' +
'696587419182220F126239B4F9EC9B8DC8929423B93315D4E2034' +
'709843BCC900457662CC');
Result := 12609731;
end;
Symbol_Agility:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpjYGRgYDwABkAGEM2fPx' +
'+NAWHDFRyAAbgssgIIA1Mxsnq4GjyK0czHFMcUmQ8G6I4EAIrAWyc=');
Result := 65536;
end;
Symbol_TrainingDummy:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA5CC5B0AC43' +
'00805D02D69468DF9BC6DEAFE97D401032384F92845B8888F434C' +
'DF0210386A6A6B9D3833270E0F5F5B7371D2FD2B93F857FFE4D4A' +
'AE962D402E738ED1A0768E08D5CE743FA14A49CB9DF3C95CDA4B3' +
'A6EC1FB73E6BBE974D6572403C74F9AB2F9769DEA32D69B5');
Result := 1586538;
end;
Symbol_FoodShop, 'food store':
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA5D0610AC0200806' +
'D02B559ADA4F37DAFD8F3499C11C6D63B02F900A79882959B28AC' +
'A825E09908A0893A0B4C25441ED49A0DA2AB3DFFDDF7B467FE64D' +
'C88594CF13E56651A08C1DD66146F9A82E47532C0DDFE531F92C8' +
'77A9183F945BED9C66F396EC385D91F321AD29FE41DF6B66191');
Result := 7837098;
end;
Symbol_FishingShop, 'fish store':
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA3330340042470B470B' +
'27134CD2D2C2C4C8C010425A0081A509844456832962608880E49' +
'9099431773425DE64E2CD4426F19B8C6CA6990950812BAE50C234' +
'19D9765C6E8698894C62BA193334304D0600DE086263');
Result := 9734280;
end;
Symbol_Jewelery:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9D904B0AC0300844A' +
'F646843E2D24FBCFF911A6217820DB4DD0C32EA43070A28B08088' +
'6054AB664DB46B07E64276220109A1D7EEFB4CDE85C5840D79E0E' +
'05223D3D5BBEEFB4CF4DF933333AA5FFE957CFFDB95DB5356CBFF' +
'479E471FB395F2DCE59FC917FB9B6AAB');
Result := 4829105;
end;
Symbol_CraftingShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95CEC10AC020' +
'0C03D05F8AD3D979AC71FFFF4BC27A29C8A45E420EE111240C748' +
'2648B24BEFDD5B36414149626F793E45D3708CBDEACA98EAA662A' +
'94DA2C4FE5D5F49A374FE53F73FF642F9B693D627A79020EC868E' +
'C');
Result := 3159851;
end;
Symbol_Portal:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA5D04B0AC0300805' +
'C02B69D2D6B8D47CEE7FA4045CD442ED22457848D0410208AB549' +
'4942D2F4858DAA9B05A6A4895251DB93FD2DE6DC6E6BD0078D7B7' +
'A98374A0CFC86761E2173977C052F764DB8DE43F375B46F2DE3F7' +
'BD3CB13F26764CE');
Result := 15287202;
end;
Symbol_MakeoverMage:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA333034703170' +
'7236707676B68490066011571367734B174CD2D2D8CCD5C418993' +
'4C06182015E9391D5608A209BEC68E0E8EC4882C9C4BB99129391' +
'DD499EC9F8CDC76526A6C9003E5F6688');
Result := 10340324;
end;
Symbol_MaceShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9DD14B0A80300C04' +
'D02B4D4CF3E93226DEFF4A82155404296EB21A1E330484C29AC8C' +
'CFE7DAD7BB89A38D9A6696EA2A4A511888C4712878909D9521BB3' +
'A6086368B248C969FE932F7381546BE477ED6DCEC80F135C64DFD' +
'A8C7CDFFEEE39F39161EE1ADD6893');
Result := 8817273;
end;
Symbol_HairDresser:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303470317072' +
'36707676B68490066011030C71E2D5E0977534707476C4A206998' +
'DAC8654B7E1B2059984C84248F27C8D6C3EB269C4BB19531CD91C' +
'4CF7E37233005E916796');
Result := 13225152;
end;
Symbol_MiningShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33B03430313074' +
'B670367672C5241D2D1C8D2DA1A40158258474737473333285909' +
'8BA9055E232199944360DBFF9C49B8C6926B22F20E21011FC263B' +
'5998BAC0447099499EC9C498896C022E9301172B6823');
Result := 10396584;
end;
Symbol_SilverStall:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA958E410AC0400' +
'803BF14D1823D6E6DF3FF2715EA4510A17B09C198211008347031' +
'A4AB4169E2E6EA071F06EFF4F5DE5BF89818C8D9ADB4AE13FF0FB' +
'976FBF2F4F9B370726D90FBB64977C913BFA6D3E61755066363');
Result := 8749956;
end;
Symbol_SpiceStall:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA9DD0C10E80200C' +
'03D05FEA06883B22D2FFFF2413F140B240D44BD3C3FA0E8340102' +
'A0E5619D3984CAC714B50B224D1A72B9BEEBDF71BBFC56DC2C96F' +
'CCB5EFE5A9F9D1F77244609C66B67CE6B6CE0263997EE39FDFCD5' +
'1BE002BE06493');
Result := 157167;
end;
Symbol_FarmingShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95CE410E80200' +
'C44D12B4D5B405C160CF73F92C461D1C498E0E6D374F1280402EB' +
'68A30B6B559340150D25F5F95ED55392D556735365BBA96B661DE' +
'7F025E031F192A9D1E75CAA1D52A2CFD2E42FFB7234BFE478FF8E' +
'9CE7128332E72FEDAF1C2FDF91A319E51BD93562F0');
Result := 1918090;
end;
Symbol_SlayerMaster:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAA5D04B0AC030' +
'0804D02B8D89A5CD320D9DFB1FA9BF8D622D8582B810E6210381A' +
'00EAC1CA2A85461E3F34C1CB366FBCE7634F6533C4C04D9FAEE62' +
'84ECF22EDB3F9D53B89525CADF7F4E1BB864B77FB411B359C351D' +
'E019F8C655C');
Result := 7666933;
end;
Symbol_Herbalist:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA7D8E5D0AC0300883' +
'AFA4FDD33E5AC6EE7FA415C258C0D10A22267E8DA8EC5A253C9CB' +
'B5EF5166D7D4C89DE6DE9C45C6DF8BB1733FBBB15FD0A1B10B001' +
'99F9CCC42C5AB77B16DFEF4C86BF370B355C653272428513EA990' +
'C3FF3393954EEFC2327CFE4CCCFC933136A263F5CC35F29');
Result := 682309
end;
Symbol_CandleShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA33303400422723' +
'470B470B4CD2CDD0C2D5C01042BA9ABB9A9A3A218BE0D26560888' +
'0B8D4209B8F6CB2A591051040488A4C367035753571317136B134' +
'8390B8CC1CEA26030022F6653F');
Result := 6022631;
end;
Symbol_SawMill:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DAB58EB10DC03008045' +
'70A600C2EFDF1FE33450A299088A53469AEB08FD3D3498D7861C9' +
'3A2A4D3ABA0FF1E99619EFBB2BBA9B54CA0A157D69C66FED87FFA' +
'55CD7663FF7C30120F87173EEEFCA266DF2431F0AB6E11D3C770C' +
'A76EBE00CD48658B');
Result := 8882835;
end;
Symbol_KebabShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpj4OBg4Dh37BgQZTtJRDFwZM8' +
'xhKD/mpo9DAwgEScJiAKgSohioIjEFJBKIAlEQJUQxcjqkRUDVULE' +
'gSQQzUl2ArKB5N7qKCBj6dKlyIoh4lhJNMWY6iEIZCNYJUgxALQIU' +
'2Q=');
Result := 7316427;
end;
Symbol_ShortCut:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8D90410AC0300804' +
'BFA421A1E95137EDFF9F54E8F62088259741161D64C5B4E98573E' +
'9821B1A206E3EE49F5DAC1F835724F36F7E9D12CCD370DBE40EE7' +
'9854FE9864330DF993C8ECC9CC66F65039F7FD551B3BDCFFF9018' +
'756682E');
Result := 5286667
end;
Symbol_HunterStore:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA95D0510AC3300' +
'806E02BC558CDEFA309F6FE47DAC08E3942A143F041934FB1517B' +
'87C78447CD76BA591CCA445015EE5DD641C459F9D4F554C997F56' +
'FA36FEC3204819E663A77F25CAE633C972F01BC48AAB9FBB9C373' +
'79DFB6E69C98DDE1E0813FAE1106FCF897564C992A6277F20B925' +
'96443');
Result := 1261916;
end;
Symbol_HunterTraining:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DCF410A00' +
'210C03C02FC52D76E9B18AFFFF92B0EB2150025E728876AC78916' +
'8D3678C55D360F6F89FE919211B9EC267A2C87CB32F6FFD08EC70' +
'CF6FDDC8D554597F712FF3AC3AE546C96A1FE573B2BC0197F063A' +
'B');
Result := 10398118
end;
Symbol_Sandpit:
begin
SymbolBitmap := BitmapFromString(15, 5, 'z78DA8DCF4B0AC0300' +
'804D02B8DA9F9B84CA4BDFF91526A16820D64330CA20F0481208A' +
'51B4FA1C4998CBD07EE5D5EFA654B34F9BC75B7C2682BC336D72E' +
'247B921239137577766ECB629E9BD959D5CC14CCF8F1FBE88A665' +
'8794BE952DFDFE49DA95972794856206');
Result := 7717352;
end;
Symbol_PetShop:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpj42Nm4zt87GxnbWFhUkh' +
'skCsQ7dm7CYIgXKB4dUkYUA1QJVwxULyypllFSQMoBUEQLlAcyF68' +
'bA1ccV1hBlAQKAXkQoxdOL0LyMalGCgLUQYRhOsCOgOI0BQfWt0JQ' +
'TomBhAEVAnkAo0FGg5SDADYtlua');
result:= 11713980;
end;
Symbol_SummoningObelisk:
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNpj42Nm4zt87CwE2SVP1' +
'XaoKeidC0SeUTWfHj4AiixetgYoCCSBKuGKgSKVNc1AZXMO3AOpWf' +
'8EqBiiEaIFrhioEigCRJPnrAAqBqJjl98BEVAlxFigGmSTIVqAtgM' +
'VAI0FqgeSEBMwFQNVAo0FigPVgxjrnwB1Obj4IBQDAImMdLM=');
result:= 10325360;
end;
Symbol_SummoningStore:
begin
SymbolBitmap := BitmapFromString(15, 5, 'meJyzicq0QUKMDAzIyAZVFk3ZAVS' +
'AVQtQJGrCfCA6gA0gqweyFyxY8OjFi5MPvwLVb9uyEVM9muLJ377C' +
'1WNqgRgOABDhZzk=');
result:= 9697013;
end;
Symbol_RestingSpot, 'rest':
begin
SymbolBitmap := BitmapFromString(15, 5, 'beNptjUENwDAMAw2lU' +
'AylUAyljwEZtFryukVd7xHpYisBzF2wjnEdFfjKWCTdtJY9exfJpJ' +
'u6kKVhAxeNyj76f/ReM5IceVZ9yhPESE1p');
result:= 84113280;
end;
Symbol_Runecrafting, 'rc', 'rcing':
begin
SymbolBitmap := BitmapFromString(15, 5, 'meJxjZGA4cOBAREpJY3M7U+tPxu3' +
'fgAjICAmJBCKIOJABVMPIwMAIVgwR5/T8C1QGIZkFvsPVY1UMJOGG' +
'A7VA1GMq1rawgQgCFQCVwdUD9QLFgbLIilV0teCGABFcPcRwoCxEM' +
'QBG91kH');
result := 542972;
end;
Symbol_Lodestone:
begin
SymbolBitmap := BitmapFromString(7, 7, 'meJzb09k0KSgPgvZ0Ni2qzb0yDyRS' +
'YhkMQUA2UBCIfv/5DWQ72tkBSQh7D1jvw8cPgVwgCdEFIYEiEARUD' +
'xfcvXX9y/MHgCTcZCAXyICYCWEDzQQA7QVQBA==');
result := 13934210;
end;
end;
end;

(*
GetSymbolColorIn
~~~~~~~~~~~~~~~~

.. code-block:: pascal

function GetSymbolColorIn(var rx, ry: Integer; Name: string; xs, ys, xe, ye: Integer): Integer;

Returns the Color of the Chosen Symbol, Searching in a selected area
of the Minimap

.. note::

by Starblaster100 based off of the ideas of Stupid3000

Example:

.. code-block:: pascal

*)
function GetSymbolColorIn(var rx, ry: Integer; Name: string; xs, ys, xe, ye: Integer): Integer;
var
TheColor, c, Speed, x, y: Integer;
acc: Extended;
begin
Speed := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
TheColor := LoadSymbolBitmapColor(LowerCase(Name));
if (TheColor <> 0) then
begin
FindDeformedBitmapToleranceIn(SymbolBitmap, x, y, xs, ys, xe, ye, 70, 0, True, acc);
if (acc > SymbolAccuracy) then
repeat
c := c + 5;
if FindColorTolerance(x, y, TheColor, x, y, x + 15, y + 5, c) then
begin
Result := GetColor(x, y);
rx := x;
ry := y;
end;
until (Result > 0) or (c > 70);
end else
srl_Warn('GetSymbolColorIn', Name + ' is not a valid name.', warn_AllVersions);
try
FreeBitmap(SymbolBitmap);
finally
ColorToleranceSpeed(Speed);
except
Result := 0;
end;
end;

(*
GetSymbolColor
~~~~~~~~~~~~~~

.. code-block:: pascal

function GetSymbolColor(var rx, ry: Integer; Name: string): Integer;

Returns the Color of the Chosen Symbol, searching the whole Minimap

.. note::

by Stupid3ooo and Modified by Starblaster100

Example:

.. code-block:: pascal

*)
function GetSymbolColor(var rx, ry: Integer; Name: string): Integer;
begin
Result := GetSymbolColorIn(rx, ry, LowerCase(Name), MMX1, MMY1, MMX2, MMY2);
end;

(*
FindSymbol
~~~~~~~~~~

.. code-block:: pascal

function FindSymbol(var rx, ry: Integer; Name: String): Boolean;

Finds a minimap Symbol and returns a Boolean if True.

.. note::

by Stupid3ooo

Example:

.. code-block:: pascal

*)
function FindSymbol(var rx, ry: Integer; Name: string): Boolean;
begin
Result := (GetSymbolColor(rx, ry, LowerCase(Name)) > 0);
end;

(*
FindSymbolIn
~~~~~~~~~~~~

.. code-block:: pascal

function FindSymbolIn(var rx, ry: Integer; Name: string; xs, ys, xe, ye: Integer): Boolean;

Finds a minimap Symbol and returns a Boolean if True.
Searches a selected area of the Minimap

.. note::

by Starblaster100, based on the ideas of Stupid3ooo

Example:

.. code-block:: pascal

*)
function FindSymbolIn(var rx, ry: Integer; Name: string; xs, ys, xe, ye: Integer): Boolean;
begin
Result := (GetSymbolColorIn(rx, ry, LowerCase(Name), xs, ys, xe, ye) > 0);
end;

(*
IsPointInTPA
~~~~~~~~~~~~

.. code-block:: pascal

function IsPointInTPA(Point:TPoint; TPA:TPointArray): Boolean;

Returns true if a point is in a TPA.

.. note::

by IceFire908

Example:

.. code-block:: pascal

*)
function IsPointInTPA(Point: TPoint; TPA: TPointArray): Boolean;
var
I: LongInt;
begin
for I := High(TPA) downto 0 do
if (TPA[I].X = Point.X) then
if (TPA[I].Y = Point.Y) then
begin
Result:= True;
Exit;
end;
end;

(*
FindSymbolsIn
~~~~~~~~~~~~~

.. code-block:: pascal

function FindSymbolsIn(var AnsTPA: TPointArray; SymbolName: string; x1, y1, x2, y2: integer): Boolean;

Finds a symbol in multiple places within the search coords. Results
true if at least 1 symbol is found.

.. note::

by lordsaturn Fixed by Bad Boy JH

Example:

.. code-block:: pascal

*)
function FindSymbolsIn(var AnsTPA: TPointArray; SymbolName: string; x1, y1, x2, y2: integer): Boolean;
var
CTS, Col, Hi, i, x, y, fx, fy, L: integer;
aP: T2DPointArray;
P: TPointArray;
Pt: TPoint;
acc: Extended;
begin
Col := GetSymbolColorIn(fx, fy, SymbolName, x1, y1, x2, y2);
if Col = 0 then
Exit;
FindColorsTolerance(P, Col, x1, y1, x2, y2, 0);
aP := TPAtoATPA(P, 10);
Hi := High(aP);
LoadSymbolBitmapColor(LowerCase(SymbolName));
CTS := GetColorToleranceSpeed;
ColorToleranceSpeed(1);
SetLength(AnsTPA, Hi+1);
for i := 0 to Hi do
begin
Pt := MiddleTPA(aP[i]);
if IsPointInTPA(Point(fx, fy), aP[i]) then
acc := 1
else
FindDeformedBitmapToleranceIn(SymbolBitmap, x, y, Pt.x-15, Pt.y-5, Pt.x+15, Pt.y+5, 70, 0, True, acc);
if (acc > SymbolAccuracy) then
begin
AnsTPA[L] := Pt;
Inc(L);
end;
end;
Result := L > 0;
SetLength(AnsTPA, L);
try
FreeBitmap(SymbolBitmap);
finally
ColorToleranceSpeed(CTS);
end;
end;

(*
FindSymbols
~~~~~~~~~~~

.. code-block:: pascal

function FindSymbols(var AnsTPA: TPointArray; SymbolName: string): Boolean;

Finds a symbol in multiple places searching the whole minimap.
Results true if at least 1 symbol is found.

.. note::

by lordsaturn

Example:

.. code-block:: pascal

*)
function FindSymbols(var AnsTPA: TPointArray; SymbolName: string): Boolean;
begin
Result := FindSymbolsIn(AnsTPA, SymbolName, MMX1, MMY1, MMX2, MMY2);
end;

(*
FindSymbolsMultiIn
~~~~~~~~~~~~~~~~~~

.. code-block:: pascal

function FindSymbolsMultiIn(var aTPA: TPointArray; Symbols: TStringArray; x1, y1, x2, y2: integer): Boolean;

Finds multiple symbols the specified area. Results true if at least
1 symbol is found.

.. note::

by Nava2 & NCDS

Example:

.. code-block:: pascal

*)
function FindSymbolsMultiIn(var aTPA: TPointArray; Symbols: TStringArray; x1, y1, x2, y2: integer): Boolean;
var
gTPA: TPointArray;
I, H: Integer;
begin
H := High(Symbols);
for I := 0 to H do
begin
if FindSymbolsIn(gTPA, Symbols[i], x1, y1, x2, y2) then
Result := True;
aTPA := CombineTPA(gTPA, aTPA);
end;
end;

(*
FindSymbolsMulti
~~~~~~~~~~~~~~~~

.. code-block:: pascal


function FindSymbolsMulti(var aTPA: TPointArray; Symbols: TStringArray): Boolean

Finds multiple symbols in multiple places. Results true if at least
1 symbol is found.

.. note::

by NCDS

Example:

.. code-block:: pascal

*)
function FindSymbolsMulti(var aTPA: TPointArray; Symbols: TStringArray): Boolean;
begin
Result := FindSymbolsMultiIn(aTPA, Symbols, MMx1, MMy1, MMx2, MMy2);
end;

nokkasiili

2012-04-30 13:48:00

Very usefull also makes autocomplete easy

NCDS

2012-04-30 15:18:30

I'm not opposed to it by any means, though I'm not sure how much symbol.simba is used these days, or how useful it even is anymore.

Regardless, it needs to be made up of integer constants. I thought we had already changed all string cases to integers, but apparently not all of them were done.

putonajonny

2012-04-30 16:30:26

From: NCDS
I'm not opposed to it by any means, though I'm not sure how much symbol.simba is used these days, or how useful it even is anymore.

Regardless, it needs to be made up of integer constants. I thought we had already changed all string cases to integers, but apparently not all of them were done.


Why would it need to be integers, unless the parameters became variants that would break scripts. Symbols are very useful for scripts that teleport for example from my RC script:

While(not FindSymbol(x, y, 'quest'))do
Wait(200+Random(200)); //with a fails safe ofcourse

This is as it uses the balloon method to craft law runes, as it travels via balloons it waits until it sees the quest symbol which will only appear once it has finished, symbol finding is also used in my essence miner because the portals change location on every login / teleport, so it finds the symbol and clicks on it to get to the portal.

And btw banks use string constants still

Daniel

2012-05-02 02:08:56

From: putonajonny
Why would it need to be integers

Comparison speed.

putonajonny

2012-05-02 03:24:50

From: Daniel
Comparison speed.


I'm no expert at all, but I think that having to change the parameter to a variant and then determine the variable type would take longer than just having the constant as a string, correct me if I am wrong, this is just based on intuition not anything I have tested / researched.

NCDS

2012-05-02 08:31:10

From: putonajonny

And btw banks use string constants still

Odd. I know for a fact when preparring SRL5 I made bank.simba take integer constants as that was one of the goals of SRL5. Must be those changes were lost/reversed at some point.
Actually, I just remembered what happened here..
From: putonajonny
I'm no expert at all, but I think that having to change the parameter to a variant and then determine the variable type would take longer than just having the constant as a string, correct me if I am wrong, this is just based on intuition not anything I have tested / researched.

The parameter wouldn't be a variant. Integer comparison is the quickest type comparison, and is what SRL will eventually use in all cases.

putonajonny

2012-05-02 08:58:17

From: NCDS
Odd. I know for a fact when preparring SRL5 I made bank.simba take integer constants as that was one of the goals of SRL5. Must be those changes were lost/reversed at some point.
Actually, I just remembered what happened here..

The parameter wouldn't be a variant. Integer comparison is the quickest type comparison, and is what SRL will eventually use in all cases.


Yeah they are still strings, I do agree with you now though, if the parameter is going to be changed to an integer then I am all for it, just not if it is a variant, so is it a good idea to add constants for these or not?

Symbols with integers:

Const
Symbol_agility = 0;
Symbol_furnace = 1;
Symbol_altar = 2;
Symbol_anvil = 3;
Symbol_apothecary = 4;
Symbol_archery_shop = 5;
Symbol_arrow = 6;
Symbol_axe_shop = 7;
Symbol_bar = 8;
Symbol_bank = 9;
Symbol_candle_shop = 10;
Symbol_lodestone = 11;
Symbol_churn = 12;
Symbol_clothes_shop = 13;
Symbol_cookery_shop = 14;
Symbol_cookery = 15;
Symbol_cook = Symbol_cookery;
Symbol_crafting_shop = 16;
Symbol_dungeon = 17;
Symbol_farming_shop = 18;
Symbol_fishing_shop = 19;
Symbol_fishing_store = Symbol_fishing_shop;
Symbol_fishing_spot = 20;
Symbol_fish = Symbol_fishing_spot;
Symbol_food_shop = 21;
Symbol_food_store = Symbol_food_shop;
Symbol_fur_trader = 22;
Symbol_rare_trees = 23;
Symbol_tree = Symbol_rare_trees;
Symbol_resting_spot = 24;
Symbol_rest = Symbol_resting_spot;
Symbol_runecrafting = 25;
Symbol_rcing = Symbol_runecrafting;
Symbol_rc = Symbol_runecrafting;
Symbol_gem_stall = 26;
Symbol_guide = 27;
Symbol_hair_dresser = 28;
Symbol_herbalist = 29;
Symbol_house = 30;
Symbol_hunter_store = 31;
Symbol_hunter_training = 32;
Symbol_jewelery = 33;
Symbol_kebab_shop = 34;
Symbol_mace_shop = 35;
Symbol_magic_shop = 36;
Symbol_makeover_mage = 37;
Symbol_mill = 38;
Symbol_minigame = 39;
Symbol_mining_shop = 40;
Symbol_mining_spot = 41;
Symbol_mining_site = Symbol_mining_spot;
Symbol_mine = Symbol_mining_spot;
Symbol_pet_shop = 42;
Symbol_platebody_shop = 43;
Symbol_plateskirt_shop = 44;
Symbol_portal = 45;
Symbol_pottery = 46;
Symbol_pot = Symbol_pottery;
Symbol_quest = 47;
Symbol_windmill = 48;
Symbol_sandpit = 49;
Symbol_saw_mill = 50;
Symbol_scimitar_shop = 51;
Symbol_shield = 52;
Symbol_shop = 53;
Symbol_store = Symbol_shop;
Symbol_short_cut = 54;
Symbol_silk_stall = 55;
Symbol_silver_stall = 56;
Symbol_slayer_master = 57;
Symbol_spice_stall = 58;
Symbol_spinning_wheel = 59;
Symbol_spin = Symbol_spinning_wheel;
Symbol_staff_shop = 60;
Symbol_summoning_store = 61;
Symbol_summoning_obelisk = 62;
Symbol_sword_shop = 63;
Symbol_tanner = 64;
Symbol_training_dummy = 65;
Symbol_transportation = 66;
Symbol_underground = 67;
Symbol_water_source = 68;
Symbol_water = Symbol_water_source;
Symbol_weave = 69;

Banks with integer constants:
Const
Bank_FE = 0; // (Falador East Bank)
Bank_FW = 1; // (Falador West Bank)
Bank_VE = 2; // (Varrock East Bank)
Bank_VW = 3; // (Varrock West Bank)
Bank_GE = 4; // (Varrock GE Bank)
Bank_DR = 5; // (Draynor Bank)
Bank_AK = 6; // (Al-Kharid Bank)
Bank_EV = 7 ; // (Edgeville Bank)
Bank_CT = 8; // (Catherby bank)
Bank_CM = 9; // (Camelot bank)
Bank_NA = 10; // (North Ardougne bank)
Bank_SA = 11; // (South Ardougne bank)
Bank_YN = 12; // (Yanille bank)
Bank_NG = 13; // (North gnome bank)
Bank_SG = 14; // (South gnome bank)
Bank_WG = 15; // (Warrior guild bank)
Bank_FG = 16; // (Fishing guild bank)

SRL_BANK_SW = 20; // Soul Wars chest
SRL_BANK_CW = 21; // Castle Wars chest
SRL_BANK_B = 22; // Burthrope chest (outside warriors guild)
SRL_BANK_GG = 23; // Gamer's Grotto (north of Falador)

NCDS

2012-05-02 09:11:58

As integers, not right now. As strings, perhaps if people find it useful.

I wouldn't mind adding your string contants when I get back from work. Sorry for the confusion. I had forgotten that we put off the type changes for srl6.

Sin

2012-05-02 09:41:36

@NCDS.
I use symbol ALOT, as detection in my Nat crafter and other scripts to find if it's in a certain area.
I 100% support this idea.

NCDS

2012-05-02 15:01:40

From: Sin
@NCDS.
I use symbol ALOT, as detection in my Nat crafter and other scripts to find if it's in a certain area.
I 100% support this idea.


I understand that symbol recognition is a very popular element when scripting for RS. I just didn't think SRL's symbol.simba was used very heavily.

Although, now that I look through symbol.simba, it's structure has a few flaws.

I'll add in these constants today, and keep the rest in mind for the future.

putonajonny

2012-05-08 09:01:09

I have also added a new symbol to the OP fyi :)