openra 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 62b93a256a360d12ed36a4b50207648cb78f0db6
4
- data.tar.gz: 2cd510fb3f3bb34916f1ecc278f3dea352ed31a6
3
+ metadata.gz: e029e23b233d065443fef36c02df47517ab18155
4
+ data.tar.gz: c73247c0487c8316dee554b8d9b17feec9920102
5
5
  SHA512:
6
- metadata.gz: 9d378e1942e96d258d4d96228812435a9404aab7301f7b40e0426167745acb2755c04b6a3c4e09474f04fbec7f8abc2c1fd9d05107995472776ff87ab9137c88
7
- data.tar.gz: b62c614956326db37a276fdd845264d2bd30ed8babd4c126442a6afd187409f2e54845007c2691af1c0bbfb1c7f907d5f28bc343341e357e90d544e7f552895c
6
+ metadata.gz: fc2a499388e8e4c19dc8affb7783cdb3dfc85de7591e6b760ccecd8921b3cf42b0ece3b2206da6e901659ba1dcffc795f7dfc22d50fa192b6145c81bd6652572
7
+ data.tar.gz: ddbd900f7f584d34fa8b5076013f6ec98479d63808a6ed3d2b6b1a88b22f74ed3e1c55127683a53906cc6e5bbd6e32ae34d2e30d10dbc9f5dff3dec68117d2fd
@@ -75,7 +75,8 @@ module Openra
75
75
  when 'GlobalSettings'
76
76
  next unless index.next == num_sync_info_orders
77
77
 
78
- timestep = data['Timestep']
78
+ timestep = Integer(data['Timestep'])
79
+
79
80
  replay_data[:server_name] = data['ServerName']
80
81
  replay_data[:game][:options] = {
81
82
  explored_map: data['Options']['explored']['Value'] == 'True',
@@ -103,8 +104,17 @@ module Openra
103
104
  candidate[:index] == order.client_index.to_s
104
105
  end
105
106
 
107
+ current_time = order.frame * timestep
108
+ current_time_seconds = current_time / 1000
109
+ mm, ss = current_time_seconds.divmod(60)
110
+ hh, mm = mm.divmod(60)
111
+
106
112
  client[:build] << {
107
113
  structure: order.target_string,
114
+ game_time: {
115
+ formatted: '%02d:%02d:%02d' % [hh, mm, ss],
116
+ msec: current_time
117
+ },
108
118
  placement: {
109
119
  x: order.target_x,
110
120
  y: order.target_y
@@ -1,10 +1,11 @@
1
1
  module Openra
2
2
  module Replays
3
3
  class OrderDecorator < SimpleDelegator
4
- attr_reader :client_index
4
+ attr_reader :client_index, :frame
5
5
 
6
- def initialize(order, client_index)
6
+ def initialize(order, client_index, frame)
7
7
  @client_index = client_index
8
+ @frame = frame
8
9
  super(order)
9
10
  end
10
11
  end
@@ -2,7 +2,7 @@ module Openra
2
2
  module Replays
3
3
  class OrderList < BinData::Record
4
4
  endian :little
5
- skip length: 4
5
+ int32 :frame
6
6
  array :orders, type: :order, read_until: :eof
7
7
  end
8
8
  end
@@ -9,11 +9,19 @@ module Openra
9
9
  def orders
10
10
  return unless valid_order_list?
11
11
 
12
- @orders ||= OrderList.read(data).orders.map do |order|
13
- OrderDecorator.new(order, client_index)
12
+ order_list = OrderList.read(data)
13
+
14
+ @orders ||= order_list.orders.map do |order|
15
+ OrderDecorator.new(order, client_index, order_list.frame)
14
16
  end
15
17
  end
16
18
 
19
+ def order_list
20
+ return unless valid_order_list?
21
+
22
+ @order_list ||= OrderList.read(data)
23
+ end
24
+
17
25
  def valid_order_list?
18
26
  return @valid_order_list if defined?(@valid_order_list)
19
27
 
@@ -1,3 +1,3 @@
1
1
  module Openra
2
- VERSION = '0.0.3'.freeze
2
+ VERSION = '0.0.4'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andy Holland