Merge branch 'dev-freeze' of github.com:Baystation12/Baystation12 into dev

Conflicts:
	html/changelog.html
This commit is contained in:
Mloc-Argent
2013-12-13 19:13:43 +00:00
19 changed files with 140 additions and 67 deletions

View File

@@ -202,6 +202,9 @@
/obj/machinery/power/supermatter/attack_robot(mob/user as mob) /obj/machinery/power/supermatter/attack_robot(mob/user as mob)
return attack_hand(user) return attack_hand(user)
/obj/machinery/power/supermatter/attack_ai(mob/user as mob)
user << "<span class = \"warning\">You attempt to interface with the control circuits but find they are not connected to your network. Maybe in a future firmware update.</span>"
/obj/machinery/power/supermatter/attack_hand(mob/user as mob) /obj/machinery/power/supermatter/attack_hand(mob/user as mob)
user.visible_message("<span class=\"warning\">\The [user] reaches out and touches \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.</span>",\ user.visible_message("<span class=\"warning\">\The [user] reaches out and touches \the [src] inducing a resonance... \his body starts to glow and catch flame before flashing into ash.</span>",\

View File

@@ -109,10 +109,13 @@ var/list/alldepartments = list("Central Command")
if(href_list["remove"]) if(href_list["remove"])
if(tofax) if(tofax)
tofax.loc = usr.loc if(!ishuman(usr))
usr.put_in_hands(tofax) usr << "<span class='warning'>You can't do it.</span>"
usr << "<span class='notice'>You take the paper out of \the [src].</span>" else
tofax = null tofax.loc = usr.loc
usr.put_in_hands(tofax)
usr << "<span class='notice'>You take the paper out of \the [src].</span>"
tofax = null
if(href_list["scan"]) if(href_list["scan"])
if (scan) if (scan)

View File

@@ -276,37 +276,79 @@
C << "<span class='notice'>You are not wearing a mask.</span>" C << "<span class='notice'>You are not wearing a mask.</span>"
return 1 return 1
else else
if(istype(C.l_hand, /obj/item/weapon/tank)) var/list/nicename = null
C << "<span class='notice'>You are now running on internals from the [C.l_hand] on your left hand.</span>" var/list/tankcheck = null
C.internal = C.l_hand var/breathes = "oxygen" //default, we'll check later
else if(istype(C.r_hand, /obj/item/weapon/tank)) var/list/contents = list()
C << "<span class='notice'>You are now running on internals from the [C.r_hand] on your right hand.</span>"
C.internal = C.r_hand if(ishuman(C))
else if(ishuman(C))
var/mob/living/carbon/human/H = C var/mob/living/carbon/human/H = C
if(istype(H.s_store, /obj/item/weapon/tank)) breathes = H.species.breath_type
H << "<span class='notice'>You are now running on internals from the [H.s_store] on your [H.wear_suit].</span>" nicename = list ("suit", "back", "belt", "right hand", "left hand", "left pocket", "right pocket")
H.internal = H.s_store tankcheck = list (H.s_store, C.back, H.belt, C.r_hand, C.l_hand, H.l_store, H.r_store)
else if(istype(H.belt, /obj/item/weapon/tank))
H << "<span class='notice'>You are now running on internals from the [H.belt] on your belt.</span>"
H.internal = H.belt
else if(istype(H.l_store, /obj/item/weapon/tank))
H << "<span class='notice'>You are now running on internals from the [H.l_store] in your left pocket.</span>"
H.internal = H.l_store
else if(istype(H.r_store, /obj/item/weapon/tank))
H << "<span class='notice'>You are now running on internals from the [H.r_store] in your right pocket.</span>"
H.internal = H.r_store
//Seperate so CO2 jetpacks are a little less cumbersome. else
if(!C.internal && istype(C.back, /obj/item/weapon/tank))
C << "<span class='notice'>You are now running on internals from the [C.back] on your back.</span>"
C.internal = C.back
nicename = list("Right Hand", "Left Hand", "Back")
tankcheck = list(C.r_hand, C.l_hand, C.back)
for(var/i=1, i<tankcheck.len+1, ++i)
if(istype(tankcheck[i], /obj/item/weapon/tank))
var/obj/item/weapon/tank/t = tankcheck[i]
if (!isnull(t.manipulated_by) && t.manipulated_by != C.real_name && findtext(t.desc,breathes))
contents.Add(t.air_contents.total_moles) //Someone messed with the tank and put unknown gasses
continue //in it, so we're going to believe the tank is what it says it is
switch(breathes)
//These tanks we're sure of their contents
if("nitrogen") //So we're a bit more picky about them.
if(t.air_contents.nitrogen && !t.air_contents.oxygen)
contents.Add(t.air_contents.nitrogen)
else
contents.Add(0)
if ("oxygen")
if(t.air_contents.oxygen && !t.air_contents.toxins)
contents.Add(t.air_contents.oxygen)
else
contents.Add(0)
// No races breath this, but never know about downstream servers.
if ("carbon dioxide")
if(t.air_contents.carbon_dioxide && !t.air_contents.toxins)
contents.Add(t.air_contents.carbon_dioxide)
else
contents.Add(0)
else
//no tank so we set contents to 0
contents.Add(0)
//Alright now we know the contents of the tanks so we have to pick the best one.
var/best = 0
var/bestcontents = 0
for(var/i=1, i < contents.len + 1 , ++i)
if(!contents[i])
continue
if(contents[i] > bestcontents)
best = i
bestcontents = contents[i]
//We've determined the best container now we set it as our internals
if(best)
C << "<span class='notice'>You are now running on internals from [tankcheck[best]] on your [nicename[best]].</span>"
C.internal = tankcheck[best]
if(C.internal) if(C.internal)
if(C.internals) if(C.internals)
C.internals.icon_state = "internal1" C.internals.icon_state = "internal1"
else else
C << "<span class='notice'>You don't have an oxygen tank.</span>" C << "<span class='notice'>You don't have a[breathes=="oxygen" ? "n oxygen" : addtext(" ",breathes)] tank.</span>"
if("act_intent") if("act_intent")
usr.a_intent_change("right") usr.a_intent_change("right")
if("help") if("help")

View File

@@ -255,6 +255,8 @@ Release Pressure: <A href='?src=\ref[src];pressure_adj=-1000'>-</A> <A href='?sr
if (href_list["remove_tank"]) if (href_list["remove_tank"])
if(holding) if(holding)
if(istype(holding, /obj/item/weapon/tank))
holding.manipulated_by = usr.real_name
holding.loc = loc holding.loc = loc
holding = null holding = null

View File

@@ -1042,6 +1042,9 @@ var/global/list/obj/item/device/pda/PDAs = list()
if(5) if(5)
if((istype(A, /obj/item/weapon/tank)) || (istype(A, /obj/machinery/portable_atmospherics))) if((istype(A, /obj/item/weapon/tank)) || (istype(A, /obj/machinery/portable_atmospherics)))
if(istype(A, /obj/item/weapon/tank))
var/obj/item/weapon/tank/t = A
t.manipulated_by = user.real_name
var/obj/icon = A var/obj/icon = A
for (var/mob/O in viewers(user, null)) for (var/mob/O in viewers(user, null))
O << "\red [user] has used [src] on \icon[icon] [A]" O << "\red [user] has used [src] on \icon[icon] [A]"

View File

@@ -285,7 +285,7 @@
playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1) playsound(src.loc, 'sound/effects/glass_step.ogg', 50, 1)
if(ishuman(M)) if(ishuman(M))
var/mob/living/carbon/human/H = M var/mob/living/carbon/human/H = M
if(!H.shoes && !(H.wear_suit.body_parts_covered & FEET)) if( !H.shoes && ( !H.wear_suit || !(H.wear_suit.body_parts_covered & FEET) ) )
var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot")) var/datum/organ/external/affecting = H.get_organ(pick("l_foot", "r_foot"))
if(affecting.status & ORGAN_ROBOT) if(affecting.status & ORGAN_ROBOT)
return return

View File

@@ -203,23 +203,12 @@
/obj/item/weapon/card/id/syndicate/New(mob/user as mob) /obj/item/weapon/card/id/syndicate/New(mob/user as mob)
..() ..()
var/t = reject_bad_name(input(user, "What name would you like to put on this card?\nNode: You can change this later by clicking on the ID card while it's in your hand.", "Agent card name", ishuman(user) ? user.real_name : user.name)) if(!isnull(user)) // Runtime prevention on laggy starts or where users log out because of lag at round start.
if(!t) registered_name = ishuman(user) ? user.real_name : user.name
alert("Invalid name.")
if(!registered_name)
registered_name = ishuman(user) ? user.real_name : user.name
else else
registered_name = t registered_name = "Agent Card"
var/u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")),1,MAX_MESSAGE_LEN) assignment = "Agent"
if(!u) name = "[registered_name]'s ID Card ([assignment])"
alert("Invalid assignment.")
assignment = "Assistant"
else
assignment = u
name = "[registered_name]'s ID Card ([assignment])"
user << "\blue You successfully forge the ID card."
registered_user = user
/obj/item/weapon/card/id/syndicate/afterattack(var/obj/item/weapon/O as obj, mob/user as mob, proximity) /obj/item/weapon/card/id/syndicate/afterattack(var/obj/item/weapon/O as obj, mob/user as mob, proximity)
if(!proximity) return if(!proximity) return
@@ -239,7 +228,7 @@
return return
src.registered_name = t src.registered_name = t
var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")),1,MAX_MESSAGE_LEN) var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Agent")),1,MAX_MESSAGE_LEN)
if(!u) if(!u)
alert("Invalid assignment.") alert("Invalid assignment.")
src.registered_name = "" src.registered_name = ""
@@ -250,7 +239,7 @@
registered_user = user registered_user = user
else if(!registered_user || registered_user == user) else if(!registered_user || registered_user == user)
if(!registered_user) registered_user = user // First one to pick it up is the owner if there is ever a wild case New() doens't work. if(!registered_user) registered_user = user //
switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show")) switch(alert("Would you like to display the ID, or retitle it?","Choose.","Rename","Show"))
if("Rename") if("Rename")
@@ -263,7 +252,6 @@
var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")),1,MAX_MESSAGE_LEN) var u = copytext(sanitize(input(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels other than Maintenance.", "Agent card job assignment", "Assistant")),1,MAX_MESSAGE_LEN)
if(!u) if(!u)
alert("Invalid assignment.") alert("Invalid assignment.")
src.registered_name = ""
return return
src.assignment = u src.assignment = u
src.name = "[src.registered_name]'s ID Card ([src.assignment])" src.name = "[src.registered_name]'s ID Card ([src.assignment])"

View File

@@ -32,6 +32,12 @@
..() ..()
usr << text("The service panel is [src.open ? "open" : "closed"].") usr << text("The service panel is [src.open ? "open" : "closed"].")
attack_alien(mob/user as mob)
return attack_hand(user)
attack_paw(mob/user as mob)
return attack_hand(user)
attackby(obj/item/weapon/W as obj, mob/user as mob) attackby(obj/item/weapon/W as obj, mob/user as mob)
if(locked) if(locked)
if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged)) if ( (istype(W, /obj/item/weapon/card/emag)||istype(W, /obj/item/weapon/melee/energy/blade)) && (!src.emagged))

View File

@@ -15,7 +15,8 @@
var/distribute_pressure = ONE_ATMOSPHERE var/distribute_pressure = ONE_ATMOSPHERE
var/integrity = 3 var/integrity = 3
var/volume = 70 var/volume = 70
var/manipulated_by = null //Used by _onclick/hud/screen_objects.dm internals to determine if someone has messed with our tank or not.
//If they have and we haven't scanned it with the PDA or gas analyzer then we might just breath whatever they put in it.
/obj/item/weapon/tank/New() /obj/item/weapon/tank/New()
..() ..()
@@ -86,7 +87,7 @@
O << "\red [user] has used [W] on \icon[icon] [src]" O << "\red [user] has used [W] on \icon[icon] [src]"
var/pressure = air_contents.return_pressure() var/pressure = air_contents.return_pressure()
manipulated_by = user.real_name //This person is aware of the contents of the tank.
var/total_moles = air_contents.total_moles() var/total_moles = air_contents.total_moles()
user << "\blue Results of analysis of \icon[icon]" user << "\blue Results of analysis of \icon[icon]"
@@ -261,4 +262,4 @@
integrity-- integrity--
else if(integrity < 3) else if(integrity < 3)
integrity++ integrity++

View File

@@ -423,6 +423,8 @@
set desc = "Flips a non-reinforced table" set desc = "Flips a non-reinforced table"
set category = "Object" set category = "Object"
set src in oview(1) set src in oview(1)
if(ismouse(usr))
return
if (!can_touch(usr)) if (!can_touch(usr))
return return
if(!flip(get_cardinal_dir(usr,src))) if(!flip(get_cardinal_dir(usr,src)))

View File

@@ -26,12 +26,12 @@
F << "<small>[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z])</small> || [src] [message]<br>" F << "<small>[time2text(world.timeofday,"hh:mm")] \ref[src] ([x],[y],[z])</small> || [src] [message]<br>"
//ADMINVERBS //ADMINVERBS
/client/proc/investigate_show( subject in list("hrefs","notes","singulo") ) /client/proc/investigate_show( subject in list("hrefs","notes","singulo","telesci") )
set name = "Investigate" set name = "Investigate"
set category = "Admin" set category = "Admin"
if(!holder) return if(!holder) return
switch(subject) switch(subject)
if("singulo") //general one-round-only stuff if("singulo", "telesci") //general one-round-only stuff
var/F = investigate_subject2file(subject) var/F = investigate_subject2file(subject)
if(!F) if(!F)
src << "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>" src << "<font color='red'>Error: admin_investigate: [INVESTIGATE_DIR][subject] is an invalid path or cannot be accessed.</font>"

View File

@@ -453,6 +453,10 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
src << "<span class='warning'>You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death. You have [timedifference_text] left.</span>" src << "<span class='warning'>You may only spawn again as a mouse more than [mouse_respawn_time] minutes after your death. You have [timedifference_text] left.</span>"
return return
var/response = alert(src, "Are you -sure- you want to become a mouse?","Are you sure you want to squeek?","Squeek!","Nope!")
if(response != "Squeek!") return //Hit the wrong key...again.
//find a viable mouse candidate //find a viable mouse candidate
var/mob/living/simple_animal/mouse/host var/mob/living/simple_animal/mouse/host
var/obj/machinery/atmospherics/unary/vent_pump/vent_found var/obj/machinery/atmospherics/unary/vent_pump/vent_found

View File

@@ -875,8 +875,8 @@ obj/item/weapon/organ/head/New(loc, mob/living/carbon/human/H)
H.regenerate_icons() H.regenerate_icons()
H.stat = 2 brainmob.stat = 2
H.death() brainmob.death()
obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head obj/item/weapon/organ/head/proc/transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->head
brainmob = new(src) brainmob = new(src)

View File

@@ -61,7 +61,7 @@
if(href_list["remove"]) if(href_list["remove"])
var/obj/item/P = locate(href_list["remove"]) var/obj/item/P = locate(href_list["remove"])
if(P) if(P && P.loc == src)
P.loc = usr.loc P.loc = usr.loc
usr.put_in_hands(P) usr.put_in_hands(P)

View File

@@ -800,7 +800,8 @@
if(!can_use(usr, 1)) if(!can_use(usr, 1))
return return
src.add_fingerprint(usr) src.add_fingerprint(usr)
usr.set_machine(src) if(usingUI) // If we set their machine and they're not using the UI, it'll cause the UI to pop up.
usr.set_machine(src)
if (href_list["apcwires"]) if (href_list["apcwires"])
var/t1 = text2num(href_list["apcwires"]) var/t1 = text2num(href_list["apcwires"])
if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) )) if (!( istype(usr.get_active_hand(), /obj/item/weapon/wirecutters) ))

View File

@@ -269,6 +269,7 @@ client/proc/add_gun_icons()
screen += usr.gun_run_icon screen += usr.gun_run_icon
client/proc/remove_gun_icons() client/proc/remove_gun_icons()
if(isnull(usr)) return 1 // Runtime prevention on N00k agents spawning with SMG
screen -= usr.item_use_icon screen -= usr.item_use_icon
screen -= usr.gun_move_icon screen -= usr.gun_move_icon
if (target_can_move) if (target_can_move)

View File

@@ -114,6 +114,11 @@ var/list/valid_secondary_effect_types = list(\
#define TRIGGER_NITRO 12 #define TRIGGER_NITRO 12
/obj/machinery/artifact/process() /obj/machinery/artifact/process()
var/turf/L = loc
if(isnull(L) || !istype(L)) // We're inside a container or on null turf, either way stop processing effects
return
if(my_effect) if(my_effect)
my_effect.process() my_effect.process()
if(secondary_effect) if(secondary_effect)

View File

@@ -84,6 +84,8 @@
interact(user) interact(user)
/obj/machinery/computer/telescience/interact(mob/user) /obj/machinery/computer/telescience/interact(mob/user)
user.machine = src
in_use = 1
var/t = "<div class='statusDisplay'>[temp_msg]</div><BR>" var/t = "<div class='statusDisplay'>[temp_msg]</div><BR>"
t += "<A href='?src=\ref[src];setrotation=1'>Set Bearing</A>" t += "<A href='?src=\ref[src];setrotation=1'>Set Bearing</A>"
@@ -301,9 +303,10 @@
temp_msg = "NOTICE:<BR>Bluespace crystals ejected." temp_msg = "NOTICE:<BR>Bluespace crystals ejected."
updateDialog() updateDialog()
return 1
/obj/machinery/computer/telescience/proc/recalibrate() /obj/machinery/computer/telescience/proc/recalibrate()
teles_left = rand(30, 40) teles_left = rand(30, 40)
angle_off = rand(-25, 25) angle_off = rand(-25, 25)
power_off = rand(-4, 0) power_off = rand(-4, 0)
rotation_off = rand(-10, 10) rotation_off = rand(-10, 10)

View File

@@ -35,10 +35,7 @@ Header Section
<table align='center' class="top"> <table align='center' class="top">
<tr> <tr>
<td valign='top'> <td valign='top'>
<font size='2'><b>Code:</b> Abi79, Aryn, Cael_Aislinn,Ccomp5950 ,Chinsky, cib, CompactNinja, DopeGhoti, Erthilo, Hawk_v3, Head, Ispil, Lexusjjss, Melonstorm, Miniature, Mloc, NerdyBoy1104, SkyMarshal, Snapshot, Spectre, Strumpetplaya, Sunfall, Tastyfish, Uristqwerty<br></font>
<font size='2'><b>Code:</b> Abi79, Aryn, Cael_Aislinn, Ccomp5950,Chinsky, cib, CompactNinja, DopeGhoti, Erthilo, Hawk_v3, Head, Ispil, Lexusjjss, Melonstorm, Miniature, Mloc, NerdyBoy1104, SkyMarshal, Snapshot, Spectre, Strumpetplaya, Sunfall, Tastyfish, Uristqwerty<br></font>
<font size='2'><b>Sprites:</b> Apple_Master, Arcalane, Chinsky, CompactNinja, Deus Dactyl, Erthilo, Flashkirby, Miniature, Searif, Xenone, faux<br></font> <font size='2'><b>Sprites:</b> Apple_Master, Arcalane, Chinsky, CompactNinja, Deus Dactyl, Erthilo, Flashkirby, Miniature, Searif, Xenone, faux<br></font>
<font size='2'><b>Sounds:</b> Aryn<br></font> <font size='2'><b>Sounds:</b> Aryn<br></font>
<font size='2'><b>Thanks To:</b> /tg/ station, Goonstation, Animus Station, Daedalus, and original Spacestation 13 devs. Skibiliano for the IRC bot.</font> <font size='2'><b>Thanks To:</b> /tg/ station, Goonstation, Animus Station, Daedalus, and original Spacestation 13 devs. Skibiliano for the IRC bot.</font>
@@ -60,7 +57,6 @@ should be listed in the changelog upon commit though. Thanks. -->
<!-- DO NOT REMOVE, MOVE, OR COPY THIS COMMENT! THIS MUST BE THE LAST NON-EMPTY LINE BEFORE THE LOGS #ADDTOCHANGELOGMARKER# --> <!-- DO NOT REMOVE, MOVE, OR COPY THIS COMMENT! THIS MUST BE THE LAST NON-EMPTY LINE BEFORE THE LOGS #ADDTOCHANGELOGMARKER# -->
<div class='commit sansserif'> <div class='commit sansserif'>
<h2 class='date'>24 November 2013</h2> <h2 class='date'>24 November 2013</h2>
<h3 class='author'>Yinadele updated:</h3> <h3 class='author'>Yinadele updated:</h3>
@@ -79,10 +75,22 @@ should be listed in the changelog upon commit though. Thanks. -->
<li class='bugfix'>Fixed areas in medbay to have fully functional APC sectors.</li> <li class='bugfix'>Fixed areas in medbay to have fully functional APC sectors.</li>
<li class='rscadd'>Girders are now lasable.</li> <li class='rscadd'>Girders are now lasable.</li>
<li class='experiment'>Please wait warmly, new features planned for next merge!</li> <li class='experiment'>Please wait warmly, new features planned for next merge!</li>
</ul> </ul>
</div> </div>
<div class='commit sansserif'>
<h2 class='date'>23 November 2013</h2>
<h3 class='author'>Ccomp5950 updated:</h3>
<ul class='changes bgimages16'>
<li class='bugfix'>Players are now no longer able to commit suicide with a lasertag gun, and will feel silly for doing so.</li>
<li class='bugfix'>Ghosts hit with the cult book shall now actually become visible.</li>
<li class='bugfix'>The powercells spawned with Exosuits will now properly be named to not confuse bearded roboticists.</li>
<li class='bugfix'>Blindfolded players will now no longer require eye surgery to repair their sight, removing the blindfold will be sufficient.</li>
<li class='rscadd'>Atmospheric Technicians will now have access to Exterior airlocks.</li>
</ul>
</div>
<div class='commit sansserif'>
<h2 class='date'>29 October 2013</h2> <h2 class='date'>29 October 2013</h2>
<h3 class='author'>Cael_Aislinn updated:</h3> <h3 class='author'>Cael_Aislinn updated:</h3>
<ul class='changes bgimages16'> <ul class='changes bgimages16'>
@@ -92,6 +100,8 @@ should be listed in the changelog upon commit though. Thanks. -->
</ul> </ul>
</div> </div>
<div class='commit sansserif'>
<h2 class='date'>06 Derptomber 2013</h2> <h2 class='date'>06 Derptomber 2013</h2>
<h3 class='author'>Chinsky updated:</h3> <h3 class='author'>Chinsky updated:</h3>
<ul class='changes bgimages16'> <ul class='changes bgimages16'>
@@ -110,7 +120,6 @@ should be listed in the changelog upon commit though. Thanks. -->
<li class='rscadd'>Return of dreaded side effects. They now manifest well after their cause disappears, so curing them should be possible without them reappearing immediately. They also lost last stage damaging effects.</li> <li class='rscadd'>Return of dreaded side effects. They now manifest well after their cause disappears, so curing them should be possible without them reappearing immediately. They also lost last stage damaging effects.</li>
</ul> </ul>
</div> </div>
<div class='commit sansserif'>
<div class="commit sansserif"> <div class="commit sansserif">
<h2 class="date">September 24th, 2013</h2> <h2 class="date">September 24th, 2013</h2>
@@ -1030,4 +1039,4 @@ Credits Section
<p class="lic">Some icons by <a href="http://p.yusukekamiyamane.com/">Yusuke Kamiyamane</a>. All rights reserved. Licensed under a <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a>.</p> <p class="lic">Some icons by <a href="http://p.yusukekamiyamane.com/">Yusuke Kamiyamane</a>. All rights reserved. Licensed under a <a href="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 License</a>.</p>
</td></tr></table></div> </td></tr></table></div>
</body> </body>
</html> </html>