root/branch/rev3/common/includes/class.item.php @ 243

Revision 243, 5.7 KB (checked in by exi, 15 years ago)

Moving config to runtime
Added reinforced management
New icon set with alpha, fixed missing/wrong icons
Changed version to 1.4.0
Added code for handling the new dogma codebase

Line 
1<?php
2require_once('db.php');
3
4define('DGM_TECHLEVEL', 422);
5
6class Item
7{
8    function Item($id = 0)
9    {
10        $this->id_ = $id;
11    }
12
13    function getID()
14    {
15        return $this->id_;
16    }
17
18    function getName()
19    {
20        $this->execQuery();
21        if (DB_USE_CCP)
22        {
23            return $this->row_['typeName'];
24        }
25        return $this->row_['itm_name'];
26    }
27
28    function getIcon($size = 32)
29    {
30        $this->execQuery();
31        global $smarty;
32
33        // cat 18 are combat drones
34        if ($this->row_['itt_cat'] == 18)
35        {
36            $img = IMG_URL.'/drones/'.$size.'_'.$size.'/'.$this->row_['itm_externalid'].'.png';
37        }
38        // cat 6 are ships (destroyed in cargo)
39        elseif ($this->row_['itt_cat'] == 6)
40        {
41            $img = IMG_URL.'/ships/'.$size.'_'.$size.'/'.$this->row_['itm_externalid'].'.png';
42        }
43        else
44        {
45            // fix for new db structure, just make sure old clients dont break
46            if (!strstr($this->row_['itm_icon'], 'icon'))
47            {
48                $this->row_['itm_icon'] = 'icon'.$this->row_['itm_icon'];
49            }
50            $img = IMG_URL.'/items/'.$size.'_'.$size.'/'.$this->row_['itm_icon'].'.png';
51        }
52
53        if (substr($this->getName(), strlen($this->getName()) - 2, 2) == "II" || $this->row_['itm_techlevel'] == 2)
54        {
55            $icon .= IMG_URL.'/items/32_32/t2.gif';
56        }
57        else
58        {
59            $icon = IMG_URL.'/items/32_32/blank.gif';
60        }
61
62        $smarty->assign('img', $img);
63        $smarty->assign('icon', $icon);
64        return $smarty->fetch(get_tpl('icon'));
65    }
66
67    function getSlot()
68    {
69        $this->execQuery();
70        return $this->row_['itt_slot'];
71    }
72
73    function execQuery()
74    {
75        if (!isset($this->qry_))
76        {
77            $this->qry_ = new DBQuery();
78        }
79
80        if (!$this->qry_->executed_)
81        {
82            if (!$this->id_)
83            {
84                return false;
85            }
86            $this->sql_ = "select *
87                           from kb3_items
88                           left join kb3_item_types on itm_type = itt_id
89                               where itm_id = '".$this->id_."'";
90
91            if (DB_USE_CCP)
92            {
93                    // new
94                $this->sql_ = "select inv.*, kb3_item_types.*, dga.value as techlevel, itp.price
95                               from kb3_invtypes inv
96                               left join kb3_dgmtypeattributes dga on dga.typeID=inv.typeID and dga.attributeID=".DGM_TECHLEVEL."
97                               left join kb3_item_price itp on itp.typeID=inv.typeID
98                               left join kb3_item_types on groupID=itt_id
99                                   where inv.typeID = '".$this->id_."'";
100            }
101            $this->qry_->execute($this->sql_);
102            $this->row_ = $this->qry_->getRow();
103            if (DB_USE_CCP)
104            {
105                $this->row_['itm_icon'] = $this->row_['icon'];
106                $this->row_['itm_techlevel'] = $this->row_['techlevel'];
107                $this->row_['itm_externalid'] = $this->row_['typeID'];
108                $this->row_['itm_value'] = $this->row_['price'];
109            }
110        }
111    }
112
113    function lookup($name)
114    {
115        $name = trim($name);
116        $qry = new DBQuery();
117        $query = "select * from kb3_items itm
118                        where itm_name = '".slashfix($name)."'";
119        if (DB_USE_CCP)
120        {
121            $query = "select *,typeID as itm_id from kb3_invtypes itm
122                        where typeName = '".slashfix($name)."'";
123        }
124        $qry->execute($query);
125        $row = $qry->getRow();
126        if (!isset($row['itm_id']))
127        {
128            if (config::get('adapt_items') && DB_USE_CCP !== true)
129            {
130                // if the item is a tec2 we likely have the tec1
131                if (substr($name, -2, 2) == 'II')
132                {
133                    $qry->execute("select * from kb3_items itm
134                                    where itm_name = '".slashfix(substr($name,0,-1))."'");
135                    $row = $qry->getRow();
136                    if (!$row['itm_type'])
137                    {
138                        return false;
139                    }
140                    $qry->execute("INSERT INTO kb3_items (itm_name,itm_volume,itm_type,itm_externalid,itm_techlevel,itm_icon)
141                                    VALUES ('".slashfix($name)."','".$row['itm_volume']."','".$row['itm_type']."','".$row['itm_externalid']."','2','".$row['itm_icon']."')");
142                }
143                else
144                {
145                    // no idea what this is, insert as 'Temp'
146                    $qry->execute("INSERT INTO kb3_items (itm_name,itm_type)
147                                    VALUES ('".slashfix($name)."','721')");
148                }
149                $row['itm_id'] = $qry->getInsertID();
150            }
151            else
152            {
153                // that item doesnt exist or is mispelled
154                return false;
155            }
156        }
157        $this->id_ = $row['itm_id'];
158    }
159
160    function get_item_id($name)
161    {
162        $qry = new DBQuery();
163        $query = "select *
164                        from kb3_items
165                        where itm_name = '".slashfix($name)."'";
166        if (DB_USE_CCP)
167        {
168            $query = "select *,typeID as itm_id
169                        from kb3_items
170                        where typeName = '".slashfix($name)."'";
171        }
172        $qry->execute($query);
173
174        $row = $qry->getRow();
175        if ($row['itm_id']) return $row['itm_id'];
176    }
177}
178?>
Note: See TracBrowser for help on using the browser.