Simba Code:
(*
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;