← Back to team overview

widelands-dev team mailing list archive

[Merge] lp:~widelands-dev/widelands/bug-1298011 into lp:widelands

 

GunChleoc has proposed merging lp:~widelands-dev/widelands/bug-1298011 into lp:widelands.

Requested reviews:
  Widelands Developers (widelands-dev)
Related bugs:
  Bug #1298011 in widelands: "Formatting stuff in Atlantean campaign texts shown"
  https://bugs.launchpad.net/widelands/+bug/1298011

For more details, see:
https://code.launchpad.net/~widelands-dev/widelands/bug-1298011/+merge/214012

Fixed string bug in Atlantean campaign. Improved paragraph formatting in all scenarios.
-- 
https://code.launchpad.net/~widelands-dev/widelands/bug-1298011/+merge/214012
Your team Widelands Developers is requested to review the proposed merge of lp:~widelands-dev/widelands/bug-1298011 into lp:widelands.
=== modified file 'campaigns/atl01.wmf/scripting/texts.lua'
--- campaigns/atl01.wmf/scripting/texts.lua	2014-03-25 06:18:48 +0000
+++ campaigns/atl01.wmf/scripting/texts.lua	2014-04-03 12:48:28 +0000
@@ -59,7 +59,7 @@
 [[Food is very important for mines and military training areas. ]] ..
 [[Establish a well working food environment by building at least one farm, one blackroot farm and a mill. ]] ..
 [[The two kinds of flour together with water from a well will be baked into bread in a bakery, ]] ..
-[[so build a bakery and a well, too.]]) .. [[<br><br>]] ..
+[[so build a bakery and a well, too.]]) .. paragraphdivider() ..
 _([[The other two important food wares are smoked fish and smoked meat. ]] ..
 [[Raw meat is delivered from a hunter. ]] ..
 [[A fisher gets the fish out of the sea while a fish breeder makes sure that a school of fish does not go extinct ]] ..
@@ -227,13 +227,13 @@
 [[and without Lutas having smashed our ship. Now, we are out of his reach. ]] ..
 [[One day later, we sighted an island which seems to have one of these fire spitting mountains on it. ]] ..
 [[I deemed this a sign from the fire god and we landed on its shore.]])
-   .. "<br><br>" .. _(
+.. paragraphdivider() .. _(
 [[We spent the last week building two watchtowers on the mountains close to our landing area; ]] ..
 [[and, of course, a hall for us all. We have very talented constructors in our group – still, ]] ..
 [[the buildings do not match the art we had on Atlantis. I hope they will withstand the next rain. ]] ..
 [[At least, the towers will warn us if a ship from Atlantis follows us and if the island is inhabited, ]] ..
 [[we will see attackers a long time before they arrive.]])
-   .. "<br><br>" .. _(
+.. paragraphdivider() .. _(
 [[We have established ourselves on this island. The next step is now to make it a home. ]] ..
 [[I reckon we need to establish a sustainable economy and to explore our surroundings. ]] ..
 [[I called for specialists and will follow their advice.]])
@@ -298,21 +298,13 @@
 },
 {
    title = _ "Colionder is in Thought",
-   body = colionder(p(_(
-[[Ahh, but I think this is impossible to change. ]] ..
-[[The preparing and eating of food is something deeply ingrained in us Atlanteans]] ..
-[[ – it is a ceremony that we just need for our well-being. ]] ..
-[[So I guess we cannot take this away from the individuals completely.]])) .. p(_(
-[[But we might find a compromise in between: for me, making bread is a troublesome task. ]] ..
-[[Grinding the blackroot and corn to flour and then baking the bread is tedious and boring; ]] ..
-[[I feel a more industrial approach would be helpful here. ]] ..
-[[I for one would love to just have fresh bread delivered to my house every day.]])) .. p(_(
-[[Oooh and even more important: the smoking of fish and meat to cleanse them and improve their taste is terrible. ]] ..
-[[My house is full of smoke and stinks for weeks afterwards. ]] ..
-[[Don’t you think that this could be done in a special building were the side effects do not matter? ]] ..
-[[I think those two things would be accepted by the people ]] ..
-[[and would reduce the cooking time without taking away the ritual.]]
- )))
+   body = colionder(_(
+[[Ahh, but I think this is impossible to change. The preparing and eating of food is something deeply ingrained in us Atlanteans – it is a ceremony that we just need for our well-being. So I guess we cannot take this away from the individuals completely.]])
+.. paragraphdivider() .. _(
+[[But we might find a compromise in between: for me, making bread is a troublesome task. Grinding the blackroot and corn to flour and then baking the bread is tedious and boring; I feel a more industrial approach would be helpful here. I for one would love to just have fresh bread delivered to my house every day.]])
+.. paragraphdivider() .. _(
+[[Oooh and even more important: the smoking of fish and meat to cleanse them and improve their taste is terrible. My house is full of smoke and stinks for weeks afterwards. Don’t you think that this could be done in a special building were the side effects do not matter? I think those two things would be accepted by the people and would reduce the cooking time without taking away the ritual.]]
+ ))
 },
 {
    title = _ "Jundlina Agrees",
@@ -335,14 +327,10 @@
 spidercloth_messages = {
    {
       title = _"A Man Comes to Jundlina",
-      body = opol(p(_(
-[[May Satul warm you, Jundlina. ]] ..
-[[My name is Opol, and I am the highest weaver of the guild abandoning Atlantis and Lutas with you. ]] ..
-[[I come with sad news indeed: we have no more spidercloth. Not a single piece is to be found in our warehouses. ]] ..
-[[Could you not help the weavers’ guild by arranging the building of a weaving-mill and a spider farm? ]] ..
-[[The spiders deliver the finest silk and we will produce the finest spidercloth from it.]])) .. p(_(
-[[We offer to also produce the tabards for young soldiers and the golden tabards for officers for you in exchange. ]] ..
-[[You will need them for sure as soon as you want to recruit new soldiers.]])))
+      body = opol(_(
+[[May Satul warm you, Jundlina. My name is Opol, and I am the highest weaver of the guild abandoning Atlantis and Lutas with you. I come with sad news indeed: we have no more spidercloth. Not a single piece is to be found in our warehouses. Could you not help the weavers’ guild by arranging the building of a weaving-mill and a spider farm? The spiders deliver the finest silk and we will produce the finest spidercloth from it.]])
+.. paragraphdivider() .. _(
+[[We offer to also produce the tabards for young soldiers and the golden tabards for officers for you in exchange. You will need them for sure as soon as you want to recruit new soldiers.]]))
  },
  {
     title = _ "Jundlina Replies",
@@ -439,14 +427,11 @@
 horsefarm_and_warehouse_story = {
    {
       title = _ "Jundlina Considers the Economy",
-      body = jundlina(_"Jundlina", p(_(
-[[People are complaining about crowded streets and slow transportation. ]] ..
-[[We need to help out our carriers on the roads. ]] ..
-[[I have decided to build a horse farm so that the horses can help with the heavy wares.]])) .. p(_(
-[[Another way to take load from our roads is to build warehouses. ]] ..
-[[We have claimed the mountain now, it seems a good idea to have a warehouse on the plateau ]] ..
-[[to avoid having to transport everything up and down the slopes.]]
-      ))) .. new_objectives(obj_horsefarm_and_warehouse)
+      body = jundlina(_"Jundlina", _(
+[[People are complaining about crowded streets and slow transportation. We need to help out our carriers on the roads. I have decided to build a horse farm so that the horses can help with the heavy wares.]])
+.. paragraphdivider() .. _(
+[[Another way to take load from our roads is to build warehouses. We have claimed the mountain now, it seems a good idea to have a warehouse on the plateau to avoid having to transport everything up and down the slopes.]]
+      )) .. new_objectives(obj_horsefarm_and_warehouse)
    }
 }
 
@@ -458,18 +443,12 @@
    posx = 100000,
    posy = 0,
    title = _ "A Dangerous Discovery",
-   body = jundlina(_ "Jundlina is in Thought", p(_(
-[[We found an old building, destroyed and burned by flames. I am very worried about this discovery. ]] ..
-[[The building is not of any kind I’ve ever seen. ]] ..
-[[It is certainly not designed by any Atlantean architect I’ve ever heard about. ]] ..
-[[The building is crude, the assemblage is sloppy. But the materials are very enduring: ]] ..
-[[the wood used for it seemed to have been burned in a strange way before it was used as building material]] ..
-[[ – it is hard as stone.]])) .. p(_(
-[[The implications frighten me. Are there others on this island? Where are they then? ]] ..
-[[They work with fire, are they praying to Satul too? Are they friends or foe? ]] ..
-[[And why is the building burned down? Has this island seen war? Is a war being waged on it right now?]])) .. p(_(
-[[We must improve our military capabilities. If there are foes on the island, we have to be prepared when we meet them. ]] ..
-[[We should also enforce the fortification of our borders.]]))
+   body = jundlina(_ "Jundlina is in Thought", _(
+[[We found an old building, destroyed and burned by flames. I am very worried about this discovery. The building is not of any kind I’ve ever seen. It is certainly not designed by any Atlantean architect I’ve ever heard about. The building is crude, the assemblage is sloppy. But the materials are very enduring: the wood used for it seemed to have been burned in a strange way before it was used as building material – it is hard as stone.]])
+.. paragraphdivider() .. _(
+[[The implications frighten me. Are there others on this island? Where are they then? They work with fire, are they praying to Satul too? Are they friends or foe? And why is the building burned down? Has this island seen war? Is a war being waged on it right now?]])
+.. paragraphdivider() .. _(
+[[We must improve our military capabilities. If there are foes on the island, we have to be prepared when we meet them. We should also enforce the fortification of our borders.]])
    )
 }
 }
@@ -552,13 +531,11 @@
 },
 {
    title = _ "Jundlina Replies",
-   body = jundlina(p(_(
-[[Your red hair is a signal from the fire god. I will trust you and support your plan. ]] ..
-[[Our survival lies in your hands now, Ostur.]])) .. p(_(
-[[Swift now, we need a house for Ostur next to the lake, and we need planks, logs and spidercloth ]] ..
-[[for the construction there. Forget about everything else, ]] ..
-[[we need those wares on top of the mountain before our warehouses are all swallowed by the sea.]]
-   ))) .. new_objectives(obj_build_ships)
+   body = jundlina(_(
+[[Your red hair is a signal from the fire god. I will trust you and support your plan. Our survival lies in your hands now, Ostur.]])
+.. paragraphdivider() .. _(
+[[Swift now, we need a house for Ostur next to the lake, and we need planks, logs and spidercloth for the construction there. Forget about everything else, we need those wares on top of the mountain before our warehouses are all swallowed by the sea.]]
+   )) .. new_objectives(obj_build_ships)
 }
 }
 

=== modified file 'campaigns/emp01.wmf/scripting/texts.lua'
--- campaigns/emp01.wmf/scripting/texts.lua	2014-03-25 06:18:48 +0000
+++ campaigns/emp01.wmf/scripting/texts.lua	2014-04-03 12:48:28 +0000
@@ -36,7 +36,8 @@
    title=_"Build a lumberjack’s house",
    number = 1,
    body = objective_text(_"Lumberjack’s House",
-[[• ]] .. _[[Build a lumberjack’s house at the red house symbol, south of your provisional headquarters.]] .. "<br><br>" ..
+[[• ]] .. _[[Build a lumberjack’s house at the red house symbol, south of your provisional headquarters.]]
+.. paragraphdivider() ..
 [[→ ]] .. _([[Cutting down enough trees for more buildings will take a while. ]] ..
 [[You can speed the game up by using PAGE UP and slow it down again with PAGE DOWN.]])),
 }
@@ -62,7 +63,8 @@
    title=_"Build a quarry",
    number = 5,
    body = objective_text(_"Quarry",
-[[• ]] .. _[[Build a quarry in the south to cut some stones and marble out of the rocks.]] .. "<br><br>" ..
+[[• ]] .. _[[Build a quarry in the south to cut some stones and marble out of the rocks.]]
+.. paragraphdivider() ..
 [[→ ]] .. _[[These might be used for future buildings.]]),
 }
 
@@ -76,19 +78,19 @@
    body=lutius(_"Diary of Lutius",
    _([[What has become of our Empire? I really ask this question – why did my king forbid me ]] ..
 [[from fighting against that monstrous barbarian tribe, who first acted as a peaceful friend ]] ..
-[[and then attacked my army in the darkest night?]]) .. "<br><br>" ..
+[[and then attacked my army in the darkest night?]]) .. paragraphdivider() ..
 _([[With an army of 150 men, I was assigned to patrol on our northern frontier, ]] ..
 [[which lies near the Galdin Mountains in a great, beautiful and ancient forest. ]] ..
 [[Soon, we met a barbarian tribe, which at first was friendly. A few of my men even traded with them ]] ..
-[[and their kids came to us, to admire our clean and tidy uniforms and weapons.]]) .. "<br><br>" ..
+[[and their kids came to us, to admire our clean and tidy uniforms and weapons.]]) .. paragraphdivider() ..
 _([[But during our fifth night in that region, they attacked us with no reason. ]] ..
 [[I lost dozens of good men, and found myself imprisoned and brought to their chieftain. ]] ..
 [[He spat at me, mocked me and told me to leave this land forever. ]] ..
 [[He did not want new land and did not want our land, but he told me that THIS forest was their land]] ..
-[[ – and it would stay theirs until the ghosts took the last man of his folk!]]) .. "<br><br>" ..
+[[ – and it would stay theirs until the ghosts took the last man of his folk!]]) .. paragraphdivider() ..
 _([[Three weeks later, I returned to Fremil to speak with our king. ]] ..
 [[He was furious at the Barbarians, yet forbade any attack on these tribes. ]] ..
-[[He believed that our army was too weak to survive in a war against the barbarians.]]) .. "<br><br>" ..
+[[He believed that our army was too weak to survive in a war against the barbarians.]]) .. paragraphdivider() ..
 _([[Still, I saw no way that I could erase my shame without fighting against these barbarians. ]] ..
 [[So, I left Fremil by boat to find a new world and a new life for myself, somewhere in the south. ]] ..
 [[Now I am sailing on the perl-gulf with my family, some of my friends and a few of my best warriors.]])),
@@ -102,7 +104,7 @@
    _([[It seems as if sailing on the perl-gulf was one of our biggest mistakes. ]] ..
 [[Nature was against us and drove us into a dark, wild storm. ]] ..
 [[I really don’t know how many hours have passed since the waves rose higher than our boat, ]] ..
-[[but still it would be suicide to go outside.]]) .. "<br><br>" ..
+[[but still it would be suicide to go outside.]]) .. paragraphdivider() ..
 _([[Our ship is badly damaged and is taking in more and more water. ]] ..
 [[We can thank the Gods if we survive this black night with our lives.]])),
    w=400,
@@ -112,10 +114,10 @@
 diary_page_3 = {
    title=_"Survivor",
    body= lutius(_"Diary of Lutius",
-   _([[Finally, the Gods were with us!]]) .. "<br><br>" ..
+   _([[Finally, the Gods were with us!]]) .. paragraphdivider() ..
 _([[We landed on an unknown coast and found peaceful rest under the palm trees growing at the shore. ]] ..
 [[But that is about as good as it gets. The truth is: when I woke up this morning, I saw nothing but sand around us.]]) ..
-"<br><br>" ..
+paragraphdivider() ..
 _([[It really seems as if we have landed under the only palm trees existing in this far-away sandy desert. ]] ..
 [[I fear we won’t find the help we need to get our ship repaired in good time.]])),
    w=400,
@@ -127,9 +129,9 @@
    body= saledus(_"Saledus looks around nervously...",
    _([[Sire, I fear we are not safe in this foreign land. ]] ..
 [[Who knows what terrible creatures live beyond this forest, in that mighty desert? ]] ..
-[[What if these creatures enter the woods and await the time to attack us?]]) .. "<br><br>" ..
+[[What if these creatures enter the woods and await the time to attack us?]]) .. paragraphdivider() ..
 _([[Well, perhaps my fear is misguided, but it can’t be wrong to keep watch in the forests]] ..
-[[ – so that we can be sure to see any potential enemies before they can see us.]]) .. "<br><br>" ..
+[[ – so that we can be sure to see any potential enemies before they can see us.]]) .. paragraphdivider() ..
 _([[We really should build a barracks in the eastern portion of the forest. ]] ..
 [[Then one of us can keep watch in the darkness and keep us safe from these creatures.]]))
 .. new_objectives(obj_build_barracks),
@@ -141,7 +143,7 @@
    title=_"Safe For Now",
    body= saledus(_"Saledus speaks with a sigh of relief...",
    _([[Sire, I saw that the construction of the barracks was completed, ]] ..
-[[so I have assigned one of my best soldiers to it to keep watch on the desert.]]) .. "<br><br>" ..
+[[so I have assigned one of my best soldiers to it to keep watch on the desert.]]) .. paragraphdivider() ..
 _([[This is a good step forward. Now we can feel a bit safer and can look forward to repairing our ship.]])),
    w=400,
 }
@@ -149,9 +151,9 @@
 amalea_1 = {
    title=_"Young Amalea",
    body= amalea(_"Amalea smiles...",
-   _([[Hey Lutius, I just met Saledus outside.]]) .. "<br><br>" ..
+   _([[Hey Lutius, I just met Saledus outside.]]) .. paragraphdivider() ..
 _([[He told me about the barracks. Well, I am not one of those girls who think we need more barracks]] ..
-[[ – instead, we might concentrate on other things now.]]) .. "<br><br>" ..
+[[ – instead, we might concentrate on other things now.]]) .. paragraphdivider() ..
 _([[It is absolutely clear that we need wood to repair our ship. ]] ..
 [[So, I walked through the forest yesterday and found a nice place for a lumberjack’s house, ]] ..
 [[south of our provisional headquarters.]]))
@@ -164,7 +166,7 @@
    body= amalea(_"Amalea recommends...",
    _([[Hey Lutius, I got the message that our first lumberjack has started his work today. ]] ..
 [[Perhaps it would be a good idea to wait until he cleans enough space for constructing two more lumberjack’s houses, ]] ..
-[[so that we can harvest the logs faster.]]) .. "<br><br>" ..
+[[so that we can harvest the logs faster.]]) .. paragraphdivider() ..
 _([[But unfortunately the logs are useless for repairing our ship – we need refined lumber, ]] ..
 [[like every ship and every bigger building needs, too. ]] ..
 [[So we should build a sawmill – as soon as we have enough space for this.]]))
@@ -175,15 +177,15 @@
 amalea_3 = {
    title=_"Young Amalea",
    body= amalea(_"Amalea comes in...",
-   _([[Hi Lutius, I’ve got two important things to talk about... First the good news:]]) .. "<br><br>" ..
+   _([[Hi Lutius, I’ve got two important things to talk about... First the good news:]]) .. paragraphdivider() ..
 _([[I noticed that the construction of the sawmill is complete, ]] ..
-[[so we can begin to refine the logs that the lumberjacks are harvesting into lumber.]]) .. "<br><br>" ..
+[[so we can begin to refine the logs that the lumberjacks are harvesting into lumber.]]) .. paragraphdivider() ..
 _([[But that’s just about the only positive thing I know to talk about. ]] ..
 [[The bad news is that our lumberjacks harvest at an incredible speed. ]] ..
-[[There are almost no trees left on this island.]]) .. "<br><br>" ..
+[[There are almost no trees left on this island.]]) .. paragraphdivider() ..
 _([[Lutius, these trees provide shelter from the sandstorms that sweep in from the desert ]] ..
 [[and shade on the hot days, and they are the home of so many gentle animals. ]] ..
-[[We shouldn’t leave this island a complete desert.]]) .. "<br><br>" ..
+[[We shouldn’t leave this island a complete desert.]]) .. paragraphdivider() ..
 _([[Lutius, I beg you: find someone who takes care of planting new trees.]]))
 .. new_objectives(obj_build_forester),
    w=400,
@@ -193,7 +195,7 @@
    title=_"Thinking About the Future",
    body= saledus(_"Saledus notes...",
    _([[Hey, my good old friend. I just thought about the rocks standing on the south shore of this land. ]] ..
-[[Perhaps we could cut out some useful hard stones and beautiful marble.]]) .. "<br><br>" ..
+[[Perhaps we could cut out some useful hard stones and beautiful marble.]]) .. paragraphdivider() ..
 _([[The repair of our ship will take a few weeks, anyway, and the resources we harvest now ]] ..
 [[might be the base of strong and big buildings in another land.]]))
 .. new_objectives(obj_build_quarry),
@@ -204,7 +206,7 @@
    title=_"A Step Forward",
    body= saledus(_"Saledus looks promising...",
    _([[Hey Lutius, today we got a lot closer to our first castle. ]] ..
-[[The quarry to the south began its work today and will soon provide us with stones and beautiful marble.]]) .. "<br><br>" ..
+[[The quarry to the south began its work today and will soon provide us with stones and beautiful marble.]]) .. paragraphdivider() ..
 _([[Now we truly can look forward to settling down on another island.]])),
    w=400,
 }
@@ -214,9 +216,9 @@
    body= lutius(
 _([[Today I got the message that our ship is completely repaired. ]] ..
 [[At the moment, my people are loading everything onto our newly repaired ship, ]] ..
-[[hoping it will serve us better than last time.]]) .. "<br><br>" ..
+[[hoping it will serve us better than last time.]]) .. paragraphdivider() ..
 _([[Tonight will be our last night on this island. ]] ..
-[[Tomorrow morning we will leave, searching for a new place for our exile.]]) .. "<br><br>" ..
+[[Tomorrow morning we will leave, searching for a new place for our exile.]]) .. paragraphdivider() ..
 _([[I still wonder if we will ever see Fremil again.]])) ..
       objective_text(_"Victory", _
 [[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]

=== modified file 'campaigns/emp02.wmf/scripting/texts.lua'
--- campaigns/emp02.wmf/scripting/texts.lua	2014-03-25 06:18:48 +0000
+++ campaigns/emp02.wmf/scripting/texts.lua	2014-04-03 12:48:28 +0000
@@ -71,7 +71,7 @@
 [[• ]] .. _([[To produce some sustaining food for our miners, we could build up a tavern. ]] ..
 [[To supply them with some good and strong drinks, we could build up a brewery and a winery.]]) .. "<br>" ..
 [[• ]] .. _([[Of course this means we will need more resources for preparing this food – like fish, meat or bread. To provide these foodstuffs, you would have to build a fisher’s house, a farm, a mill and a bakery.]]) .. "<br>" ..
-[[• ]] .. _[[Maybe you will also need a hunter’s house, a piggery, a vineyard and some wells.]] .. "<br><br>" ..
+[[• ]] .. _[[Maybe you will also need a hunter’s house, a piggery, a vineyard and some wells.]] .. paragraphdivider() ..
 [[→ ]] .. _([[It’s up to you what you want to build. But remember – coal and iron ore mines need beer, ]] ..
 [[marble and gold mines need wine and all mines need at least rations, which are produced out of bread OR meat OR fish.]])),
 }
@@ -82,7 +82,7 @@
    number = 1,
    body = objective_text(_"Protect Your Eastern Frontier",
 [[• ]] .. _[[Build up stronger military buildings, such as an outpost, a barrier or a tower, on the eastern frontier.]] ..
-"<br><br>" ..
+paragraphdivider() ..
 [[→ ]] .. _[[To watch deep inside the enemy territory, build a tower.]]),
 }
 
@@ -105,7 +105,7 @@
    body = lutius(_"Diary of Lutius",
 _([[Finally! This island appears to have been made for us, it is a gift from the Gods to my people and myself. ]] ..
 [[Until now, we have only seen a small part of this island, but this part alone is already bringing sunlight to my mind. ]] ..
-[[I feel as if we have found a priceless treasure, a land like paradise.]]) .. "<br><br>" ..
+[[I feel as if we have found a priceless treasure, a land like paradise.]]) .. paragraphdivider() ..
 _([[On this island, we will start our new life. ]] ..
 [[We will build up an outpost for our exile, which perhaps will become a new, beautiful home for every one of us.]])),
 }
@@ -115,9 +115,9 @@
    posy = 1,
    body= lutius(_"Diary of Lutius",
 _([[As Saledus and I walked through these wonderful forests in the north, we felt that our future had just begun. ]] ..
-[[This land is so peaceful, good and beautiful, I could stay here until the end of my life.]]) .. "<br><br>" ..
+[[This land is so peaceful, good and beautiful, I could stay here until the end of my life.]]) .. paragraphdivider() ..
 _([[But until that day, may many years pass! For now, we must concentrate on the present, ]] ..
-[[and build a few lumberjack’s houses and a sawmill to produce some basic building materials.]]) .. "<br><br>" ..
+[[and build a few lumberjack’s houses and a sawmill to produce some basic building materials.]]) .. paragraphdivider() ..
 _([[But we shouldn’t forget to preserve this natural bounty. ]] ..
 [[These forests should last forever, so we really should build a forester’s house too.]]))
 .. new_objectives(obj_build_woodeconomy),
@@ -128,7 +128,7 @@
    posy = 1,
    body= lutius(_"Diary of Lutius",
 _([[Later, I walked down to the rocks in the south and looked for a place where we could build a quarry ]] ..
-[[to get some hard stone for our larger buildings.]]) .. "<br><br>" ..
+[[to get some hard stone for our larger buildings.]]) .. paragraphdivider() ..
 _([[Again, I felt like I was in paradise when I noticed that some marble-like stones were among the rocks. ]] ..
 [[It seems that we will soon be able to build strong, luxurious buildings, like those we were accustomed to in Fremil.]]))
 .. new_objectives(obj_build_quarry),
@@ -157,9 +157,9 @@
 [[but I found something which gives me a sinking feeling in my stomach and spreads waves of fear in my heart. ]] ..
 [[As I walked down to the southern shore, I found the remains of another ship. ]] ..
 [[I don’t know whether these parts are all that is left of that ship. ]] ..
-[[In any case, these parts do not seem to be old.]]) .. "<br><br>" ..
+[[In any case, these parts do not seem to be old.]]) .. paragraphdivider() ..
 _([[Perhaps the people aboard that ship were caught in the same storm which brought us to Malac’ Mor]] ..
-[[ – and were brought to this island.]]) .. "<br><br>" ..
+[[ – and were brought to this island.]]) .. paragraphdivider() ..
 _([[I beg you to be cautious and to build some barracks or sentries around our colony.]]))
 .. new_objectives(obj_build_military_buildings),
 }
@@ -167,10 +167,11 @@
 saledus_2 = {
    title =_ "Marble on the Mountain",
    body= saledus(_"Saledus smiles",
-_([[Lutius, I’ve got good news for you: As I walked to the east, I found a larger mountain. I am not absolutely sure – a geologist should check if I am right – but I believe we could mine marble from some places on the mountain.]]) .. "<br><br>" ..
+_([[Lutius, I’ve got good news for you: As I walked to the east, I found a larger mountain. I am not absolutely sure – a geologist should check if I am right – but I believe we could mine marble from some places on the mountain.]])
+.. paragraphdivider() ..
 _([[It would be a good source for bolstering our supply of quality marble, ]] ..
 [[beyond the meager quantities available from the quarry. ]] ..
-[[Perhaps you were right when you said that this island was like paradise.]]) .. "<br><br>" ..
+[[Perhaps you were right when you said that this island was like paradise.]]) .. paragraphdivider() ..
 _([[Let us expand to that mountain and start mining marble.]]))
 .. new_objectives(obj_build_marblemine),
 }
@@ -181,9 +182,9 @@
 _([[By the Gods, this is an unbelievable stroke of fortune! ]] ..
 [[There are two more mountains, and it seems that one has a large quantity of coal and the other of iron ore. ]] ..
 [[We should immediately start to build iron ore and coal mines (or at least charcoal burners), ]] ..
-[[smelting works, toolsmithies, armor and weapon smithies.]]) .. "<br><br>" ..
+[[smelting works, toolsmithies, armor and weapon smithies.]]) .. paragraphdivider() ..
 _([[However: for all these bigger buildings, we need better and more elegant building materials. ]] ..
-[[So, let’s build a stonemason, who will cut columns from marble.]]) .. "<br><br>" ..
+[[So, let’s build a stonemason, who will cut columns from marble.]]) .. paragraphdivider() ..
 _([[After everything, we can now begin to live like we did in Fremil.]]))
 .. new_objectives(obj_build_mining_infrastructure),
 }
@@ -191,10 +192,10 @@
 amalea_1 = {
    title =_ "Food for the Miners",
    body= amalea(_"Amalea comes in...",
-_([[Hi Lutius, I hope you forgive my criticism, but it seems to me as if you forgot something.]]) .. "<br><br>" ..
+_([[Hi Lutius, I hope you forgive my criticism, but it seems to me as if you forgot something.]]) .. paragraphdivider() ..
 _([[It’s nice, and of course a good idea, to build up mines, which will give us a more comfortable life, ]] ..
 [[but the people working in the mines are unhappy with the current situation. ]] ..
-[[They have to do hard work and have no time for making their own food.]]) .. "<br><br>" ..
+[[They have to do hard work and have no time for making their own food.]]) .. paragraphdivider() ..
 _([[What do you think about helping them out? ]] ..
 [[I can’t tell you what we need exactly... but here are my recommendations:]]))
 .. new_objectives(obj_build_Food_infrastructure),
@@ -205,12 +206,14 @@
    posy=1,
    body= lutius(_"Diary of Lutius",
 _([[By the Gods! This is absolutely terrible. It seems as if we stand close to a test]] ..
-[[ – and it seems as if Saledus was right with his fear concerning the shipwreck he found.]]) .. "<br><br>" ..
+[[ – and it seems as if Saledus was right with his fear concerning the shipwreck he found.]]) .. paragraphdivider() ..
 _([[Today, as I walked down to the eastern shore, I got a shock. ]] ..
-[[I caught sight of one of those hated, evil, barbarian tribes with whom we have had so many problems before.]]) .. "<br><br>" ..
+[[I caught sight of one of those hated, evil, barbarian tribes with whom we have had so many problems before.]])
+.. paragraphdivider() ..
 _([[At first, I was naive and hoped that they were peaceful, but as soon as one of them saw me, ]] ..
 [[they charged towards me and started attacking me with their throwing-spears. Thanks be to the Gods ]] ..
-[[that I was able to flee and hide myself, before retreating back to our colony under cover of darkness.]]) .. "<br><br>" ..
+[[that I was able to flee and hide myself, before retreating back to our colony under cover of darkness.]])
+.. paragraphdivider() ..
 _([[Anyway, we must build up stronger military buildings as soon as possible.]]))
 .. new_objectives(obj_build_bigger_military_buildings),
 }
@@ -228,7 +231,7 @@
    title =_ "Victory",
    posy=1,
    body= lutius(
-_([[Today is a proud day. We have fought for our new home and risen victorious.]]) .. "<br><br>" ..
+_([[Today is a proud day. We have fought for our new home and risen victorious.]]) .. paragraphdivider() ..
 _([[There are still a few barbarians hiding on our island, but I am sure that we will find them soon. Every barbarian who doesn’t attack us will be put in a boat with the other peaceful ones, and sent back to their country.]]))
 ..  objective_text(_"Victory",
    _[[You have established a working economy, trained new soldiers and driven the barbarians from the island.]]
@@ -247,11 +250,11 @@
    posy=1,
    body= lutius(_"Diary of Lutius",
 _([[Today a pigeon landed on our island. ]] ..
-[[It brought a message which fills me with dark thoughts and brings back my fears.]]) .. "<br><br>" ..
+[[It brought a message which fills me with dark thoughts and brings back my fears.]]) .. paragraphdivider() ..
 _([[The message was addressed to me, begging me to come back to Fremil.]] ..
 [[It says that the Empire is at war with the Barbarians. ]] ..
 [[They were attacked from the north by the tribe that I was forbidden to attack. ]] ..
-[[It is clear to me what I must do...]]) .. "<br><br>" ..
+[[It is clear to me what I must do...]]) .. paragraphdivider() ..
 _([[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]])),
 }
 
@@ -259,6 +262,6 @@
    title =_ "Our New Tavern",
    body= amalea(_"Amalea smiles",
 _([[Greetings, my friend, I just visited our new tavern ‘At the palms’. ]] ..
-[[The beer they serve is really tasty. You really should have a drink there, too.]]) .. "<br><br>" ..
+[[The beer they serve is really tasty. You really should have a drink there, too.]]) .. paragraphdivider() ..
 _([[It is good to see that we have now got a warmer and more familiar environment on our island. Thank you, Lutius.]])),
 }

=== modified file 'campaigns/t01.wmf/scripting/initial_messages.lua'
--- campaigns/t01.wmf/scripting/initial_messages.lua	2014-03-25 06:18:48 +0000
+++ campaigns/t01.wmf/scripting/initial_messages.lua	2014-04-03 12:48:28 +0000
@@ -14,18 +14,18 @@
 -- Briefing message
 title = _"The Story Begins"
 msg = thron(_"Thron sighs...",
-_[[It’s been months, and we are still hiding where the forests are old and dark.]] .. "<br><br>" ..
+_[[It’s been months, and we are still hiding where the forests are old and dark.]] .. paragraphdivider() ..
 _[[My warriors hunt at day and lie awake at night – listening to the sounds of the cruel slaughter echoing from afar amongst the ancient trees.]])
 show_story_box(title, msg)
 
 msg =
 thron(
-_[[We can see the raging flames that swallow Al’thunran from here, miles away.]] .. "<br><br>" ..
+_[[We can see the raging flames that swallow Al’thunran from here, miles away.]] .. paragraphdivider() ..
 _[[The red lights flash in the darkness and dance to the rhythm of the war drums that haunt me even in my nightmares.]])
 show_story_box(title, msg, al_thunran)
 
 msg = thron(
-_[[My father’s bones rest peacefully in the ground on which he once ended the senseless spilling of blood that had arisen amongst us. It pains me that his peace only endured for one generation.]] .. "<br><br>" ..
+_[[My father’s bones rest peacefully in the ground on which he once ended the senseless spilling of blood that had arisen amongst us. It pains me that his peace only endured for one generation.]] .. paragraphdivider() ..
 _[[Boldreth, my loyal companion and friend is a source of peace and comfort to me in these dark times. He keeps my spirits high and those of my warriors awake, preventing greed or despair from destroying the bonds between us as well.]])
 show_story_box(title, msg, grave)
 

=== modified file 'campaigns/t01.wmf/scripting/texts.lua'
--- campaigns/t01.wmf/scripting/texts.lua	2014-03-25 06:18:48 +0000
+++ campaigns/t01.wmf/scripting/texts.lua	2014-04-03 12:48:28 +0000
@@ -17,11 +17,11 @@
    title = _ "Build a lumberjack’s hut",
    number = 2,
    body = objective_text(_"Build a lumberjack’s hut",
-[[• ]] .. _"Press SPACE to see where you can build. The red house symbols show you where a small building – like a lumberjack’s hut – may be built." .. "<br><br>" ..
-[[• ]] .. _"Build a lumberjack’s hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack’s hut." .. "<br><br>" ..
-[[• ]] .. _"Build a road between your headquarters and the construction site of the lumberjack’s hut." .. "<br><br>" ..
-[[→ ]] .. _"When you place the lumberjack’s hut, a flag is created for it. You need to connect it to another flag by building a road between them. If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it." .. "<br><br>" ..
-[[→ ]] .. _"The colors of these symbols indicate how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly)." .. "<br><br>" ..
+[[• ]] .. _"Press SPACE to see where you can build. The red house symbols show you where a small building – like a lumberjack’s hut – may be built." .. paragraphdivider() ..
+[[• ]] .. _"Build a lumberjack’s hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack’s hut." .. paragraphdivider() ..
+[[• ]] .. _"Build a road between your headquarters and the construction site of the lumberjack’s hut." .. paragraphdivider() ..
+[[→ ]] .. _"When you place the lumberjack’s hut, a flag is created for it. You need to connect it to another flag by building a road between them. If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it." .. paragraphdivider() ..
+[[→ ]] .. _"The colors of these symbols indicate how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly)." .. paragraphdivider() ..
 [[→ ]] .. "You can click on any of the symbols to build the first part of the road there. New symbols will appear to show you where the next part of the road can go, and so on. However, you can also click farther away from the flag to build several steps at once. Click on the flag at the headquarters to finish the road."
    ),
 }
@@ -31,7 +31,7 @@
    title = _ "Build a lumberjack’s hut",
    number = 1,
    body = objective_text(_"Build a lumberjack’s hut",
-[[• ]] .. _"Press SPACE to see where you can build. The red house symbols show you where a small building – like a lumberjack’s hut – may be built." .. "<br><br>" ..
+[[• ]] .. _"Press SPACE to see where you can build. The red house symbols show you where a small building – like a lumberjack’s hut – may be built." .. paragraphdivider() ..
 [[• ]] .. _"Build a lumberjack’s hut at the red house symbol just right of your headquarters by clicking on it and selecting a lumberjack’s hut."
    ),
 }
@@ -41,9 +41,9 @@
    title = _ "Build a road to the lumberjack’s hut",
    number = 1,
    body = objective_text(_"Road to the lumberjack’ hut",
-[[• ]] .. _"Build a road between your headquarters and the construction site of the lumberjack’s hut." .. "<br><br>" ..
-[[→ ]] .. _"When you place the lumberjack’s hut, a flag is created for it. You need to connect it to another flag by building a road between them. If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it." .. "<br><br>" ..
-[[→ ]] .. _"The colors of these symbols indicate how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly)." .. "<br><br>" ..
+[[• ]] .. _"Build a road between your headquarters and the construction site of the lumberjack’s hut." .. paragraphdivider() ..
+[[→ ]] .. _"When you place the lumberjack’s hut, a flag is created for it. You need to connect it to another flag by building a road between them. If you click on a flag and select to build a road, little symbols will appear around it to show you in which directions you can build it." .. paragraphdivider() ..
+[[→ ]] .. _"The colors of these symbols indicate how steep this part of the road will be. Green is for flat, yellow means steep and red stands for very steep. The steeper the road is, the harder it will be for your people to walk on it (and your wares will be transported more slowly)." .. paragraphdivider() ..
 [[→ ]] .. _"You can click on any of the symbols to build the first part of the road there. New symbols will appear to show you where the next part of the road can go, and so on. However, you can also click farther away from the flag to build several steps at once. Click on the flag at the headquarters to finish the road."
    ),
 }
@@ -53,8 +53,8 @@
    title = _ "Build a second lumberjack’s hut",
    number = 2,
    body = objective_text(_"Build a second lumberjack’s hut",
-[[• ]] .. _"Place a flag in the middle of the road. There is a flag symbol in the middle of the road you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This will divide the road the wood is transported into two parts with one carrier each." .. "<br><br>" ..
-[[• ]] .. _"Place a lumberjack’s hut just south of the flag you just placed on the road. Connect the flag you just raised with the flag of the new lumberjack’s hut construction site afterwards. Note that instead of building a road step by step, you may also click directly at its destination to build the entire road at once." .. "<br><br>" ..
+[[• ]] .. _"Place a flag in the middle of the road. There is a flag symbol in the middle of the road you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This will divide the road the wood is transported into two parts with one carrier each." .. paragraphdivider() ..
+[[• ]] .. _"Place a lumberjack’s hut just south of the flag you just placed on the road. Connect the flag you just raised with the flag of the new lumberjack’s hut construction site afterwards. Note that instead of building a road step by step, you may also click directly at its destination to build the entire road at once." .. paragraphdivider() ..
 [[→ ]] .. _"When many wares are being transported between two points, additional flags in between make them arrive at their destination faster, thus improving your infrastructure."
    ),
 }
@@ -64,7 +64,7 @@
    title = _ "Build a second lumberjack’s hut",
    number = 1,
    body = objective_text(_"Build a second lumberjack’s hut",
-[[• ]] .. _"Place a flag in the middle of the road. There is a flag symbol in the middle of the road you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This will divide the road the wood is transported into two parts with one carrier each." .. "<br><br>" ..
+[[• ]] .. _"Place a flag in the middle of the road. There is a flag symbol in the middle of the road you just built. You create a flag there by clicking on the symbol and then choosing the flag button in the menu that opens up. This will divide the road the wood is transported into two parts with one carrier each." .. paragraphdivider() ..
 [[→ ]] .. _"When many wares are being transported between two points, additional flags in between make them arrive at their destination faster, thus improving your infrastructure."
    ),
 }
@@ -104,7 +104,7 @@
 _[[Hail, chieftain. I am Khantrukh and have seen many winters pass. Please allow me to aid you with my counsel through these darkened days.]])
 
 khantrukh_2= khantrukh(_"Khantrukh continues...",
-_[[None but the gods know how long we have to remain hidden here. The warriors hope we may march back gloriously any day now, but I strongly doubt that will happen soon. And the days are already getting shorter and colder...]] .. "<br><br>" ..
+_[[None but the gods know how long we have to remain hidden here. The warriors hope we may march back gloriously any day now, but I strongly doubt that will happen soon. And the days are already getting shorter and colder...]] .. paragraphdivider() ..
 _[[We should prepare, in case we have to face the winter in these harsh lands. I believe to the east of our campsite are a few places where we could raise a lumberjack’s hut.]])
 .. new_objectives(start_lumberjack_01_01)
 
@@ -113,8 +113,8 @@
 .. new_objectives(start_lumberjack_01_02)
 
 khantrukh_4 = khantrukh(_"Khantrukh remembers...",
-_[[There is an old saying:]] .. "<br><br>" ..
-_[[‘A burden divided is easier to endure.’]] .. "<br><br>" ..
+_[[There is an old saying:]] .. paragraphdivider() ..
+_[[‘A burden divided is easier to endure.’]] .. paragraphdivider() ..
 _[[A crossroads on the road between our headquarters and the lumberjack’s hut would ease the work of our carriers.]])
 .. new_objectives(start_lumberjack_02_01)
 
@@ -123,13 +123,14 @@
 .. new_objectives(start_lumberjack_02_02)
 
 khantrukh_6 = khantrukh(_"Khantrukh nods...",
-_[[Of course, if we intended to build a bigger settlement, many more lumberjack’s huts would be advisable, but this should suffice for now.]] .. "<br><br>" ..
-_[[But never forget – these forests are our heritage, entrusted upon us by our ancestors. We must always respect and care for them. What we take, we must give back again.]] .. "<br><br>" ..
+_[[Of course, if we intended to build a bigger settlement, many more lumberjack’s huts would be advisable, but this should suffice for now.]] .. paragraphdivider() ..
+_[[But never forget – these forests are our heritage, entrusted upon us by our ancestors. We must always respect and care for them. What we take, we must give back again.]] .. paragraphdivider() ..
 _[[So, in order to replace the trees we chop down, we should build a ranger’s hut, preferably close to the lumberjack’s hut.]])
 .. new_objectives(start_ranger)
 
 khantrukh_7 = khantrukh(_"The elder speaks...",
-_[[I am well aware, chieftain, that neither you nor your warriors have the desire to stay in this forsaken place for long. But even so, our war to reconquer our home might take a long time and it would seem wise to make preparations.]] .. "<br><br>" ..
+_[[I am well aware, chieftain, that neither you nor your warriors have the desire to stay in this forsaken place for long. But even so, our war to reconquer our home might take a long time and it would seem wise to make preparations.]]
+.. paragraphdivider() ..
 _[[I would advise that we obtain stones for the future – who knows what fortifications we might be forced to build very soon. And – like a gift of destiny – there are indeed great rocks just nearby...]])
 .. new_objectives(start_quarries)
 
@@ -144,7 +145,7 @@
 story_msg1 = {
    title = _"In the Night",
    msg = thron(_"Thron says...",
-_[[During another sleepless night, I went up to the hill and gazed towards the north. The fires are still burning, satisfying their hunger upon my father’s legacy.]] .. "<br><br>" ..
+_[[During another sleepless night, I went up to the hill and gazed towards the north. The fires are still burning, satisfying their hunger upon my father’s legacy.]] .. paragraphdivider() ..
 _[[They are a constant reminder of why we have to hide here... and why we must return in the end!]]),
 field = al_thunran,
 }
@@ -152,7 +153,7 @@
 story_msg2= {
    title = _"At the Tomb",
    msg = thron(_"Thron says...",
-_[[Once again, I went up to my father’s tomb, in a sacred grove at the foot of the great spire of Kal’mavrath. I just stood there and felt neither the hours pass nor the cold rain pouring down from the darkened sky...]] .. "<br><br>" ..
+_[[Once again, I went up to my father’s tomb, in a sacred grove at the foot of the great spire of Kal’mavrath. I just stood there and felt neither the hours pass nor the cold rain pouring down from the darkened sky...]] .. paragraphdivider() ..
 _[[Somehow, it felt like a farewell. For the first time, I wondered what the future might hold for me...]]),
 field = grave,
 }
@@ -160,13 +161,13 @@
 story_msg3 = {
   title=_ "The Other Day",
   msg = thron(_"Thron says thoughtfully...",
-_[[Some time ago, Boldreth came to me. His advice was to move to a place closer to home – to strike at the first sign of my brothers’ forces wavering.]] .. "<br><br>" ..
+_[[Some time ago, Boldreth came to me. His advice was to move to a place closer to home – to strike at the first sign of my brothers’ forces wavering.]] .. paragraphdivider() ..
 _[[But when I look over the forests I can still see black smoke rising to the sky. I know – it is too early yet, and what he hopes for will not happen any time soon. He might still be right, but I fear the bloodshed that returning too fast would cause both on our and the other side...]])
 }
 
 story_msg4 = {
 title =_ "The Oath",
 msg = thron(_"Thron looks furious...",
-_[[Today, my warriors picked up an old man, wandering sick and wounded through the dark forest. We listened in horror as he told us of the atrocities taking place in Al’thunran.]] .. "<br><br>" ..
+_[[Today, my warriors picked up an old man, wandering sick and wounded through the dark forest. We listened in horror as he told us of the atrocities taking place in Al’thunran.]] .. paragraphdivider() ..
 _[[I hereby renew my oath – I will stop this madness at any cost!]])
 }

=== modified file 'campaigns/t02.wmf/scripting/mission_thread_texts.lua'
--- campaigns/t02.wmf/scripting/mission_thread_texts.lua	2014-03-25 06:18:48 +0000
+++ campaigns/t02.wmf/scripting/mission_thread_texts.lua	2014-04-03 12:48:28 +0000
@@ -36,11 +36,11 @@
 [[Build a coal mine and an iron ore mine. To do so, place a flag up on the mountain’s flank to the east ]] ..
 [[(on mountain terrain though, not mountain meadow). When you click on the new flag, you can send geologists there. ]] ..
 [[Because the flag is on a mountain, the geologists will search for ores; otherwise, they would search for water. ]] ..
-[[Then build a mine for both kinds of resources that he will find, choosing the mine to be built appropriately:]]) .. "<br><br>" ..
+[[Then build a mine for both kinds of resources that he will find, choosing the mine to be built appropriately:]]) .. paragraphdivider() ..
 _[[Black – coal]] .. "<br>" ..
 _[[Red – iron ore]] .. "<br>" ..
 _[[Yellow – gold]] .. "<br>" ..
-_[[Grey – granite]] .. "<br><br>" ..
+_[[Grey – granite]] .. paragraphdivider() ..
 _[[Mines can only be built on mountain terrain. Suitable places for mines are displayed as orange mine symbols.]]
    )
 }
@@ -50,9 +50,9 @@
    title=_"Provide your miners with food",
    number = 3,
    body= objective_text(_"Build a hunter, a gamekeeper and a tavern", _
-[[In order to work, your miners need food.]] .. "<br><br>" ..
+[[In order to work, your miners need food.]] .. paragraphdivider() ..
 _([[A hunter can hunt down animals, while a gamekeeper prevents them from becoming extinct. ]] ..
-[[The meat is then processed in a tavern into lunches for your miners.]]) .. "<br><br>" ..
+[[The meat is then processed in a tavern into lunches for your miners.]]) .. paragraphdivider() ..
 _([[This is only the first example of a ware which has to be refined before being used in a secondary building]] ..
 [[ – others will follow.]])
    )
@@ -87,10 +87,10 @@
 buildings respectively. Also build a micro brewery.]], _(
 [[A normal mine can only dig up about one third of all the resources lying beneath it; ]] ..
 [[then it must be enhanced to a deep mine in order to keep it working properly. ]] ..
-[[To enhance a building, choose it and then click the appropriate button in the appearing window.]]) .. "<br><br>" ..
+[[To enhance a building, choose it and then click the appropriate button in the appearing window.]]) .. paragraphdivider() ..
 _([[Workers gain experience by successful work. With enough experience, they become more advanced workers, ]] ..
 [[who are necessary to operate the enhanced buildings. ]] ..
-[[Do not enhance a building before you have enough advanced workers to operate the advanced building!]]) .. "<br><br>" ..
+[[Do not enhance a building before you have enough advanced workers to operate the advanced building!]]) .. paragraphdivider() ..
 _([[Such buildings usually have greater demands than the basic kind of that building]] ..
 [[ – for instance, deep mines need snacks instead of rations. ]] ..
 [[You will have to enhance your tavern to an inn in order to produce snacks out of pitta bread AND a second kind of food]] ..
@@ -116,7 +116,7 @@
    number = 3,
    body=objective_text(_"Build a lime kiln, a well and a charcoal burner or coal mine", _(
 [[Better buildings may also require other improved materials besides blackwood. ]] ..
-[[One of these is grout, which is produced out of raw stone, water and coal by a lime-burner.]]) .. "<br><br>" ..
+[[One of these is grout, which is produced out of raw stone, water and coal by a lime-burner.]]) .. paragraphdivider() ..
 _([[You can obtain water by building a well upon a water source, ]] ..
 [[which your geologists can discover when you send them to any flag that is not on a mountain. ]] ..
 [[Coal can be obtained by building a charcoal burner or a coal mine.]]
@@ -140,7 +140,7 @@
    body = objective_text(_"Build a cattle farm", _(
 [[When roads are under heavy load for a long time, one carrier is usually not enough to transport goods swiftly. ]] ..
 [[Traffic jams are the consequence. Such roads therefore employ a second carrier: ]] ..
-[[An ox that helps to carry the wares. This doubles the transport capacity.]]) .. "<br><br>" ..
+[[An ox that helps to carry the wares. This doubles the transport capacity.]]) .. paragraphdivider() ..
 _[[Oxen are bred in cattle farms out of wheat and water.]]
    )
 }
@@ -153,7 +153,7 @@
    title =_ "The Story Continues",
    body = thron(_"Thron is shaking his head...",
 _([[The war goes on. More and more of our brothers and sisters flee the brutal war raging ]] ..
-[[in the capital beneath the trees.]]) .. "<br><br>" ..
+[[in the capital beneath the trees.]]) .. paragraphdivider() ..
 _([[The stories they tell about the deeds of our kin are sad to hear. ]] ..
 [[I’ve spent nights lying awake, restless, more tired than I ever believed one could be. ]] ..
 [[Yet whenever I close my eyes, I see the fortress my father built consumed by flames. ]] ..
@@ -169,7 +169,7 @@
 [[when we were no more but wild beasts driven and controlled by instincts. ]] ..
 [[None of my brothers will ever gain and hold control over the wooden throne, ]] ..
 [[none of the tribes will be strong enough to subdue the other. T]] ..
-[[here will be no end to this slaughter, unless... is this it? As father told me?]]) .. "<br><br>" ..
+[[here will be no end to this slaughter, unless... is this it? As father told me?]]) .. paragraphdivider() ..
 _([[To rise against whoever threatens our very existence, even tough it may be one of your own blood or mind?]])
    )
 }
@@ -181,7 +181,7 @@
 _([[Boldreth seems more and more torn as the days go by. ]] ..
 [[The spirits of my fellows sink as the cold season approaches, and we are still living in no more than huts and barracks. ]] ..
 [[I never intended to stay out here in the wilderness for so long]] ..
-[[ – but I never thought my brothers would engage in this senseless battle for so long either.]]) .. "<br><br>" ..
+[[ – but I never thought my brothers would engage in this senseless battle for so long either.]]) .. paragraphdivider() ..
 _([[Perhaps it’s time to make ourselves feel a little more at ease here. ]] ..
 [[Perhaps it’s time to give those who still live and think united a new home, ]] ..
 [[replacing what is now lost to us? Until we can return to the place we once called our home...]])
@@ -239,7 +239,7 @@
    title=_"Your Loyal Companion",
    body=boldreth(_"Boldreth exclaims...",
 _([[Just look at that! In the east is the great mountain of Kal’mavrath! ]] ..
-[[I wonder what treasures nature might have hidden beneath its majestic flanks!]]) .. "<br><br>" ..
+[[I wonder what treasures nature might have hidden beneath its majestic flanks!]]) .. paragraphdivider() ..
 _([[Let’s expand to the east. There’s a chance for the elderly to become useful once in a while! ]] ..
 [[Let us send out some of those who understand the stone’s tongue to unravel the mountain’s secrets!]])
    ) .. new_objectives(obj_build_mines)
@@ -248,7 +248,7 @@
 order_msg_7_mines_up = {
    title=_"Your Loyal Companion",
    body=boldreth(_"Boldreth laughs...",
-_([[By Chat’Karuth’s beard, this is amazing! Just imagine what we can use this coal and iron ore for!]]) .. "<br><br>" ..
+_([[By Chat’Karuth’s beard, this is amazing! Just imagine what we can use this coal and iron ore for!]]) .. paragraphdivider() ..
 _([[It might even be enough to...]])
    )
 }
@@ -266,7 +266,7 @@
 order_msg_9_hunter = {
    title=_"Your Loyal Companion",
    body=boldreth(_"Boldreth nods...",
-_([[I have to hand it to you: you are right here, old man.]]) .. "<br><br>" ..
+_([[I have to hand it to you: you are right here, old man.]]) .. paragraphdivider() ..
 _([[There seem to be quite a lot of animals in the forests here – we might just hunt down more of them. ]] ..
 [[And, of course, the people would cheer a new tavern – hey, we might call it ‘Thron’s Pride’ or so if you want!]])
    ) .. new_objectives(obj_basic_food)
@@ -275,7 +275,7 @@
 order_msg_10_bread = {
    title=_"The Advisor",
    body=khantrukh(_"The elder jumps into the air...",
-_([[Wisdom commands to seek variety.]]) .. "<br><br>" ..
+_([[Wisdom commands to seek variety.]]) .. paragraphdivider() ..
 _([[North of the great mountain is a large plain – why don’t we use the space Mother Nature gave us and build a farm? ]] ..
 [[I sure would enjoy a freshly baked pitta bread for a change...]])
    ) .. new_objectives(obj_begin_farming)
@@ -284,7 +284,7 @@
 order_msg_11_basic_food_began = {
    title=_"Your Loyal Companion",
    body=boldreth(_"Boldreth cheers up...",
-_([[Our hunters are out in the forests, Thron.]]) .. "<br><br>" ..
+_([[Our hunters are out in the forests, Thron.]]) .. paragraphdivider() ..
 _([[I promise you, before the sun sets today you will have a magnificent meal fit for the chieftain of all clans!]])
    )
 }
@@ -302,7 +302,8 @@
    body=thron(_"Thron recognizes...",
 _([[A tavern opened for our people yesterday. While I am hardly in the mood for celebration, ]] ..
 [[I noticed how much this tiny bit of home means to my people. ]] ..
-[[Their songs filled the air until deep in the night, and they were in higher spirits still the day after.]]) .. "<br><br>" ..
+[[Their songs filled the air until deep in the night, and they were in higher spirits still the day after.]])
+.. paragraphdivider() ..
 _([[Maybe we actually are slowly creating a place here which we can... call home.]])
    )
 }
@@ -321,7 +322,7 @@
    title=_ "The Advisor",
    body = khantrukh(_"Khantrukh speaks...",
 _([[Our miners are digging up less and less by the day! We have to go deeper, closer to the mountain’s core, ]] ..
-[[if we want more of its treasures!]]) .. "<br><br>" ..
+[[if we want more of its treasures!]]) .. paragraphdivider() ..
 _([[Of course, it is dark and cold in such depths and only a few venture voluntarily into these places. ]] ..
 [[We should reward this bravery with greater rations for them. And a pint of beer or two will keep their spirits high.]])
    ) .. new_objectives(obj_enhance_buildings)
@@ -331,7 +332,7 @@
    title=_"Your Loyal Companion",
    body= boldreth(_"Boldreth seems concerned...",
 _([[As I just discovered, we are running short on blackwood! We cannot put our warriors into some crumbling huts, ]] ..
-[[and even less so in times as dangerous as ours!]]) .. "<br><br>" ..
+[[and even less so in times as dangerous as ours!]]) .. paragraphdivider() ..
 _([[We need a wood hardener, and we need one now!]])
    ) .. new_objectives(obj_better_material_1)
 }
@@ -340,7 +341,7 @@
    title=_"Your Loyal Companion",
    body= boldreth(_"Boldreth smiles...",
 _([[Well, old friend, this should ensure that our fortifications do not break down with our foes’ first battle cry! ]] ..
-[[Now we can expand safely!]]) .. "<br><br>" ..
+[[Now we can expand safely!]]) .. paragraphdivider() ..
 _([[Still, it would not hurt to accumulate some grout for our further campaign; ]] ..
 [[thus we could, in times of need, build a fortress such as the world has never seen before!]])
    ) .. new_objectives(obj_better_material_2)
@@ -353,7 +354,7 @@
 [[It is well that we can produce grout for mighty fortifications and great buildings now]] ..
 [[ – only this does not prevent our roofs from becoming leaky! ]] ..
 [[Maybe the young ones like spending their nights in the rain, ]] ..
-[[but I just can’t find any sleep with these raindrops dripping on my face!]]) .. "<br><br>" ..
+[[but I just can’t find any sleep with these raindrops dripping on my face!]]) .. paragraphdivider() ..
 _([[Now this is a problem we should do something about!]])
    ) .. new_objectives(obj_better_material_3)
 }
@@ -369,10 +370,11 @@
 msg_mission_complete = {
    title=_"Mission Complete",
    body= thron(
-_([[The other day Boldreth asked me to accompany him to the new inn. It would cheer me up, he said.]]) .. "<br><br>" ..
+_([[The other day Boldreth asked me to accompany him to the new inn. It would cheer me up, he said.]])
+.. paragraphdivider() ..
 _([[When I looked around, I saw faithful faces, trusting that I could guide them through these dark days. ]] ..
 [[Yet before I could speak any words of gratitude or encouragement, one of my warriors ran into the inn. ]] ..
-[[He had been far out in the forest for the past days and I could see how weary he was.]]) .. "<br><br>" ..
+[[He had been far out in the forest for the past days and I could see how weary he was.]]) .. paragraphdivider() ..
 _([[The news he brought changed everything...]])
    )..  objective_text(_"Victory",
    _[[You have completed this mission. You may continue playing if you wish, otherwise move on to the next mission.]]
@@ -384,7 +386,7 @@
    body = khantrukh(_ "Khantrukh speaks...",
 _([[As our realm is getting bigger and bigger, the traffic on the roads is overwhelming. ]] ..
 [[Our poor carriers are no longer able to transport the goods as fast as we need them to. ]] ..
-[[I suggest we give them some support by breeding oxen.]]) .. "<br><br>" ..
+[[I suggest we give them some support by breeding oxen.]]) .. paragraphdivider() ..
 _([[They are amazing animals: The ox is as swift as a human being while being much stronger and very frugal: ]] ..
 [[all we need is wheat and water to breed them and they will do their work on the roads loyally and reliably.]])
    ) .. new_objectives(obj_build_cattlefarm)
@@ -393,7 +395,7 @@
 msg_story_1 = {
    title=_"One Full Moon Night",
    body=thron(_"Thron speaks...",
-_([[One night, when the moon shone brightly, I climbed to the peak of Kal’mavrath.]]) .. "<br><br>" ..
+_([[One night, when the moon shone brightly, I climbed to the peak of Kal’mavrath.]]) .. paragraphdivider() ..
 _([[When I gazed at the horizon, I still saw crimson lights flicker in the distance. ]] ..
 [[It is incredible with how much passion my brethren fight this war. ]] ..
 [[I fear the moment I will see Al’thunran again]] ..
@@ -405,8 +407,9 @@
     title= _"Another Cold Day",
     body=thron(_"Thron looks worried...",
 _([[The winter is upon us. Many of us are suffering from the cold, yet we must endure. ]] ..
-[[The day we may return cannot be far anymore – it must not be far anymore.]]) .. "<br><br>" ..
-_([[I prayed that it might get warmer again, as I prayed that the war would finally come to an end.]]) .. "<br><br>" ..
+[[The day we may return cannot be far anymore – it must not be far anymore.]]) .. paragraphdivider() ..
+_([[I prayed that it might get warmer again, as I prayed that the war would finally come to an end.]])
+.. paragraphdivider() ..
 _([[So far, it seems that neither prayer was fulfilled.]])
    )
 }
@@ -414,7 +417,7 @@
 msg_village = {
    title=_"A friendly village has joined us!",
    body= thron(_"Thron speaks...",
-_([[We have found a village with friendly and productive people, impressed by our wealth, technology and strength.]]) .. "<br><br>" ..
+_([[We have found a village with friendly and productive people, impressed by our wealth, technology and strength.]]) .. paragraphdivider() ..
 _([[They have decided to join us!]])
    )
 }

=== modified file 'campaigns/t03.wmf/scripting/texts.lua'
--- campaigns/t03.wmf/scripting/texts.lua	2014-03-25 06:18:48 +0000
+++ campaigns/t03.wmf/scripting/texts.lua	2014-04-03 12:48:28 +0000
@@ -91,7 +91,7 @@
    number = 1,
    body = objective_text(_"Build a warehouse",
 [[• ]] .. _"Build a warehouse to the west of the mountains." ..
-"<br><br>" ..
+paragraphdivider() ..
 [[→ ]] .. _([[Warehouses are similar to your headquarters, ]] ..
 [[with the only difference that they aren’t defended by soldiers. ]] ..
 [[It is often wise to build a warehouse when your territory is growing ]] ..
@@ -136,7 +136,7 @@
    number = 2,
    body = objective_text(_"Destroy Kalitath’s army",
 [[• ]] .. _"Destroy Kalitath’s army and expand your territory to the east." ..
-"<br><br>" ..
+paragraphdivider() ..
 [[→ ]] .. _([[To attack an enemy, you must click on the door of an adversary’s military building. ]] ..
 [[A menu will pop up allowing you to select the number of soldiers that should attack. ]] ..
 [[When you are ready with setting the number, click on the cross (‘Start Attack’).]])),
@@ -160,7 +160,7 @@
 _([[These last days, we came closer to our capital. ]] ..
 [[Many people have already joined us on our march and set their hopes on me. ]] ..
 [[However, I fear that we are not strong enough to take up the battle against my brothers.]]) ..
-"<br><br>" ..
+paragraphdivider() ..
 _([[For now, we are resting at the borders of the old forest and preparing for the coming days.]])),
 }
 
@@ -236,7 +236,7 @@
 _([[The traitor left his armies dying where they lay when he saw that he would not keep my forces back. ]] ..
 [[Kalitath disappeared in the confusion of the war, but I don’t care now. ]] ..
 [[Shall he flee and be forgotten for all times as a tribal leader that would not bow before the wooden throne, ]] ..
-[[that is mine to take now.]]) .. "<br><br>" ..
+[[that is mine to take now.]]) .. paragraphdivider() ..
 _([[Furthermore, his flight brought us a great benefit: ]] ..
 [[all year, Kalitath was so busy fighting that he did not even care to store enough food for all his men. ]] ..
 [[Now that he has fled, their hunger has caused some of his younger followers to desert. ]] ..
@@ -297,7 +297,7 @@
 [[But Thron is not yet satisfied – and I fully understand his fears: ]] ..
 [[the forests are deep, and the frontier to Al’thunran is near. ]] ..
 [[I am sure that there are a thousand greater dangers out there than the unknown tracks.]]) ..
-"<br><br>" ..
+paragraphdivider() ..
 _([[To overlook more of the area around our hall, we should explore further ]] ..
 [[and set up more guards and scouts to observe the frontier ]] ..
 [[and keep an eye on the raging wars on our doorstep. ]] ..
@@ -353,7 +353,7 @@
 _([[Our mining economy seems to work fine, that is already good news! ]] ..
 [[Anyway, there are still a lot of men and women waiting in our hall to get a task, ]] ..
 [[so they can help our soldiers to prepare for the future fights.]]) ..
-"<br><br>" ..
+paragraphdivider() ..
 _([[Our geologists found a lot more deposits of iron ore, coal and even gold. ]] ..
 [[We should enhance our current mines as soon as our miners are more experienced. ]] ..
 [[We should build up some more mines, a bigger food infrastructure ]] ..
@@ -370,7 +370,8 @@
    body= thron(_"Thron looks worried...",
 _([[My brothers and their soldiers are dead and left fire and destruction behind. ]] ..
 [[In none of all the ruins could I find any man or woman of the normal folk, ]] ..
-[[and so I just may hope that they fled from this cruel battleground and started a better life somewhere else.]]) .. "<br><br>" ..
+[[and so I just may hope that they fled from this cruel battleground and started a better life somewhere else.]])
+.. paragraphdivider() ..
 _([[Nothing is left of that beauty I remember, only ruins remain of the old capital. ]] ..
 [[I am sorrowful but also relieved. I never hoped to ever see Al’thunran’s old beauty again]] ..
 [[ – it was only a few months ago that I wondered whether I would ever be able to set my feet in Al’thunran again. ]] ..
@@ -386,11 +387,11 @@
    title=_"Military Assault",
    body= thron(
 _([[So be it, the generals are out and about arranging my troops, and Boldreth himself will lead the first strike. ]] ..
-[[I will ride by his side, to free Al’thunran of this war and return peace to our capital.]]) .. "<br><br>" ..
+[[I will ride by his side, to free Al’thunran of this war and return peace to our capital.]]) .. paragraphdivider() ..
 _([[When the young sun rises above the trees tomorrow morning, I will order the assault. ]] ..
 [[By dusk, I will celebrate my victory in the wooden halls of the warlord ]] ..
 [[and sacrifice a newborn lamb in the honor of my father, whose eyes are set upon me today.]]) ..
-"<br><br>" ..
+paragraphdivider() ..
 _([[So be it!]]))
 .. new_objectives(obj_military_assault_on_althunran),
 }

=== modified file 'maps/Plateau.wmf/scripting/texts.lua'
--- maps/Plateau.wmf/scripting/texts.lua	2014-03-25 06:18:48 +0000
+++ maps/Plateau.wmf/scripting/texts.lua	2014-04-03 12:48:28 +0000
@@ -3,6 +3,7 @@
 -- =======================================================================
 
 include "scripting/formatting.lua"
+include "scripting/format_scenario.lua"
 
 -- Removes whitespace at the beginning or the end and translates
 -- newlines into spaces.
@@ -88,7 +89,7 @@
    body = _msg(_"An Ancient Castle", _(
 [[By the Gods! One of our scouts has discovered a mighty castle at the center of the old plateau. ]] ..
 [[The castle must be quite old and seems to have been built in a foreign style. ]] ..
-[[It’s quite obvious that this is not barbarian craft.]]) .. "<br><br>" ..
+[[It’s quite obvious that this is not barbarian craft.]]) .. paragraphdivider() ..
 _([[Let’s hope that Lanissa – the warlord holding sway over that castle – has not discovered our movements yet. ]] ..
 [[Perhaps we have a chance of conquering that mighty building without a bigger fight! ]] ..
 [[However, it is essential that we capture it. It will be the key to our reign over this island!]]),
@@ -101,7 +102,7 @@
    height = 300,
    posy = 1,
    body = _msg(_"Ancient Castle Captured", _(
-[[Wonderful! Our troops have finally defeated Lanissa and her soldiers. The ancient castle is ours!]]) .. "<br><br>" ..
+[[Wonderful! Our troops have finally defeated Lanissa and her soldiers. The ancient castle is ours!]]) .. paragraphdivider() ..
 _([[It is amazing how far one can see from the highest tower of the castle. We can watch the whole island. ]] ..
 [[So now I wonder why Lanissa did not see us and thus did not prepare. ]] ..
 [[Be that as it may, some things will never come to the light of day. ]] ..
@@ -136,7 +137,7 @@
    height=300,
    posy=1,
    body = _msg( _"Victory!", _
-[[Finally! The island is completely ours. Now we just have to defend it better than the warlords did.]] .. "<br><br>" ..
+[[Finally! The island is completely ours. Now we just have to defend it better than the warlords did.]] .. paragraphdivider() ..
 _"Congratulations! You have mastered this scenario. You may play on if you like!"
 ),
 }

=== modified file 'scripting/format_scenario.lua'
--- scripting/format_scenario.lua	2014-02-25 23:14:33 +0000
+++ scripting/format_scenario.lua	2014-04-03 12:48:28 +0000
@@ -48,6 +48,18 @@
 
 
 -- RST
+-- .. function:: paragraphdivider()
+--
+--    Closes a paragraph and opens a new paragraph. Use this when you format a string with the speech function
+--    and need to divide the speech into multiple paragraphs.
+--
+--    :returns: <br></p><p font-size=8><br></p><p line-spacing=3 font-size=12>
+function paragraphdivider()
+   return ("<br></p><p font-size=8><br></p><p line-spacing=3 font-size=12>")
+end
+
+
+-- RST
 -- .. function:: objective_text(heading, body)
 --
 --    Provides nice formatting for objective texts.


Follow ups