<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7267586917610696393</id><updated>2011-07-30T16:27:27.554-07:00</updated><category term='C#'/><category term='regex'/><category term='CoD4'/><category term='quake'/><category term='project'/><category term='mapping'/><category term='CoD2'/><title type='text'>inside out</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>14</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-2615979853543655484</id><published>2009-08-27T14:03:00.000-07:00</published><updated>2009-08-27T14:07:06.631-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD4'/><title type='text'></title><content type='html'>New version of this map, a remake of hue from battlefield vietnam, the port being made originally from a friend of mine (fellow mapper Bry).&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="323"&gt;&lt;embed src="http://media.xfire.com/swf/embedplayer.swf" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="323" flashvars="videoid=121d51"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-2615979853543655484?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/2615979853543655484/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=2615979853543655484' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/2615979853543655484'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/2615979853543655484'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2009/08/new-version-of-this-map-remake-of-hue.html' title=''/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-4920514093625697302</id><published>2009-05-14T00:52:00.000-07:00</published><updated>2009-05-14T01:12:50.662-07:00</updated><title type='text'>Call of Duty: Source</title><content type='html'>Moddb.com is a website for team of modders to promote their mods. This is the place I have been looking at for a mod of the HL2 engine geared toward a world I am friendly with: the CoD serie and the MoH serie. I have been playing MoH since the Playstation release and it is an all time favourite when it comes to FPS with a WWII theme. I have since been playing vCoD (vanilla CoD), the expansion pack for it UO, CoD2 and CoD4. I had a go at CoD3 on XBox, but I was less than impressed. I have tried a few FPS on the side, but I consistently came back to this serie for the fun I have with it, even with the last instalment I played (CoD4) which changes the theme to a modern area (IE the weaponry was suddenly more forgiving with all those full automatic assault riffle and other added features).&lt;br /&gt;&lt;br /&gt;Like so many others in the community I have been less and less happy with the development of the franchise (the first being run by EA, and the second by Activision). So many things have been left out. So many things are being implemented that should be left out. But I have no access to the code and modding for the CoD serie means that every year or so the current code base has to be ported to which ever new game is being released, as Activision is seeing this as a product to be pushed every 12 months. I won't even look at the modding situation in the MoH serie as EA has not only a bad reputation of after release management, but proved it many times over.&lt;br /&gt;&lt;br /&gt;So I have decided to have a look for myself at the possibility to port MoH and early CoD games into an environment that is a bit more stable. The choice of the Source Engine is quite obvious for someone like me: in between a gamer only and solely a developer. I've heard so many things about the Source Engine that I have to see for myself. The good point about this engine is that it is modding friendly: you have access to the source code, it is fully in C++ and it is related to the Quake engine. I don't have to remind anyone that the MoH/CoD series have been developed from a modified version of the quake3 engine. So I hope I am not making any mistakes assuming that it'll be easier to navigate through that code than, let say, the UT3 one. And being a engine still in use for recent games (L4D being the latest) there is good hope that the support will be far greater, even if it is from the community.&lt;br /&gt;&lt;br /&gt;So I've spend a day configuring my dev machine to have the following: a working installation of HL2, steam, HL2DM, VS2008, SVN to be able to go through the different explanation of the code I could find online. I am hoping to be able to make some progress.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-4920514093625697302?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/4920514093625697302/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=4920514093625697302' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/4920514093625697302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/4920514093625697302'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2009/05/call-of-duty-source.html' title='Call of Duty: Source'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-4561516919709137181</id><published>2009-02-13T00:28:00.000-08:00</published><updated>2009-02-13T01:00:46.760-08:00</updated><title type='text'>Daft Music Industry and Greedy Pigs</title><content type='html'>Sorry for the Harsh title, but I had to put it down.&lt;br /&gt;&lt;br /&gt;In an on going terror campaign from the music industry upon its consumers, many people and a lot more companies have felt down as casualties because of the stupidity of this industry to not to be able to embrace the advent of the new technologies brought by the internet. This is so true in the light of the most recent event (December 2008) when the RIAA officially declared not being interested any more at bullying internet user suspected of SHARING music files.&lt;br /&gt;&lt;br /&gt;An article published back in 2002 (&lt;a href="http://www.kuro5hin.org/story/2002/6/21/171321/675"&gt;R.I.P. Audiogalaxy&lt;/a&gt;) retrace the life and death of an internet music provider that had been forced to close down because of the same inability or the RIAA's members to change at the same pace as the technology. Here is an excerpt that is very interesting:&lt;br /&gt;&lt;br /&gt;"[...] As most people with a clue realize, it is extremely hard to filter digital media. Unless you have a person sitting there listening to an mp3, you have no way of knowing that an mp3 titled "unsigned band - lame song.mp3" is actually nsync's latest hit. At first we had simple text matching, but users are obviously smart enough to figure out how to rename files in ways that make sense only to humans. After increasing pressure from the RIAA, we actually went to an extremely complex system based on a checksum digest of the first megabyte of an mp3.[...]"&lt;br /&gt;&lt;br /&gt;This is fact quite impressive to read that upon receiving almost inconsistent batch of data from the different copyright holders to compare with the files transferred on the network, those guys actually manage to do anything at all. But the solution is even more impressive. A more logical solution would have been to create a unique master database for every single track existing and to have a unique identifier per track based on the actual sound. This is something that is implemented right now (Feb 2009) in many software solution and available for free for personal usage and possibly under some sort of commercial licensing scheme if someone needs.&lt;br /&gt;&lt;br /&gt;I surely hope the people behind those investment decision in the music industry for the past ten years are getting fired as it is a similar case of public pressure as it did happened for the printing industry with Gutenberg.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-4561516919709137181?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/4561516919709137181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=4561516919709137181' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/4561516919709137181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/4561516919709137181'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2009/02/daft-music-industry-and-greedy-pigs.html' title='Daft Music Industry and Greedy Pigs'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-6309533159260642364</id><published>2008-10-07T22:40:00.000-07:00</published><updated>2008-10-07T22:49:33.500-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD4'/><title type='text'>mp_wroclaw</title><content type='html'>Newest project. It all started with some personal history interest about the eastern part of Germany, namely a city previously named Breslau. Since then it became part of Poland and is now a very pleasant town. Anyway, the main interest was some of the building that survived the madness of both armies in 1944/1945 and the effort put into the reconstruction and preservation of the historical center by the Pols. But today it is the Cover Market (Hala Targowa) that attracted my attention. What started as a simple personal challenge to see whether I could make a "CoD" version of this real life building is slowly but surely moving toward a full map in its own right. Check the screenshots:&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-409f4e13d4a1606781a0e29a36b64190cd118f14.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/409f4e13d4a1606781a0e29a36b64190cd118f14.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-e83c2a90f1121aba9eff37cd45c7fed1a904a8f2.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/e83c2a90f1121aba9eff37cd45c7fed1a904a8f2.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-bb407c91de934fbc2e14e0e63ef8ef82845491c8.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/bb407c91de934fbc2e14e0e63ef8ef82845491c8.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-716d1df0f95bb9e952086d984eb975f9c2dd3573.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/716d1df0f95bb9e952086d984eb975f9c2dd3573.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-850b5cc3c361f10d006624c3740843b88ab2dfbf.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/850b5cc3c361f10d006624c3740843b88ab2dfbf.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-2bf12fd08c77e3c25e8bda1362e6250911d86a06.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/2bf12fd08c77e3c25e8bda1362e6250911d86a06.jpg'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-6309533159260642364?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/6309533159260642364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=6309533159260642364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/6309533159260642364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/6309533159260642364'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/10/mpwroclaw.html' title='mp_wroclaw'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-7647001026759023407</id><published>2008-10-07T21:12:00.000-07:00</published><updated>2008-10-07T21:23:23.125-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD4'/><title type='text'>mp_dbridge</title><content type='html'>The project has come to a stall. Anyway I have been plenty busy and there is only 3 buildings to finish before the map can be made playable. Here are the latest screenshots: You can see that there is an attempt to make some custom signs for this building as well as making some prefabs for canopies and fridges. NOTE: those screenshot have been taken while the map was being developed and may not represent the final "product".&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-da38ac37ebb65b68e36173802ce55676d076d437.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/da38ac37ebb65b68e36173802ce55676d076d437.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-b5527bd7d5a8d5e988ef61ea1796599a14cb0199.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/b5527bd7d5a8d5e988ef61ea1796599a14cb0199.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-b2bdcd7abd240c9efabfd1262612641dc51e94f9.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/b2bdcd7abd240c9efabfd1262612641dc51e94f9.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-9b0a372433b6b82efe7745cd138e56aa94d6850c.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/9b0a372433b6b82efe7745cd138e56aa94d6850c.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-a71ba068eff05bdb3511afe337e4968af53f822d.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/a71ba068eff05bdb3511afe337e4968af53f822d.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-71b030296170cee2eb8787a5759f6589d9c98cc2.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/71b030296170cee2eb8787a5759f6589d9c98cc2.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-df6f65bcf38af238672cc8000df7969c9e0a73b3.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/df6f65bcf38af238672cc8000df7969c9e0a73b3.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-faf5cc54c650186e971509f71199640f9f0d0fda.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/faf5cc54c650186e971509f71199640f9f0d0fda.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-a5fd2b138710106a1e1b493b9cbbf849ded42107.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/a5fd2b138710106a1e1b493b9cbbf849ded42107.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-f4191880439e234ebe49525b38da999dcc4db1e5.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/f4191880439e234ebe49525b38da999dcc4db1e5.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-de4cb7e7a6c23f4504a4ab520c0a37afcd7a027f.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/de4cb7e7a6c23f4504a4ab520c0a37afcd7a027f.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-7f451469ecd1e9a5f13ab09f427581eafb55945e.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/7f451469ecd1e9a5f13ab09f427581eafb55945e.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-09f9c69ed02968adce00e10df647bb5cc7afab23.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/09f9c69ed02968adce00e10df647bb5cc7afab23.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-8e63f2d68c1a60fa355802c57d4c7a4d03b315f3.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/8e63f2d68c1a60fa355802c57d4c7a4d03b315f3.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-81664305350d16608ca52b2a0f29b03731f1ac7f.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/81664305350d16608ca52b2a0f29b03731f1ac7f.jpg'&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href='http://www.xfire.com/screenshots/touristtam/ss_file-c5af3c21075dc29b8cf1272a2cb32e6e004d23d0.jpg'&gt;&lt;img src='http://screenshot.xfire.com/screenshot/large/c5af3c21075dc29b8cf1272a2cb32e6e004d23d0.jpg'&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-7647001026759023407?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/7647001026759023407/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=7647001026759023407' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/7647001026759023407'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/7647001026759023407'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/10/mpdbridge.html' title='mp_dbridge'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-1087805579074257709</id><published>2008-09-03T17:45:00.000-07:00</published><updated>2008-10-07T21:12:45.627-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD4'/><title type='text'>mp_destroyed_bridge</title><content type='html'>I have started a new project, for CoD4 this time. It is based on the layout of the mp_brest of MoH:AA. It is far from finished, but the feel I am giving to this map is very specific. The aim is to have a city center, middle eastern place, where the war has left its mark. I have plenty of screenshot on my profil on xfire: &lt;a href="http://www.xfire.com/screenshots/touristtam/"&gt;touristtam&lt;/a&gt;.&lt;div&gt;None of the building is definitive and you certainly can't seen the connection right now between the name and the map. :p&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre; "&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-63c955885fb7f79b419355447ecae832b7b8c184.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/63c955885fb7f79b419355447ecae832b7b8c184.jpg'" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-0e2af399d2de0f0b0ffe703984bf863c429f338a.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/0e2af399d2de0f0b0ffe703984bf863c429f338a.jpg'" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre; "&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-c74e5ee4005b26907228b4029706066b0eff7dbb.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/c74e5ee4005b26907228b4029706066b0eff7dbb.jpg'" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-8c07f70a648a3d782a98fd28cdee17dff73ec25a.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/8c07f70a648a3d782a98fd28cdee17dff73ec25a.jpg'" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-94363a468c164f2833cf4fef56c0069adc0261f2.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/94363a468c164f2833cf4fef56c0069adc0261f2.jpg'" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-9cc42115a61de3a2c4a5242de4eb685ccafe571d.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/9cc42115a61de3a2c4a5242de4eb685ccafe571d.jpg'" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-59b3a95a7566cd8327ce5e7d898ed42abc292226.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/59b3a95a7566cd8327ce5e7d898ed42abc292226.jpg'" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 10px; white-space: pre;"&gt;&lt;a href="'http://www.xfire.com/screenshots/touristtam/ss_file-1767310962ef0c2cca993fabeba63c781f47331e.jpg'"&gt;&lt;img src="'http://screenshot.xfire.com/screenshot/large/1767310962ef0c2cca993fabeba63c781f47331e.jpg'" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-1087805579074257709?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/1087805579074257709/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=1087805579074257709' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/1087805579074257709'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/1087805579074257709'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/09/mpdestroyedbridge.html' title='mp_destroyed_bridge'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-8359983877245285867</id><published>2008-03-28T03:53:00.000-07:00</published><updated>2008-10-07T21:07:59.966-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><title type='text'>Random generator class</title><content type='html'>I was involved into a project over the winter where we didn't have any data to fead the system, even though we had the format (or at least a fairly clear idea of it) in which each data file should be. So I wrote a class to randomize the data for creating several different .dat files. I did a bit of digging at the time, and even though I can't recall where I found the list I've used into the Enum, they were at that time the  most popular one in the UK. I've had a lot of  fun working my head around this, using  Enum for the first time!&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.IO;&lt;br /&gt;&lt;br /&gt;namespace MonkeyScience&lt;br /&gt;{&lt;br /&gt;  class WriteRandomBrokerToFile&lt;br /&gt;  {&lt;br /&gt;      const string fileName = "members.dat";&lt;br /&gt;      const int panelIDStart = 100001;&lt;br /&gt;      const int firmIDStart = 1001;&lt;br /&gt;      const int firmIDEnd = 1030;&lt;br /&gt;      const int firstNameRandomizedMin = 1;&lt;br /&gt;      const int firstNameRandomizedMax = 50;&lt;br /&gt;      const int lastNameRandomizedMin = 1;&lt;br /&gt;      const int lastNameRandomizedMax = 100;&lt;br /&gt;      const int telMin = 0;&lt;br /&gt;      const int telMax = 9;&lt;br /&gt;      const int companyMin = 1;&lt;br /&gt;      const int companyMax = 20;&lt;br /&gt;      const int wayMin = 1;&lt;br /&gt;      const int wayMax = 6;&lt;br /&gt;&lt;br /&gt;      enum firstNameEnum&lt;br /&gt;      {&lt;br /&gt;           Jack = 1, Thomas, James, Joshua, Daniel, Harry, Samuel, Joseph, Matthew, Callum,&lt;br /&gt;           Luke, William, Lewis, Oliver, Ryan, Benjamin, George, Liam, Jordan, Adam,&lt;br /&gt;           Alexander, Jake, Connor, Cameron, Nathan, Kieran, Mohammed, Jamie, Jacob,&lt;br /&gt;           Michael, Ben, Ethan, Charlie, Bradley, Brandon, Aaron, Max, Dylan, Kyle, Reece,&lt;br /&gt;           Robert, Christopher, David, Edward, Charles, Owen, Louis, Alex, Joe, Rhys&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;      enum lastNameEnum&lt;br /&gt;      {&lt;br /&gt;                Smith = 1, Brown, Wilson, Thomson, Robertson, Campbell, Stewart, Anderson,&lt;br /&gt;                MacDonald, Scott, Reid, Murray, Taylor, Clark, Mitchell, Ross, Walker, Paterson,&lt;br /&gt;                Young, Watson, Morrison, Miller, Fraser, Davidson, Gray, McDonald, Henderson,&lt;br /&gt;                Johnston, Hamilton, Graham, Kerr, Simpson, Martin, Ferguson, Cameron, Duncan,&lt;br /&gt;                Hunter, Kelly, Bell, Grant, MacKenzie, MacKay, Allan, Black, MacLeod, McLean,&lt;br /&gt;                Russell, Gibson, Wallace, Gordon, Marshall, Stevenson, Wood, Sutherland, Craig,&lt;br /&gt;                Wright, McKenzie, Kennedy, Jones, Burns, White, Muir, Murphy, Johnstone, Hughes,&lt;br /&gt;                Watt, McMillan, Mcintosh, Milne, Munro, Ritchie, Dickson, Bruce, King, Crawford,&lt;br /&gt;                Docherty, Millar, Cunningham, Sinclair, Williamson, Hill, McGregor, McKay, Boyle,&lt;br /&gt;                Shaw, Fleming, Moore, Christie, Douglas, Donaldson, McAndrews, MacLean, Forbes,&lt;br /&gt;                Mcintyre, Findlay, Jamieson, Aitken, Reilly, Thompson, Hay&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;      enum companyNameEnum&lt;br /&gt;      {&lt;br /&gt;          KPMG = 1, BarchesterHealthcare, Nationwide, RBS,&lt;br /&gt;          MorganStanley, CarphoneWarehouse, Deloitte, AmEx,&lt;br /&gt;          Mothercare, Cadbury, Atkins, ErnstYoung, Vodafone,&lt;br /&gt;          PricewaterhouseCoopers, ThomasCook, DeutscheBank,&lt;br /&gt;          GalaBingo, LeonardCheshire, BradfordCouncil, Barclays&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;      enum wayEnum&lt;br /&gt;      {&lt;br /&gt;          Street = 1, Road, Gate, Avenue, Lane, Terrace&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;      enum alphaEnum&lt;br /&gt;      {&lt;br /&gt;          A = 1, B, C, D, E, F, G, H, I, J, K, L, M,&lt;br /&gt;          N, O, P, Q, R, S, T, U, V, W, X, Y, Z&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;      enum districtEnum&lt;br /&gt;      {&lt;br /&gt;          North = 1, East, South, West&lt;br /&gt;      };&lt;br /&gt;&lt;br /&gt;      string foreName = string.Empty;&lt;br /&gt;      string lastName = string.Empty;&lt;br /&gt;      string oldForeName = string.Empty;&lt;br /&gt;      string oldLastName = string.Empty;&lt;br /&gt;      string telNumber = string.Empty;&lt;br /&gt;      string companyName = string.Empty;&lt;br /&gt;      string postCode = string.Empty;&lt;br /&gt;      string flatNnumber = string.Empty;&lt;br /&gt;      string buildingNumber = string.Empty;&lt;br /&gt;      string buildingName = string.Empty;&lt;br /&gt;      string street = string.Empty;&lt;br /&gt;      string district = string.Empty;&lt;br /&gt;      string town = string.Empty;&lt;br /&gt;      string county = string.Empty;&lt;br /&gt;&lt;br /&gt;      Random ran = new Random();&lt;br /&gt;&lt;br /&gt;      public void Write()&lt;br /&gt;      {&lt;br /&gt;          string ret = null;&lt;br /&gt;          Random ram = new Random();&lt;br /&gt;          int panelID = panelIDStart;&lt;br /&gt;&lt;br /&gt;          StreamWriter sWriter = new StreamWriter(fileName);&lt;br /&gt;&lt;br /&gt;          for (int firmID = firmIDStart; firmID &lt; firmIDEnd + 1; firmID++)&lt;br /&gt;            {&lt;br /&gt;                for (int i = 0; i &lt; 4; i++)&lt;br /&gt;                {&lt;br /&gt;                    if (foreName == string.Empty || foreName == oldForeName)&lt;br /&gt;                    {&lt;br /&gt;                        foreName = this.GetRandomFirstName();&lt;br /&gt;                        if (lastName == string.Empty || lastName == oldLastName)&lt;br /&gt;                        {&lt;br /&gt;                            lastName = this.GetRandomLastName();&lt;br /&gt;                            ret += string.Format("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\r\n",&lt;br /&gt;                                                 panelID,&lt;br /&gt;                                                 firmID,&lt;br /&gt;                                                 foreName,&lt;br /&gt;                                                 lastName,&lt;br /&gt;                                                 this.GetRandomEmailAddress(foreName, lastName),&lt;br /&gt;                                                 this.GetRandomTelNumber(),&lt;br /&gt;                                                 this.GetRandomAddress());&lt;br /&gt;                            panelID++;&lt;br /&gt;                            oldLastName = lastName;&lt;br /&gt;                        }&lt;br /&gt;                        foreName = oldForeName;&lt;br /&gt;                     }&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;            sWriter.WriteLine(ret);&lt;br /&gt;            Console.WriteLine(ret);&lt;br /&gt;            sWriter.Close();&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private string GetRandomEmailAddress(string foreName, string lastName)&lt;br /&gt;        {&lt;br /&gt;            companyName = this.GetRandomCompanyName();&lt;br /&gt;            string emailAddress = string.Format("{0}.{1}@{2}.com",&lt;br /&gt;                                                foreName,&lt;br /&gt;                                                lastName,&lt;br /&gt;                                                this.GetRandomCompanyName());&lt;br /&gt;            return emailAddress;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private string GetRandomTelNumber()&lt;br /&gt;        {&lt;br /&gt;            return telNumber = string.Format("0131 {0}{1}{2} {3}{4}{5}{6}",&lt;br /&gt;                                             ran.Next(telMin, telMax),&lt;br /&gt;                                             ran.Next(telMin, telMax),&lt;br /&gt;                                             ran.Next(telMin, telMax),&lt;br /&gt;                                             ran.Next(telMin, telMax),&lt;br /&gt;                                             ran.Next(telMin, telMax),&lt;br /&gt;                                             ran.Next(telMin, telMax),&lt;br /&gt;                                             ran.Next(telMin, telMax));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public string GetRandomFirstName()&lt;br /&gt;        {&lt;br /&gt;            string name;&lt;br /&gt;            return name = Enum.GetName(typeof(firstNameEnum), ran.Next(firstNameRandomizedMin, firstNameRandomizedMax));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public string GetRandomLastName()&lt;br /&gt;        {&lt;br /&gt;            string name;&lt;br /&gt;            return name = Enum.GetName(typeof(lastNameEnum), ran.Next(lastNameRandomizedMin, lastNameRandomizedMax));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public string GetRandomCompanyName()&lt;br /&gt;        {&lt;br /&gt;            string name;&lt;br /&gt;            return name = Enum.GetName(typeof(companyNameEnum), ran.Next(companyMin, companyMax));&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        public string GetRandomAddress()&lt;br /&gt;        {&lt;br /&gt;            string name;&lt;br /&gt;            return name = string.Format("SR{0} {1}{2}{3}\t{4}\t{5}\tWeasel House\tWeasel {6}\t{7}\tWeaseltown\tWeaselshire",&lt;br /&gt;                                        ran.Next(1, 9),&lt;br /&gt;                                        ran.Next(1, 50),&lt;br /&gt;                                        Enum.GetName(typeof(alphaEnum), ran.Next(1, 26)),&lt;br /&gt;                                        Enum.GetName(typeof(alphaEnum), ran.Next(1, 26)),&lt;br /&gt;                                        ran.Next(1, 15),&lt;br /&gt;                                        ran.Next(1, 9),&lt;br /&gt;                                        Enum.GetName(typeof(wayEnum), ran.Next(wayMin, wayMax)),&lt;br /&gt;                                        Enum.GetName(typeof(districtEnum), ran.Next(1, 4)));&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;I am looking forward to improve this pet project (creating random list of comma separated item) by taking the Enums out of the code and putting them into on or more xml files.&lt;br /&gt;&lt;br /&gt;Tam&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-8359983877245285867?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/8359983877245285867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=8359983877245285867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/8359983877245285867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/8359983877245285867'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/03/random-generator-class.html' title='Random generator class'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-6871839395653433816</id><published>2008-03-08T10:26:00.000-08:00</published><updated>2008-10-07T20:59:37.006-07:00</updated><title type='text'>qmapreader.NET - first build (pre-alpha)</title><content type='html'>This is the first compiled version of the tools available at filefront: &lt;a href="http://dashboard.filefront.com/TouristTam/"&gt;http://dashboard.filefront.com/TouristTam/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-6871839395653433816?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/6871839395653433816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=6871839395653433816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/6871839395653433816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/6871839395653433816'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/03/qmapreadernet-first-build-pre-alpha.html' title='qmapreader.NET - first build (pre-alpha)'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-886343841265204121</id><published>2008-03-06T09:29:00.000-08:00</published><updated>2008-10-07T21:01:37.781-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='regex'/><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD2'/><title type='text'>qmaptranslator.NET - baby steps with regex</title><content type='html'>setting up the project I had grandiose Ideas ... :[ that is usually a nooby way to say that I didn't realised how much input I would have to do with this project. So instead I went back to the drawing board and approach the project thinking about making a simple assemly to be run in cmd line only. It should take one argument (that's right) and read through a file (obviously a .map file) line by line, and copy it over when no difference between the original format (mohaa map file) and the target format (cod2 map file).&lt;br /&gt;The idea is to implement a simple read-transform-copy without the time consumming step of loading objects like vertex/polygon/mesh. But currently I have a hard time running a 'simple' regex. :P&lt;br /&gt;&lt;br /&gt;Solution to the 'Regex knowledge wall' I've faced earlier on this week:&lt;br /&gt;&lt;br /&gt;I've found out a few interesting things about the Regex that I didn't knew about. the first one being that a regex can have named groups. At first I thought: "what the heck is that about?". And guess what?&lt;br /&gt;It is simply put that grouping a few item together in a regex string can be attributed a name. therefore making the retrieval of the item more easely. Sound complicated? here is what I had in mind: Reading a quake .map file (or any of the game based around the same game engine) line by line and matching the read line with a regex, it is possible to manipulate the string read. The .map file format for a brushgives the following for a brush:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// brush 0&lt;br /&gt;{&lt;br /&gt;( 104 128 0 ) ( -72 128 0 ) ( -72 -40 0 ) caulk 64 64 0 0 0 0&lt;br /&gt;( -72 -40 8 ) ( -72 128 8 ) ( 104 128 8 ) caulk 64 64 0 0 0 0&lt;br /&gt;( -72 -40 8 ) ( 104 -40 8 ) ( 104 -40 0 ) caulk 64 64 0 0 0 0&lt;br /&gt;( 104 -40 8 ) ( 104 128 8 ) ( 104 128 0 ) caulk 64 64 0 0 0 0&lt;br /&gt;( 104 128 8 ) ( -72 128 8 ) ( -72 128 0 ) caulk 64 64 0 0 0 0&lt;br /&gt;( -72 128 8 ) ( -72 -40 8 ) ( -72 -40 0 ) caulk 64 64 0 0 0 0&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;it reads as follow:&lt;br /&gt;&lt;br /&gt;the curly brackets are grouping the lines in between them. Then for each line the three items in between parenthesis are the Vertices definition (to be understood as point(x, y, z)). the last part is well documented over the internet, it is the texture's name, X offset, Y offset,&lt;br /&gt;rotation, x scale and y scale. Knowing that the regex to match that string is dead easy:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;([0-9 \.\-]+\) ([0-9 \.\-]+\) ([0-9 \.\-]+\) [a-z0-9/_]+ [0-9\.\-]+ [0-9\.\-]+ [0-9\.\-]+ [0-9\.\-]+&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Here is the trick for named groups; each item (eight of them in this example) can have a "flag" (or "tag") that can be subsequently called, iterating through the retrieved string. The regex string becomes the following:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;(?&lt;tab _prefix=""&gt;[\t]*)(?&lt;point _a=""&gt;\([0-9 \.\-]+\)) (?&lt;point _b=""&gt;\([0-9 \.\-]+\)) (?&lt;point _c=""&gt;\([0-9 \.\-]+\)) (?&lt;texture _name=""&gt;[a-z0-9/_]+) (?&lt;texture _x_offset=""&gt;[0-9\.\-]+) (?&lt;texture _y_offset=""&gt;[0-9\.\-]+) (?&lt;texture _rotation=""&gt;[0-9\.\-]+) (?&lt;texture _x_scale=""&gt;[0-9\.\-]+) (?&lt;texture _y_scale=""&gt;[0-9\.\-]+)&lt;br /&gt;&lt;/point&gt;&lt;/tab&gt;&lt;/code&gt;&lt;br /&gt;I actually found this very handy trick reading the Chapter 24 of the O'Reilly book: &lt;a href="http://www.amazon.com/3-0-Nutshell-Desktop-Reference-OReilly/dp/0596527578/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1204880763&amp;amp;sr=8-1"&gt;"C# 3.0 in a Nutshell"&lt;/a&gt; and experiencing with the fantastic small software call &lt;a href="http://www.ultrapico.com/Expresso.htm"&gt;Expresso&lt;/a&gt;. Needless to say that all my trouble with regex were coming from my noobyness as a programmer. But hey life is a learning experience. :)&lt;br /&gt;&lt;br /&gt;Hope this helps.&lt;br /&gt;&lt;br /&gt;Tam&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-886343841265204121?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/886343841265204121/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=886343841265204121' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/886343841265204121'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/886343841265204121'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/03/qmaptranslatornet.html' title='qmaptranslator.NET - baby steps with regex'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-544853235975252956</id><published>2008-02-26T01:57:00.001-08:00</published><updated>2008-02-26T01:57:34.865-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD2'/><title type='text'>mp_germania - II</title><content type='html'>Hi folks,&lt;br /&gt;&lt;br /&gt;I manage to get some more pictures uploaded of that project of mine. Not much as each building has been through a process of several iteration until now and most of them will again.&lt;br /&gt;The map looks massive at the moment, but fear not, cause with a worn torn building there should be plenty of broken floors, rumble that will block ways. I am thinking as well to put some “sweet” spot for “sniping bitch”.&lt;br /&gt;&lt;br /&gt;The most challenging part is to have a feel of broken buildings in a realistic way. Not just squares kicking around.&lt;br /&gt;&lt;br /&gt;Enough talk and let’s just see the &lt;a href=http://picasaweb.google.com/tourist.Tam/Mp_germaniaII&gt;latest update&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Tam&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-544853235975252956?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/544853235975252956/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=544853235975252956' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/544853235975252956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/544853235975252956'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/02/mpgermania-ii.html' title='mp_germania - II'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-2519218362867583269</id><published>2008-02-25T10:25:00.000-08:00</published><updated>2008-02-25T10:37:07.432-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD2'/><title type='text'>mp_germania - project</title><content type='html'>My lastest project started last august when I was planning to enter the &lt;a href="http://www.modsonline.com/index.php"&gt;modsonline&lt;/a&gt; competition. But that was counting without issues IRL...&lt;br /&gt;&lt;br /&gt;During WWII the Nazi leader had the grandiose idea of rebuilding &lt;a href="http://en.wikipedia.org/wiki/Welthauptstadt_Germania"&gt;Berlin as a capital of the world (sic) in a roman style&lt;/a&gt;, with 'Kolossale' proportion obviously. The project was to start mid to late 1940s after the Sovietique troups were to be defeated and Berlin to lay in ruins. Well so much for the plan, cause only the second part became eventually true.&lt;br /&gt;&lt;br /&gt;As for me, I like the style and I decided to based this project on pictures I found on the internet of some official building of the &lt;a href="http://en.wikipedia.org/wiki/Bauhaus"&gt;Bauhaus movement&lt;/a&gt;. But in a ruined way.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/tourist.Tam/Mp_germania"&gt;For the pictures.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-2519218362867583269?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/2519218362867583269/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=2519218362867583269' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/2519218362867583269'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/2519218362867583269'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/02/mpgermania-project.html' title='mp_germania - project'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-6865731319536211421</id><published>2008-02-25T10:06:00.000-08:00</published><updated>2008-02-25T10:42:55.000-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD2'/><title type='text'>mp_tannenberg - project</title><content type='html'>for my second project, and as my first attempt was a disaster on a production point of view, but a fantastic time when I've learned so much. The idea this time is based on a german castle destroyed at the end of the second world war.&lt;br /&gt;&lt;br /&gt;Build to &lt;a href="http://en.wikipedia.org/wiki/Tannenberg_memorial"&gt;commemorate two battles won by the german in a millenium&lt;/a&gt; around the same place, a memorial was raised, that would be used as a tools for german nationalisme in the mid 1930s.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/tourist.Tam/Mp_tannenberg"&gt;Have a look&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This time I've put some lights .... XD&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-6865731319536211421?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/6865731319536211421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=6865731319536211421' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/6865731319536211421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/6865731319536211421'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/02/mptannenberg-project.html' title='mp_tannenberg - project'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-9169913436355081605</id><published>2008-02-25T09:53:00.000-08:00</published><updated>2008-02-25T10:46:02.161-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mapping'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><category scheme='http://www.blogger.com/atom/ns#' term='CoD2'/><title type='text'>mp_rothenburgh - project</title><content type='html'>That is my first try to create a map for the game CoD2. The idea is based around the typical layout and ambiance of an middle-age town in southern germany. There are plenty of pictures only to get inspiration for the building. And each and every one of those is a new challenge. &lt;a href="http://en.wikipedia.org/wiki/Rothenburg_ob_der_Tauber"&gt;Rothenburg-ob-der-Tauber&lt;/a&gt; didn't suffer much from the war unlike &lt;a href="http://en.wikipedia.org/wiki/Aschaffenburg"&gt;Aschaffenburg&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://picasaweb.google.com/tourist.Tam/Mp_rothenburgh"&gt;but enough words for now and here is the link for the pictures&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-9169913436355081605?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/9169913436355081605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=9169913436355081605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/9169913436355081605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/9169913436355081605'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/02/mprothenburgh-project.html' title='mp_rothenburgh - project'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7267586917610696393.post-1038935897086917000</id><published>2008-02-25T06:41:00.000-08:00</published><updated>2008-03-07T01:10:35.133-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='quake'/><category scheme='http://www.blogger.com/atom/ns#' term='C#'/><category scheme='http://www.blogger.com/atom/ns#' term='project'/><title type='text'>qmaptranslator.NET - project</title><content type='html'>&lt;span&gt;&lt;span&gt;&lt;span&gt;I have been mapping for the &lt;a href="http://en.wikipedia.org/wiki/Call_of_duty"&gt;Call of Duty (CoD)&lt;/a&gt; serie for over a year now. And I’ve found tones of map kicking about on the internet. CoD being a game, which game engine is a developed version of the &lt;a href="http://en.wikipedia.org/wiki/Id_Tech_3"&gt;Quake 3 engine&lt;/a&gt;, it is sharing its uncompiled map file format with most of the Quake 3 games out there. But from a version of the map editor to the next one the format change enough for being unloadable at worst in the new game's map editor. That does mean that a map file created for Medal of Honor: Allied Assault won’t be compatible out-of-the-box with a CoD map editor.&lt;br /&gt;&lt;br /&gt;That’s why I’ve decided to try and decipher the different map format for the following games: vCoD (for “vanilla flavoured” Call of Duty), CoDUO (&lt;a href="http://en.wikipedia.org/wiki/Call_of_Duty:_United_Offensive"&gt;Call of Duty: United Offensive&lt;/a&gt;), CoD2 (&lt;a href="http://en.wikipedia.org/wiki/Call_of_Duty_2"&gt;Call of Duty 2&lt;/a&gt;) and MoHAA (&lt;a href="http://en.wikipedia.org/wiki/Medal_of_Honor:_Allied_Assault"&gt;Medals of Honor: Allied Assault&lt;/a&gt;). And produce a small program in C# to act as a translator between those different format.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7267586917610696393-1038935897086917000?l=touristtam.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://touristtam.blogspot.com/feeds/1038935897086917000/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7267586917610696393&amp;postID=1038935897086917000' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/1038935897086917000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7267586917610696393/posts/default/1038935897086917000'/><link rel='alternate' type='text/html' href='http://touristtam.blogspot.com/2008/02/qmaptranslator-project.html' title='qmaptranslator.NET - project'/><author><name>Thomas</name><uri>http://www.blogger.com/profile/17134921954923284984</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
