<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.soldat.pl/index.php?action=history&amp;feed=atom&amp;title=Python_Map_Parser</id>
		<title>Python Map Parser - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.soldat.pl/index.php?action=history&amp;feed=atom&amp;title=Python_Map_Parser"/>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=Python_Map_Parser&amp;action=history"/>
		<updated>2026-05-26T03:28:18Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>https://wiki.soldat.pl/index.php?title=Python_Map_Parser&amp;diff=182&amp;oldid=prev</id>
		<title>Freeman: Created page with &quot;&lt;pre&gt; &lt;nowiki&gt; import struct import string import glob  # for code brevity up = struct.unpack  PMS_Vertex = 0 PMS_Vector = 1 PMS_Type = 2  class pmsMap:     'Soldat PMS readin...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.soldat.pl/index.php?title=Python_Map_Parser&amp;diff=182&amp;oldid=prev"/>
				<updated>2012-08-15T11:41:33Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;lt;pre&amp;gt; &amp;lt;nowiki&amp;gt; import struct import string import glob  # for code brevity up = struct.unpack  PMS_Vertex = 0 PMS_Vector = 1 PMS_Type = 2  class pmsMap:     &amp;#039;Soldat PMS readin...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
import struct&lt;br /&gt;
import string&lt;br /&gt;
import glob&lt;br /&gt;
&lt;br /&gt;
# for code brevity&lt;br /&gt;
up = struct.unpack&lt;br /&gt;
&lt;br /&gt;
PMS_Vertex = 0&lt;br /&gt;
PMS_Vector = 1&lt;br /&gt;
PMS_Type = 2&lt;br /&gt;
&lt;br /&gt;
class pmsMap:&lt;br /&gt;
    'Soldat PMS reading class'&lt;br /&gt;
    def __init__(self, fileName):&lt;br /&gt;
        self.fileName = fileName&lt;br /&gt;
        f = file(fileName, 'rb')&lt;br /&gt;
        self.version = up('l', f.read(4))[0]&lt;br /&gt;
        self.descLen = up('B', f.read(1))[0]&lt;br /&gt;
        self.desc = ''.join(up(&amp;quot;c&amp;quot;*self.descLen, f.read(self.descLen)))&lt;br /&gt;
        # discard fillers -- 1 is for os.SEEK_CUR&lt;br /&gt;
        f.seek(38 - self.descLen, 1)&lt;br /&gt;
        self.textureLen = up('B', f.read(1))[0]&lt;br /&gt;
        self.texture = ''.join(up(&amp;quot;c&amp;quot;*self.textureLen, f.read(self.textureLen)))&lt;br /&gt;
        # discard filler&lt;br /&gt;
        f.seek(24 - self.textureLen, 1)&lt;br /&gt;
        self.bgColorTop = up(&amp;quot;B&amp;quot;*4, f.read(4))&lt;br /&gt;
        self.bgColorBottom = up(&amp;quot;B&amp;quot;*4, f.read(4))&lt;br /&gt;
        self.jetAmount = up('l', f.read(4))[0]&lt;br /&gt;
        self.grenades = up('B', f.read(1))[0]&lt;br /&gt;
        self.medkits = up('B', f.read(1))[0]&lt;br /&gt;
        self.weatherType = up('B', f.read(1))[0]&lt;br /&gt;
        self.stepsType = up('B', f.read(1))[0]&lt;br /&gt;
        self.randID = up('l', f.read(4))[0]&lt;br /&gt;
        self.polyCount = up('l', f.read(4))[0]&lt;br /&gt;
        self.polygons = []&lt;br /&gt;
        for i in range(0, self.polyCount):&lt;br /&gt;
            self.polygons.append( (((up('ffff', f.read(4*4)), up('B'*4, f.read(4)), up('ff', f.read(4*2))) # three vertex&lt;br /&gt;
                                  , (up('ffff', f.read(4*4)), up('B'*4, f.read(4)), up('ff', f.read(4*2)))&lt;br /&gt;
                                  , (up('ffff', f.read(4*4)), up('B'*4, f.read(4)), up('ff', f.read(4*2))))&lt;br /&gt;
                                  , (up('fff', f.read(4*3)), up('fff', f.read(4*3)), up('fff', f.read(4*3)))&lt;br /&gt;
                                  , up('B', f.read(1))[0] ))&lt;br /&gt;
        # polygons shall be accessed:&lt;br /&gt;
        #   polygons[id][PMS_Vertex][0-3]&lt;br /&gt;
        #   polygons[id][PMS_Vector][0-3]&lt;br /&gt;
        #   polygons[id][PMS_Type]&lt;br /&gt;
        # the rest---&lt;br /&gt;
        f.close()&lt;br /&gt;
&lt;br /&gt;
maps = glob.glob('c:/soldat_def/maps/*.PMS')&lt;br /&gt;
for map in maps:&lt;br /&gt;
    m = pmsMap(map)&lt;br /&gt;
    print m.fileName + ' =&amp;gt; ' + m.texture&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Freeman</name></author>	</entry>

	</feed>