Well this is what I do.
Simba Code:
procedure GetDTMs;
begin
BankBoothDTM := DTMFromString('mbQAAAHicY2VgYNBiZGBQAGJtINYAYgMgngcUnwPEU4F4KRAvBOL85FCGI3v2MLSUpTGkx/gzeNgaMPADxdExIxYMBgDBAgrH');
BankDTM := DTMFromString('mlwAAAHicY2dgYAhhYmDwBOJkIHYF4gogdgfiLCCuBsrXAHEOEOcD8QwgTgDiWhB7cjdDQ00JQ2S8NENanCZDW/dkhllTexmy0uIZ+IHyuDAjHgwFAKpTD7A=');
RingDTM := DTMFromString('mggAAAHicY2NgYNjLxMCwEYj3AfFWJgh/GxBXMDIw1ANxCxC3AXEtEFcDsfgcKYZzm+QYGvOFGa5sl2e4sVuBob9GlIEfaBY2zIgDQwAAM04PsQ==');
GraahkDTM := DTMFromString('mggAAAHicY2NgYHgBxM+A+A0QfwTiu0D8BIjzgTgTiguBOBdKH8q3ZqjOCALjTWtnMbQ2FoPF+IFy2DAjDgwBALoXERc=');
NatsDTM := DTMFromString('mlwAAAHicY2dgYHgExM+B+C4QPwXi10D8HiqWB8T5QFwExCVAXAzEuUCcBcSCtSJgHOTvzxAfHc1QlJvLMLW/DyzGBZTHhRnxYCgAALzIEJc=');
EnergyPotDTM := DTMFromString('mggAAAHicY2NgYMhiZGDIBOI0IM4B4hQgzgXiQqBcFRCXQXE+EBcBcbmTF5BkYujwCWUocfBg6PINY0gwtWHgB4piw4w4MAQAAIPHCsM=');
AltarDTM := DTMFromString('mwQAAAHic42RgYGBiZGBgBOKvQDYfkGYGYhYg/gTkizFCcDSQHcgAoWOAOBmIC4HYB4h9gTgXiHNy0hniouNRcFZWKlg8OjqcIT4+moEfqI4QZiQCwwEAYO4QRg==');
RuinsDTM := DTMFromString('mWAAAAHicY2FgYGBnZGB4DaTFgDQfEIcB2QlA7A/ElUC8/K8fQ3p6EkNUVBhDcnIcAz9QDBkzomEQAACwiwgs');
SpellDTM := DTMFromString('mggAAAHicY2NgYNjOxMCwHoi3AfE+IN4LxOuA+ClQ7iEQ34PSz4H4CRC/fv2Kof7QJwyMCzDiwBAAAH3uF20=');
DarkMageDTM := DTMFromString('mlwAAAHicY2dgYNjEyMCwiBFCHwHi00B8CojnAXE/UL4ViHOBuBiIpwJxBxBPB+JDcxsZji5oZji+sIVhamUSQ3qSP0NmSgDDjJpUBn6gPC7MiAdDAQChAxP2');
ContinueDTM := DTMFromString('mggAAAHicY2NgYPgOxCKMDAwvgDQPkFYEYkkgvgzEV4D4KhCfh/JBtEmUIINOMB+DegAvQ1KHNZif0GbJwA/Ujw0z4sAQAAAVgwwq');
VialDTM := DTMFromString('mlwAAAHicY2dgYMhlYmBIAeJiJgg7DYiLgDgHiHkZGRh4oFgUiIWAWBCI2YE4NDQSqJsJjCMjYxkSElMZ7B2cGKKi4xj4gaK4MCMeDAUAXQII9g==');
PathToAltarDTMs[0] := DTMFromString('mbQAAAHicY2VgYJjNxMCwGIjnAPEEIG4EYk+guA0QB0FxIBB3lWkztHfPYsi2FQBjkzgxBn6gODpmxILBAAC8KQm0');
PathToAltarDTMs[1] := DTMFromString('mbQAAAHicY2VgYFjOxMCwAIgXAvFsIN4IxBFA8SIgLgfiXCC2A+LaNl0GxUhRhlBneYbyXC0wmx8ojo4ZsWAwAADFDwmT');
PathToAltarDTMs[2] := DTMFromString('mbQAAAHicY2VgYFjGxMCwFojLgbgOin2A4okMENoKiB2AuKTVjmHhwvkM8lGiDJLOQgzBLvIM/EBxdMyIBYMBAKeuCWM=');
PathToAltarDTMs[3] := DTMFromString('mggAAAHicY2NgYFjKxMBQDsSVQFwMxI1QbAKUUwFiTSCWAGIbIHYE4oYOLQbVYH6GSFtJMA1j8wPlsGFGHBgCAPntCLg=');
PathToAltarDTMs[4] := DTMFromString('mlwAAAHicY2dgYFjAxMDQC8T9QLwCiucAcR8QWwPl3YHYF4idgdgTiN2A2ByIVYMFwTjSVhpOR2YpMUzu0WXgB8rjwox4MBQAAKkvC8I=');
PathToAltarDTMs[5] := DTMFromString('mwQAAAHic42RgYJjMxMAwAYgnAnELEp4DxHOBuAaIi4HqMoE4D4jzgbgSiEuhuAqI24DYM12FQT5EhCHYTg5Mg7CaBC9cDIT5geoIYUYiMBwAANXdDwU=');
PathToAltarDTMs[6] := DTMFromString('mggAAAHicY2NgYFjDxMAwC4qnAPFUIF4IxGlAuXQgzgHiYCCOAOJ8IK6u12BQDBZkCLWVRqH5gXLYMCMODAEArg8Kew==');
PathToAltarDTMs[7] := DTMFromString('mggAAAHicY2NgYEhjYmDIBeJoII4D4nAgjgLiFKBcOhAXAnEJA4SfAcRhztIMSpGCYAxjg2h+oBw2zIgDQwAA/eII7A==');
end;
procedure Free;
begin
FreeDTM(BankBoothDTM);
FreeDTM(RingDTM);
FreeDTM(BankDTM);
FreeDTM(GraahkDTM);
FreeDTM(NatsDTM);
FreeDTM(EnergyPotDTM);
FreeDTM(AltarDTM);
FreeDTM(RuinsDTM);
FreeDTM(SpellDTM);
FreeDTM(DarkMageDTM);
FreeDTM(ContinueDTM);
FreeDTM(VialDTM);
FreeDTMs(PathToAltarDTMs);
end;
And then in my main loop I have
Simba Code:
procedure MainLoop;
begin
AddOnTerminate('Free');
GetDTMs;
//rest of my main loop after
end;